ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programacion En C


Enviado por   •  2 de Septiembre de 2012  •  11.166 Palabras (45 Páginas)  •  459 Visitas

Página 1 de 45

Cap´ıtulo 1

Introducci´on a C

Hab´ıa un libro junto a Alicia, en la mesa; y mientras permanec´ıa sentada observando al

Rey Blanco [. . . ], pasaba las hojas para ver si encontraba alg´un trozo que poder leer:

((. . . Porque est´a todo en una lengua que no entiendo)), se dijo.

Estaba as´ı:

JERIG ´ONDOR

Cocillaba el d´ıa y las tovas agilimosas

giroscopaban y barrenaban en el larde.

Todo devirables estaban los burgovos,

y silbramaban las alecas rastas.

Durante un rato, estuvo contemplando esto perpleja; pero al final se le ocurri´o una

brillante idea. ¡Ah, ya s´e!, ¡es un libro del Espejo, naturalmente! Si lo pongo delante de

un espejo, las palabras se ver´an otra vez del derecho.

Lewis Carroll, Alicia en el Pa´ıs de las Maravillas.

El lenguaje de programaci´on C es uno de los m´as utilizados (si no el que m´as) en la programaci´on

de sistemas software. Es similar a Python en muchos aspectos fundamentales: presenta las

mismas estructuras de control (selecci´on condicional, iteraci´on), permite trabajar con algunos

tipos de datos similares (enteros, flotantes, secuencias), hace posible definir y usar funciones,

etc. No obstante, en muchas otras cuestiones es un lenguaje muy diferente.

C presenta ciertas caracter´ısticas que permiten ejercer un elevado control sobre la eficiencia

de los programas, tanto en la velocidad de ejecuci´on como en el consumo de memoria, pero

a un precio: tenemos que proporcionar informaci´on expl´ıcita sobre gran cantidad de detalles,

por lo que generalmente resultan programas m´as largos y complicados que sus equivalentes en

Python, aumentando as´ı la probabilidad de que cometamos errores.

En este cap´ıtulo aprenderemos a realizar programas en C del mismo ((nivel)) que los que

sab´ıamos escribir en Python tras estudiar el cap´ıtulo 4 del primer volumen. Aprenderemos,

pues, a usar variables, expresiones, la entrada/salida, funciones definidas en ((m´odulos)) (que

en C se denominan bibliotecas) y estructuras de control. Lo ´unico que dejamos pendiente de

momento es el tratamiento de cadenas en C, que es sensiblemente diferente al que proporciona

Python.

Nada mejor que un ejemplo de programa en los dos lenguajes para que te lleves una primera

impresi´on de cu´an diferentes son Python y C. . . y cu´an semejantes. Estos dos programas, el

primero en Python y el segundo en C, calculan el valor de

Xb

i=a

p

i

para sendos valores enteros de a y b introducidos por el usuario y tales que 0  a  b.

Introducci´on a la Programaci´on con C 1

Introducci´on a C 2004/02/10-16:33

sumatorio.py sumatorio.py

1 from math import *

2

3 # Pedir l´ımites inferior y superior.

4 a = int(raw_input(’L´ımite inferior:’))

5 while a < 0:

6 print ’No puede ser negativo’

7 a = int(raw_input(’L´ımite inferior:’))

8

9 b = int(raw_input(’L´ımite superior:’))

10 while b < a:

11 print ’No puede ser menor que %d’ % a

12 b = int(raw_input(’L´ımite superior:’))

13

14 # Calcular el sumatorio de la ra´ız cuadrada de i para i entre a y b.

15 s = 0.0

16 for i in range(a, b+1):

17 s += sqrt(i)

18

19 # Mostrar el resultado.

20 print ’Sumatorio de ra´ıces’,

21 print ’de %d a %d: %f’ % (a, b, s)

sumatorio.c sumatorio.c

1 #include <stdio.h>

2 #include <math.h>

3

4 int main(void)

5 {

6 int a, b, i;

7 float s;

8

9 /* Pedir l´ımites inferior y superior. */

10 printf ("L´ımite inferior:");

11 scanf ("%d", &a);

12 while (a < 0) {

13 printf ("No puede ser negativon");

14 printf ("L´ımite inferior:");

15 scanf ("%d", &a);

16 }

17

18 printf ("L´ımite superior:");

19 scanf ("%d", &b);

20 while (b < a) {

21 printf ("No puede ser menor que %dn", a);

22 printf ("L´ımite superior:");

23 scanf ("%d", &b);

24 }

25

26 /* Calcular el sumatorio de la ra´ız cuadrada de i para i entre a y b. */

27 s = 0.0;

28 for (i = a; i <= b; i++) {

29 s += sqrt(i);

30 }

31

32 /* Mostrar el resultado. */

33 printf ("Sumatorio de ra´ıces ");

34 printf ("de %d a %d: %fn", a, b, s);

35

36 return 0;

37 }

En varios puntos de este cap´ıtulo haremos referencia a estos dos programas. No los pierdas

2 Introducci´on a la Programaci´on con C

c 2003 Andr´es Marzal e Isabel Gracia 1 Introducci´on a C

de vista.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

· 1 Compara los programas sumatorio.py y sumatorio.c. Analiza sus semejanzas y diferencias.

¿Qu´e funci´on desempe˜nan las llaves en sumatorio.c? ¿Qu´e funci´on crees que desempe˜nan

las l´ıneas 6 y 7 del programa C? ¿A qu´e elemento de Python se parecen las dos primeras l´ıneas

de sumatorio.c? ¿Qu´e similitudes y diferencias aprecias entre las estructuras de control de

Python y C? ¿C´omo crees que se interpreta el bucle for del programa C? ¿Por qu´e algunas

l´ıneas de sumatorio.c finalizan en punto y coma y otras no? ¿Qu´e diferencias ves entre los

comentarios Python y los comentarios C?

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Un poco de historia

C ya tiene sus a˜nitos. El nacimiento de C est´a estrechamente vinculado al del sistema operativo

Unix. El investigador Ken Thompson, de AT&T, la compa˜n´ıa telef´onica estadounidense,

se propuso dise˜nar un nuevo sistema operativo a principios de los setenta. Dispon´ıa de un

PDP-7 en el que codific´o una primera versi´on de Unix en lenguaje ensamblador. Pronto se

impuso la conveniencia de desarrollar el sistema en un lenguaje de programaci´on de alto

nivel, pero la escasa memoria del PDP-7 (8K de

...

Descargar como (para miembros actualizados) txt (70 Kb)
Leer 44 páginas más »
Disponible sólo en Clubensayos.com