Está en la página 1de 20

1

Introducción a la programación C
Contenidos
2.1 Historia
2.2 Programa simple en C: Imprimir una linea de texto
2.3 Programa simple en C: Sumar dos enteros
2.4 Concepto de memoria
2.5 Aritmetica enC
2.6 Tomando desiciones: Operadores relacionales

 2000 Prentice Hall, Inc. All rights reserved.


2

Historia de C
• C
– Evoluciona de 2 lenguajes de programación (Ritchie) :
BCPL y B
– Usado para desarrollar UNIX
– Usado para escribir los sistemas operativos modernos
– Independiente del HW (portable)
• Standardization
– Existian variaciones de C
– Eran incompatibles
– Comité formado para crear una definición de " sin
ambigüedades , independiente de la máquina "
– Estándar creado en 1989 , actualizada en 1999

 2000 Prentice Hall, Inc. All rights reserved.


3

Características de C
• Un programa en C consiste de “piezas” y
módulos llamados funciones
– Un programador puede crear sus propias funciones
– Los programadores suelen usar las funciones de la biblioteca
C
– Tiene un enfoque estructurado

 2000 Prentice Hall, Inc. All rights reserved.


4
Pasos de compilación y ejecución de un
programa en C
• Fases: Editor Disk

1. Edit Preprocessor Disk

2. Preprocess Compiler Disk

3. Compile Linker Disk


Primary Memory
4. Link Loader

5. Load Disk ..
..
..

6. Execute Primary Memory

CPU

..
..
..

 2000 Prentice Hall, Inc. All rights reserved.


5
Un programa simple :
Imprimir una linea de texto
1 /* Fig. 2.1: fig02_01.c
2 A first program in C */
3 #include <stdio.h>
4
5 int main()
6 {
7 printf( "Welcome to C!\n" );
8
9 return 0;
10 }
Welcome to C!

• Comentarios
– Texto debe estar entre /* y */
– Usado para documentar el programa
• #include <stdio.h>
– Directiva de preprocesamiento
• Indica al computador que debe cargar el contenido de cierto archivo
– <stdio.h> permite cargar librerias de entrada y salida

 2000 Prentice Hall, Inc. All rights reserved.


6

Cont….
• int main()
– Los programas en C contienen una o más funciones,
exactamente una de las cuales debe ser main
– Parentesis usados indican que es una función
– Int significa qur main “devuelve” un valor entero
– LLaves ({ y }) indiacn un bloque
• El cuerpo de cualquier funcion debe estar contenido entre
llaves.

 2000 Prentice Hall, Inc. All rights reserved.


7

Cont…
• printf( "Welcome to C!\n" );
– Instrucción que debe ser ejecutada por el computador,
especificamente, imprimir una cadena de caracteres que
estan contenidas entre “ ”
– La linea completa se llama statement
• Todos los statement terminan con un ;
– Caracter de escape ( \ )
• Indica a la instrucción printf hacer algo fuera de lo ordinario,
en nuestro caso, \n es un caracter de control conocido como
nueva linea (salto de linea)

 2000 Prentice Hall, Inc. All rights reserved.


8

Cont…
• return 0;
– Una forma de salir de la función
– return 0, es este caso, significa que el programa termino
de manera normal.
• Llave derecha }
– Indica que es final del cuerpo de main.

 2000 Prentice Hall, Inc. All rights reserved.


1 /* Fig. 2.5: fig02_05.c 9
2 Addition program */ Outline
3 #include <stdio.h>
4 1. Declara e inicializa
5 int main() variables
6 {
7 int integer1, integer2, sum; /* declaration */ 2. Lee los datos (INPUT)
8
9 printf( "Enter first integer\n" ); /* prompt */ 2.1 Suma
10 scanf( "%d", &integer1 ); /* read an integer */
11 printf( "Enter second integer\n" ); /* prompt */ 3. Imprimir (OUTPUT)
12 scanf( "%d", &integer2 ); /* read an integer */
13 sum = integer1 + integer2; /* assignment of sum */
14 printf( "Sum is %d\n", sum ); /* print sum */
15
16 return 0; /* indicate that program ended successfully */
17 }

Enter first integer


45
Enter second integer Salida del programa
72
Sum is 117

 2000 Prentice Hall, Inc. All rights reserved.


10
Otro programa C :
Sumar dos enteros
• Como el ejercicio anterior
– Comentarios, #include <stdio.h> y main
• int integer1, integer2, sum;
– Declaración de variables
• Variables: localizadas en memoria donde un valor puede ser
almacenado.
– int significa qye las variables pueden manejar numeros enteros
(-1, 3, 0, 47)
– Nombre de la variable (identificador)
• integer1, integer2, sum
• Identificador: consistenten en letras, digitos (no puede comenzar con
uno) y underscores( _ )
– Case sensitive
– Declaraciones deben aparecer o “declararse” antes de ser usadas
• Si una instrucción referencia o usa una variable no declarada entonces
se produce un error sintaxico (error en tiempo de compilación)
 2000 Prentice Hall, Inc. All rights reserved.
11

Cont…
• scanf( "%d", &integer1 );
– Obtiene un valor del usuario, por ejemplo, una entrada por
teclado.
• scanf utiliza la entrada estandar, usualmente un teclado.
– La instrucción scanf tiene 2 argumentos:
• %d – indica que el dato a leer debe ser un entero
• &integer1 – localizacion en memoria para almacenar la
variable

 2000 Prentice Hall, Inc. All rights reserved.


12

Cont…
• = (operador de asignación)
– Asigna un valor a la variable
– Es un operador binario (tiene dos operadores)
sum = variable1 + variable2
• printf( "Sum is %d\n", sum );
– Similar a scanf
• %d significa un entero será impreso (salida consola)
• sum especifica y contiene el valor a ser impreso
– Calculos pueden ser ejecutados en el printf:

printf( "Sum is %d\n", integer1 + integer2 );

 2000 Prentice Hall, Inc. All rights reserved.


13

Conceptos de memoria
• Variables
– El nombre de la variable corresponde a una localización o
dirección en la memoria del computador
– Todas las variables describen un tipo, un tamaño y un valor.
– Cada vez que un nuevo valor se coloca en una variable ( a
través de un scanf, por ejemplo), se reemplaza (y destruye)
el valor previo.
– Lectura de las variables de la memoria no los cambia
– Representación visual:

integer1 45

 2000 Prentice Hall, Inc. All rights reserved.


14

Aritmética
• Calculos
– * multiplicación y / para división
– División entera trunca el resto
• 7 / 5 es igual a 1
– Operador módulo (%) retorna el resto
• 7 % 5 es igual a 2

 2000 Prentice Hall, Inc. All rights reserved.


15

2.5 Arithmetic
• Operadores Aritméticos:
C op era tion Arithm etic Alg eb ra ic C exp ression
op era tor exp ression
Addition + f+7 f + 7
Subtraction - p–c p - c
Multiplication * bm b * m
Division / x/y x / y
Modulus % r mod s r % s
• Reglas de precedencia:
Operator(s) Operation(s) Order of evaluation (precedence)
() Parentheses Evaluated first. If the parentheses are nested, the
expression in the innermost pair is evaluated first. If there
are several pairs of parentheses “on the same level” (i.e.,
not nested), they are evaluated left to right.
*, /, or % Multiplication,Divi Evaluated second. If there are several, they are
sion, Modulus evaluated left to right.
+ or - Addition Evaluated last. If there are several, they are
Subtraction evaluated left to right.
 2000 Prentice Hall, Inc. All rights reserved.
16

Tomando Deciciones
• Instrucciones executables
– Ejecutan acciones (calculos, entrada y salida de datos)
– Ejecutan desiciones

• if
– If condición es true, then cuerpo es executado
• 0 es false, non-zero es true
• Keywords
– Palabras reservadas en C
– No se pueden usar en otro contexto

 2000 Prentice Hall, Inc. All rights reserved.


17

Operadores de Desiciones

Standard algebraic C equality or Example of C Meaning of C


equality operator or relational condition condition
relational operator operator
Equality Operators
= == x == y x is equal to y
not = != x != y x is not equal to y
Relational Operators
> > x > y x is greater than y
< < x < y x is less than y
>= >= x >= y x is greater than or
equal to y
<= <= x <= y x is less than or
equal to y

 2000 Prentice Hall, Inc. All rights reserved.


18

Palabras claves en C

Keyw ord s
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

 2000 Prentice Hall, Inc. All rights reserved.


1 /* Fig. 2.13: fig02_13.c
2 Using if statements, relational Outline
3 operators, and equality operators */
4 #include <stdio.h>
5
6 int main()
7 {
8 int num1, num2;
9
10 printf( "Enter two integers, and I will tell you\n" );
11 printf( "the relationships they satisfy: " );
12 scanf( "%d%d", &num1, &num2 ); /* read two integers */
13
14 if ( num1 == num2 )
15 printf( "%d is equal to %d\n", num1, num2 );
16
17 if ( num1 != num2 )
18 printf( "%d is not equal to %d\n", num1, num2 );
19
20 if ( num1 < num2 )
21 printf( "%d is less than %d\n", num1, num2 );
22
23 if ( num1 > num2 )
24 printf( "%d is greater than %d\n", num1, num2 );
25
26 if ( num1 <= num2 )
27 printf( "%d is less than or equal to %d\n",
28 num1, num2 );
 2000 Prentice Hall, Inc. All rights reserved.
29
30 if ( num1 >= num2 ) Outline
31 printf( "%d is greater than or equal to %d\n",

32 num1, num2 );

33

34 return 0; /* indicate program ended successfully */


35 }

Enter two integers, and I will tell you


the relationships they satisfy: 3 7
3 is not equal to 7
3 is less than 7
3 is less than or equal to 7

Enter two integers, and I will tell you


the relationships they satisfy: 22 12
22 is not equal to 12
22 is greater than 12
22 is greater than or equal to 12

 2000 Prentice Hall, Inc. All rights reserved.

También podría gustarte