Introducción al Lenguaje de Programación “...
Transcript of Introducción al Lenguaje de Programación “...
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
1/22
1.- Introduccin al Lenguaje de Programacin C
La manera habitual de aprender a programar en cualquier Lenguaje de Programacin, a los que el C o
C++ , no estn exentos es la de formular una Metodologa de Trabajo , como se ha visto en puntos
anteriores , que permita efectuar el Anlisis del Problema dado , Elaborar Algoritmos con Diagramas de
Flujos y/o Seudocdigo y por ltimo Codificar el Algoritmo para su prueba y validacin en una
Computadora.
La Codificacin es el pasaje de toda la lgica desarrollada en los respectivos algoritmos a un Lenguaje
de Programacin reconocido por el Computador y por el Programador. Para esto es indispensable conocer
las Reglas de Escritura o Sintxis de un Lenguaje de Programacin que servirn para todas las aplicaciones
y desarrollos, desde programas simples a programas de cualquier grado de complejidad.
El Lenguaje de Programacin C, entonces, se convierte en un medio de comunicacin comn entre el
usuario programador y la Computadora a los fines que la misma haga lo que el usuario necesita en
relacin con la solucin de un problema planteado.
Conocidas las Estructuras Bsicas como las Instrucciones Secuenciales, Selectivas o Condicionales y
las Repetitivas vistas en Unidad Temtica 4 as como los conceptos de Acumulador, Contador, Asignacin
y Bandera o Palabra Clave, corresponde por una cuestin de practicidad analizar los problemas resueltos
con Diagrama de Flujo y Seudocdigo desde el punto de vista de la Lgica a la que deben responder , y
traducirlos o pasarlos al Lenguaje C para que la Computadora efecte el procesamiento segn las
instrucciones que forman parte de un programa y presente los resultados de acuerdo a lo requerido en cada
caso particular. Esto quiere decir que usaremos los mismos Ejemplos para introducirnos en forma gradual
en el conocimiento del Lenguaje de Programacin C o C++.
La mejor manera de aprender a programar en cualquier lenguaje es editar, compilar, linkear, corregir y
ejecutar pequeos programas descriptivos.
El primer ejemplo bsico es el siguiente: - Realizar un programa en C que imprima por pantalla la leyenda
PRIMER PROGRAMA EN C .
Programa N 1:
# include
main ( )
{ /* Primer Programa escrito en C */
printf ( PRIMER PROGRAMA EN C \n ) ;
return 0;
}
EXPLICACIN:
Lo que hace este programa elemental es imprimir o escribir por pantalla de la Computadora el texto
PRIMER PROGRAMA EN C .
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
2/22
La forma general de un programa en C es:
# include
main ( ) Funcin main ( ) o Funcin Principal
{
Cuerpo del programa o programa con las instrucciones a ejecutar. Siempre est entre dos llaves que
significan Inicio y Fin de Ejecucin del Programa respectivamente.
}
El significado de cada parte es el siguiente:
# include < stdio.h> # include
Corresponde al Preprocesador del C++
y consiste en un procesador de Texto que realiza inclusin de
Ficheros llamados Archivos de Cabecera ( Header ) , de ah la extensin . h .
Con esta directiva se ponen a nuestra disposicin las funciones existentes en el Archivo de Cabecera
identificado con el nombre stdio.h.
# include es una directiva de inclusin de un archivo de cabecera ( header) orden de Leer un Archivo de
Texto especificado en el nombre que sigue a la misma. , en este caso , y reemplazar esta lnea
por el contenido de dicho archivo en la medida que se necesita durante la ejecucin del programa. El
ejemplo tiene la funcin printf, la cual es posible utilizar porque previamente se ha incluido dentro del
programa el contenido del Archivo de Cabecera de entrada-salida (input output) < stdio.h >.
De idntica manera se procede con cualquier otra funcin estndar de biblioteca o funciones creadas por el
usuario e incorporadas al archivo de cabecera que corresponda segn el tema.
Algunos ejemplos de Archivos de Cabecera son:
- #include incluye los prototipos de las funciones estndar de Input - Output
como scanf, printf, etc.
- # include incluye las funciones clrscr ( ), getch ( ), etc.
- # include < math.h > incluye las funciones de matemticas sqrt ( ), sin ( ), tan ( ), etc.
Existen otros archivos de cabecera como ctype.h, graphics.h, etc., que se utilizarn progresivamente. La
totalidad de dichos archivos se encuentran disponibles en el Manual de C++ y en la ayuda Help, de
manera que se pueden consultar las funciones disponibles por cada versin o fabricante de C++.
La directiva # include tiene algunas caractersticas importantes:
- No es una sentencia de programa sino una orden que se copie literalmente un archivo de texto ubicado en
el directorio INCLUDE, en el lugar en que ella est ubicada, razn por la que no es necesario terminarla
con ; como es exigible por el C para sus instrucciones.
- Cuando se pone < > se realiza la bsqueda en el directorio estndar donde se encuentra el fichero
INCLUDE .Caso contrario si se pone stdio.h, por ejemplo ,el compilador lo buscar en el directorio
activo en el momento de compilar.
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
3/22
- La existencia de estos archivos es evitar la repeticin de la escritura de largas definiciones en cada
programa.
main ( ) o Funcin Principal
Indica donde comienza el programa, cuyo ncleo es un conjunto de sentencias que estn delimitadas o
encerradas por llaves { } llamada Cuerpo Principal del Programa .
Entre estas dos llaves , { llave abierta significa Inicio de Ejecucin del Programa , y } llave cerrada
Fin de Ejecucin del Programa , se encuentran todas las instrucciones necesarias para solucionar un
problema planteado.
Para el caso del ejemplo main ( ) es la encargada de llamar a la funcin de biblioteca printf ( ) y en general
es la que posibilita la ejecucin y compilacin del programa. Su ausencia da un inmediato mensaje de error
evitando la compilacin y ejecucin del programa, por lo tanto impide continuar trabajando con el
programa hasta tanto se la coloque.
main ( ) puede llamar a dos clases de funciones : las funciones propias o creadas por el usuario y las
funciones residentes en la Biblioteca estndar escritas para el C por el fabricante de Software.
Ejecutada la instruccin printf ( .......\n) ; la finalizacin con ; indica al compilador el fin de la misma.
El smbolo \n indica que despus de imprimir el mensaje se pase a la lnea siguiente o se transfiera el
control de la ejecucin del programa a la lnea siguiente.
La segunda sentencia del Ejemplo es return 0 ; termina el programa y devuelve un Valor 0 (cero) al
argumento de main ( ) para indicar a quin la invoca, main ( ) , que ha finalizado la ejecucin del
programa.
Con el transcurrir de los ejemplos y uso de otros tipos de instrucciones se ir completando la forma
de escribir un programa en C.
Comentarios Las inclusiones de comentarios son tiles para aclarar lo que realiza el programa o partes de l. No son
Ejecutables y No Intervienen en la lgica de actuacin del programa por lo que no influyen en el
funcionamiento del mismo.
Se los indica de la forma / * ....*/ y para el caso del ejemplo es : /* Primer Programa escrito en C */
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
4/22
Programa N 2:
# include
main ( )
{ /* Segundo Programa escrito en C */
printf ( Buenas\ ) ;
printf ( Noches\ ) ;
printf ( \n ) ;
return 0;
}
Algunas Funciones incorporadas por el C:
Probar con:
\ + para tabular
\b retroceso
\ comillas
\\ diagonal invertida
printf - escribe o imprime datos por pantalla
scanf - introduce datos por teclado
getchar - lee un carcter
putchar - visualiza o escribe un
caracter cada vez que se invoca
power (m,n) - mn entero m elevado a la
potencia de n
- - - - - - - - - - - - - - - -
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
5/22
2.- Tipos de Datos
En el Lenguaje de Programacin C existen distintos tipos de datos cada uno de los cuales se pueden
representar en forma diferente en la memoria del computador. En los Tipos de Datos Bsicos el
requerimiento de memoria determina el Rango de Valores que se permiten para cada tipo, lo cual vara de
un compilador de C a otro o con las versiones del C.
Una clasificacin general de Datos es la siguiente:
Con 10
-38 < n > 10
38
Ejemplo: 15,67.103 15.67 E+/-3
Mantiza Base Exponente
3.- Identificadores
Los identificadores son nombres que se dan a diversos elementos que intervienen en un programa como
constantes, variables, funciones y arrays ( arreglos). Estn formados por letras y dgitos, en cualquier
orden excepto el primer carcter que debe ser una letra. Se pueden utilizar maysculas y minsculas no
acentuadas para la mayora de los compiladores, recordando que en Informtica una letra mayscula no
es lo mismo que una minscula. La longitud de los identificadores no est limitada, pero el compilador
acepta los primeros 31 caracteres.
Es costumbre utilizar minsculas para la mayora de los identificadores a excepcin de Constantes
Simblicas que son maysculas.
Reales
Decimales
Exponenciales: +/- x.xxxx E+/- n
E+/- n
Lgicos SI
NO
Carcter
(char)
Alfabticos: ( A.Z)
Numricos: (0.9)
Especiales: (+, - ,* ,= ,> ,< , %, etc.)
Cadena de caracteres conjunto de caracteres encerrados
entre doble comillas: - - - - - - - - - -
Numricos
No
Numricos
Datos
Bsicos
Enteros
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
6/22
4.- Palabras Claves
Son palabras reservadas que tienen un significado preestablecido en C y en cualquier lenguaje de
programacin, debido a lo cual no se pueden utilizar como Identificadores dentro de un programa.
Ejemplo: break, case, char, default, double, if, else, while, continue, do, float, for, goto, int, long, register,
static, struct, etc.
5.- Constantes
Se designa con este nombre a un " Valor " numrico o string (alfa numrico) cualquiera y son iguales a
los datos ya definidos. Se caracterizan porque no cambian durante la ejecucin del programa.
Ejemplo: para el clculo del rea de un crculo s = PI x r^2, el valor de PI = 3,14159 es fijo e inalterable
cualquiera sea el valor del radio r.
En C se pueden colocar los valores directamente o representarlos mediante identificadores que son
nombres que se asignan a cada constante.
Para este ltimo caso estamos en presencia de constantes simblicas. Una constante simblica es una
cadena de caracteres especiales y el nombre se escribe con maysculas.
La sintaxis de una constante simblica es:
7.- Operadores
Son signos especiales que indican determinadas operaciones a realizar con las variables y constantes. Los
operadores pueden ser de tipo aritmticos, lgicos, relacionales, de incremento y decremento, asignacin,
como se indica en las Tablas siguientes.
8.- Variables
Del ejemplo anterior, Punto 5), surge que PI es constante y el radio r puede tener diferentes valores. A
elementos con las caractersticas del radio r se conoce como variable.
Una Variable es un objeto o dato cuyos valores pueden cambiar durante la ejecucin de un programa. Las
variables pueden ser numricas, lgicas y alfanumricas.
Para el caso del ejemplo " Calcular el rea de un crculo " la variable es r, es del tipo numrica y puede
tener distintos valores.
rea s = PI x r^2 = 3,14159 x r x r
Un programa en C que calcula el rea de un crculo para un determinado valor de r se muestra a
continuacin:
# define NOMBRE Valor
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
7/22
Programa N 3:
# include < stdio.h > /* programa que calcula el rea de un crculo */
# include /* biblioteca que permte usar clrscr = borrar pantalla y */
main () /* getch () =.... */
float r , rea ; /* se declaran como float a las variables r y rea */
clrscr ( );
printf ( " Introducir valor de radio =\n ");
scanf ( " % f " , & r ); /* ingreso de valores de r con punto decimal por teclado */
rea = 3.14159 * r * r ;
printf (" Area = %f \n ",area);
printf ( " Fin del programa ");
getch ();
return 0 ;
Este programa simple se puede generalizar para varios valores de r y es donde se nota la potencialidad o
ventaja de realizar este clculo en C. Como nuevo problema se puede considerar " calcular el rea de un
crculo para 100 radios distintos".
Como existe una multiplicacin de un valor fijo o constante como es PI se puede poner de la forma
Indicada como Constante Simblica y el programa sera:
Programa N 4 :
# include < stdio.h > /* programa que calcula el rea de un crculo */
# include
# define PI 3.14159
main()
float r , rea;
printf ( " Introducir valor de radio =\n ");
scanf ( " % f " , & r ); /* ingreso de valores de r con punto decimal por teclado */
rea = PI * r * r ; / * cambio de 3.14159 por PI */
printf (" Area = %f \n ",area);
printf ( " Fin del programa ");
getch ();
return 0 ;
Este Programa N 4 sirve de ejemplo ilustrativo de Constantes Simblicas.
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
8/22
Recordar que se deben declarar todas las variables antes que aparezcan sentencias ejecutables que
hagan uso de ellas.
9.- Expresiones
Es un Smbolo o grupos de Smbolos que un Lenguaje de Programacin puede evaluar, y pueden ser
combinaciones de constantes, variables, funciones, arrays, smbolos de operaciones, parntesis, clasificados
de la forma siguiente:
10.- Tablas de Variables, Constantes y Operadores
TABLA 1: CANTIDAD DE CARACTERES
TIPO BYTES VALOR MINIMO VALOR MAXIMO CIFRAS/ CANT.
CARACTERES
Signed char 1 -128 127 [ 2(8-1)
] 1 carcter de ASCII (American Standard Code for Interchange Information)
Unsigned char 1 0 255 [28] 1 carcter. El cdigo
ASCII da equivalencia
entre cada carcter y el el nmero correspondiente
Signed short int 2 -32.768 +32.767 [2(16-1)
] 5
Unsigned short int 2 0 +65.535 [216
] 5
Signed int 2 -32.768 +32.767 [2(16-1)
] 5
Unsigned int 2 0 +65.535 [216
] 5
Signed long int 4 -2.147.483.648 +2.147.483.647 [2(32-1)
] 10
Unsigned long int 4 0 +4.294.967.295 [232
]
Float ( 32 bits) 4 3.4E-38
3.4E+38
11 espacios: 7 enteros,
1 punto,3 decimales hasta
un mximo de 6.
Double ( 64 bits) 8 1.7E-308 1.7E+308 17 espacios: 10 enteros,
1 punto,6 decimales.
Long Double (80 bits) 10 3.4E-4932 3.4E+4932
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
9/22
TABLA 2: OPERADORES ARITMETICOS ( BINARIOS)
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
+ Suma a + b 3
- Resta a b 3
* Multiplicacin a * b 2
/ Divisin a / b 2
% Mdulo ( Resto) a % b 2
- CAMBIO DE SIGNO -a 2
TABLA 3: OPERADORES RELACIONALES
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
< Menor que (a < b) 5
> Mayor que (a > b) 5
= b) 5
== Igual que (a == b) 6
! = Distinto que (a != b) 6
TABLA 4: OPERADORES LOGICOS
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
&& Y (AND) (a < b) && (c < d) 10
|| O (OR) (a > b) || (c < d) 11
! NEGACION (NOT) ! (a > b) 1
TABLA 5: OPERADORES DE INCREMENTO Y DECREMENTO ( UNARIOS)
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
++ Incremento ++i i++ 1
-- Decremento --i i-- 1
TABLA 6: OPERADORES DE ASIGNACION
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
= Igual a a = b 13
op= Pseudocdigo a += b 13
=?: Asig. Condicional a = (c > b)?d:e 12
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
10/22
TABLA 7: PRECEDENCIA DE LOS OPERADORES
PRECEDENCIA OPERADORES ASOCIATIVIDAD
0 () [] Izq. A derecha
1 sizeof(tipo) ! ~ ++ -- signo*& Derecha a izq.
2 */% Izq. A derecha
3 +- Izq. A derecha
4 > Izq. A derecha
5 >= Izq. A derecha
6 == != Izq. A derecha
7 & Izq. A derecha
8 ^ Izq. A derecha
9 | Izq. A derecha
10 && Izq. A derecha
11 || Izq. A derecha
12 ?: Derecha a izq.
13 =+=-=*= etc Derecha a izq.
Si en una operacin hay signos del mismo nivel de precedencia, la operacin
se realiza de izquierda a derecha.
TABLA 8: VALORES DE LOS CODIGOS DE CONTROL DE FORMATO EN C
Funcin scanf printf
Tamao del valor (modifica el tipo de dato):
Especifica entero corto
Especifica entero largo
Especifica real doble
Uso con real para indicar longitud doble
%hd
%ld
%lf
%Lf
%ld
%lf
%Lf
Tipo de dato para ser ledo o escrito:
Carcter simple
Entero con signo
Real o real de doble precisin con signo en formato exponencial
Real o real de doble precisin con signo en formato decimal
Octal (letra O no 0)
Cadena de caracteres
Entero decimal sin signo
Hexadecimal (%X para letras maysculas)
Escribe el smbolo de porcentaje
Entero decimal de seis dgitos
Punto flotante de seis dgitos
Punto flotante con dos dgitos tras el punto decimal
%c
%d
%e
%f
%O
%s
%u
%x
%c
%d
%e
%f
%O
%s
%u
%x
%%
%6d
%6f
%.2f
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
11/22
Punto flotante con seis dgitos, dos tras el punto %6.2f
Ejemplos:
Ejemplo 1:
If ( c>=0 && c< 9); si c est entre 0 y 9 c es un dgito// determina si c es un dgito
else if ( c == || c == \ n || c == \t); evala si c es blanco, lnea o tabulador
Ejemplo 2:
fprintf (stdprn,--\n); // fprintf (stdprn,BUENAS NOCHES\n); salida por impresora
Ejemplo 3:
s = s+a s+ = a;
c = c+1 c++
;
Programa N 5:
# include < stdio.h > /* programa que imprime un carcter */
# include
main ()
char c;
c=`A;
printf ( " c es % c\n,c);
printf (" c es % d\n, c);
printf ( " Fin del programa ");
getch ();
return 0 ;
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
12/22
11.- Control de Flujo en Lenguaje de Programacin C ++
Las principales Estructuras de algoritmos desarrollados con diagrama de Flujos y Seudocdigo son
generales y vlidas para cualquier clase de Lenguaje de Programacin a utilizar. Sin embargo, como
nuestro propsito es el de estudiar el C++
, veremos las Estructuras especficas de este lenguaje.
Las estructuras bsicas del C++
se clasifican en:
Usos de Proposiciones : - break (*)
- continue (*)
- goto
- operador condicional: ? (*)
11.1.- Estructuras Condicionales
Estas estructuras permiten ejecutar una o varios procedimientos condicionados por el resultado de una
Expresin el valor de una Variable.
11.2.- if - else
La sentencia if - else se utiliza para tomar o expresar decisiones ( ejecutar acciones) a partir de la
evaluacin de una condicin lgica o aritmtica de una expresin determinada.
En su forma simple la sentencia if permite la ejecucin de una Sentencia solo en el caso que la respuesta a
la Condicin Lgica sea Verdadera ( SI ) , caso contrario si la Condicin Lgica es Falsa (NO), NO SE
EJECUTA ninguna Instruccin y se contina con la ejecucin Normal del Programa.
La forma ms general de una Estructura de Control if - else con inclusin de la Clusula else es:
if Simple
if ( expresin ) Sentencia 1 ; si la respuesta a la evaluacin de la expresin es SI se
ejecuta la Sentencia 1.
- - - - - - - - - - - - - - - - - - - - si la respuesta es NO se contina con la ejecucin normal
- - - - - - - - - - - - - - - - - - - - del programa, sin generar ninguna accin especfica por
- - - - - - - - - - - - - - - - - - - - dicha respuesta.
Estructuras en
C++
Secuenciales
Control
Selectivas
Condicionales
Repetitivas
(Ciclos)
If else
switch
switch case)
Simples
Dobles - Triples
Mltiples
while
for
do - while
( (*) Son de uso exclusivo del C
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
13/22
if Doble
if ( expresin ) si la respuesta a la evaluacin de la expresin es positiva
proposicin 1 ; o por SI se ejecuta la proposicin 1.
else
proposicin 2 ; caso contrario si la respuesta es NO se ejecuta la proposicin 2.
Cualquiera sea la respuesta se generan acciones.
- - - - - - - - - - - - - - - - - - - - Terminada la evaluacin de la expresin por SI o por NO
- - - - - - - - - - - - - - - - - - - - se contina con la ejecucin del programa.
Ejemplo:
If ( c>=0 && c< 9); si c est entre 0 y 9 c es un dgito// Expresin que determina
- - - - - si c es un dgito
else if ( c == || c == \ n || c == \t); Expresin que evala si c es blanco, lnea o tabulador
- - - - - - - - - - - - - - - -- - - -
- - - - - - - - - - - - - - - - - - - -
Hay que tener cuidado con la parte else de una estructura condicional puesto que para evitar
confusiones o ambiguedades es conveniente hacer lo siguiente:
- descendencia con lo cual le damos claridad.
- colocar else se evitan confusiones.
- colocar { } en general se recomienda el uso de llaves como prctica de programacin
puesto que permite identificar las distintas alternativas de ejecucin de un if
con claridad.
Ejemplos de Sintxis. Los casos anteriores quedaran de la forma siguiente:
if Simple if Doble
if (expresin ) if ( expresin)
{ {
Sentencia 1; Sentencia 1;
Sentencia 2; Sentencia 2;
} }
else
Sentencia 3; {
Sentencia 4; Sentencia 3;
Sentencia 5; Sentencia 4;
}
Sentencia 5;
La proposicin else queda siempre asociada al if ms cercano o inmediatamente arriba de l.
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
14/22
If multiple
if ( expresin 1)
Sentencia 1; Recordar: si hay ms de una instruccin a ejecutar por cada
else if (expresin 2) alternativa , se debe poner { } , a pesar que el ltimo else es
Sentencia 2; optativo
else if ( expresin 3)
Sentencia 3;
else Sentencia 4;
Programa 6:
Realizar un programa en C que seleccione nmeros positivos (+) y negativos (-)
# include < stdio.h > /* programa que selecciona nmeros (+) y (-) */
# include
main ()
int num;
clrscr ();
printf ( Seleccin de Nmeros + y - \n);
printf ( Ingresar Nmeros\n);
if ( num >= 0)
printf ( El Nmero es Positivo: %d, num);
else printf ( El Nmero es Negativo:%d, num);
getch ();
return 0 ;
Programa 7:
Hacer un programa en C que indique la lgica de actuacin de un sistema de alarmas de temperatura
ambiente, produciendo la actuacin automtica de un electroventilador, generar reportes en casos
crticos y guardar los eventos en una Base de Datos (BD).
# include < stdio.h >
# include
main ()
int temp;
clrscr ();
printf ( LOGICA DE ACTUACIN DE ALARMAS \n);
printf ( La Temperatura medida es : );
scanf ( %d, & temp);
if ( temp >= 25 && temp < 45)
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
15/22
printf ( Temperatura Normal\n);
printf ( Guardar en BD Estado Normal);
else if ( temp < 25)
printf ( Alarma de Temperatura Mnima\n);
printf ( Comunicar ATMinma a Centro de Control\n);
printf ( Guardar ATMnima en BD\n);
else if ( temp > 45)
printf ( Alarma de Temperatura Mxima\n);
printf ( Hacer actuar Electroventilador\n);
printf ( Comunicar ATMxima a Centro de Control\n);
printf ( Guardar ATMxima en BD\n);
printf ( Fin de Ejecucin del Programa\n);
getch ();
return 0 ;
Que sucede si se utiliza void main (void) en lugar de main () y suprime return 0 ?
11.3.- switch ( switch case)
Es habitual necesitar comprobar o comparar una variable o una expresin con un conjunto de valores o
constantes. Si hay una constante que sea igual a la variable, entonces ejecuta el procedimiento asociado
con esa constante. Esto se puede realizar con instrucciones if else anidadas o por razones de simplicidad
utilizar una instruccin que est disponible para estas aplicaciones como es la switch.
Switch es una proposicin con decisin mltiple que prueba si una expresin coincide o es igual con
una de un conjunto de valores constantes anteriores, indicando en etiqueta case y traslada el control
adecuadamente en funcin del valor.
La sintxis es: switch ( expresin) sentencia
Switch (expresin) el valor de la expresin puede ser entero o char
{
case exp. constante 1: proposicin 1; break; la proposicin 1 o 2 pueden ser una o varias
case exp.constante 2: proposicin 2; break; proposiciones
default: proposicones;
}
Para evaluar el valor de la proposicin se procede la siguiente manera:
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
16/22
Si la expresin = expresin constante 1, se ejecutan las proposiciones correspondientes o proposicin 1
y con break se sale inmediatamente del switch. Por lo tanto evita que la ejecucin del programa caiga en
la siguiente case.
Si expresin = expresin constante 2, se procede de manera idntica al caso anterior, pero ejecutando la
proposicin 2 o proposiciones correspondientes a esta lnea de programa.
Si la expresin tiene un valor que no existe dentro de los valores establecidos en las expresiones en las
expresiones constantes se ejecutan por default las proposiciones que correspondan a esta lnea de
programa.
Por lo tanto, se ejecuta si ninguna de las otras se satisface o no hay ninguna correspondencia con el
switch.
[Las clusulas break y default pueden ocurrir en cualquier orden]
break
Esta instruccin produce una salida inmediata del switch o de un bucle for, do while o while, al margen
de la condicin que lo pueda producir. Un uso comn es cuando se produce un error durante la ejecucin
de un programa o de un conjunto de instrucciones para salir de esa situacin.
En consecuencia, es necesario utilizar la instruccin de salida break para que el compilador
abandone la estructura switch. Si se omite, el C++
no lo reporta como error, pero el programa, una vez
ejecutadas las instrucciones asociadas con una constante, continuara con las instrucciones asociadas con
la siguiente constante en la lista.
default
Esta instruccin es opcional y se utiliza para establecer un procedimiento por defecto, para cuando la
variable no coincida con ninguna de las constantes o valores.
En sntesis la sentencia switch se puede concebir como una alternativa al uso de sentencias if else
anidades, aunque solo puede sustituir a sentencias if else que comprueban igualdades. Tal es el caso
de Men.
Programa 8:
Elaborar un Men principal de un programa que realiza el clculo de circuitos resistivos elementales:
serie, paralelo y mixto.
#include
#include
#include ctype es u archivo de cabecear que tiene funciones como toupper
void main ( void) , tolower, etc.
{
char opcion;
clrscr ();
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
17/22
printf ( Opciones Serie, Paralelo, Mixto, Fin del Programa\n);
printf ( Ingresar la inicial elegida\n);
opcin = toupper ( getch ()); toupper, convierte un carcter de minscula a mayscula
printf (\n); para cualquier carcter seleccionado desde el teclado. Es
como si fuera un scanf.
switch (opcin) .
{
case S: printf ( Circuito Serie\n); break;
case P: printf ( Circuito Paralelo\n);break;
case M: printf ( Circuito Mixto\n);break;
case F: printf ( Fin del Programa\n);break;
default: printf ( === CARCTER NO VALIDO ===\n);
}
getch ();
}
11.4.- Estructuras Repetitivas ( Ciclos de Iteracin)
Tambin llamadas estructuras iterativas o bucles. Se ejecuta varias veces un grupo de instrucciones y para
cada iteracin, evala el valor de una expresin para decidir si repite o no el procedimiento. Por lo tanto,
controlan y hacen ejecutar una tarea tantas veces como el programa lo requiera. Posee un bloque de
decisin que controla el nmero de veces que debe ejecutarse un ciclo de trabajo o bucle, razn por la
que cumplido el mismo se produce el llamado corte de control.
Hay tres estructuras repetitivas, While, for, y do While, cuyas caractersticas particulares veremos a
continuacin.
While Mientras - Hacer
En este bucle se verifica una condicin al comienzo de la ejecucin de un programa y si se cumple, se
ejecuta un procedimiento. Terminado un procedimiento, se vuelve y se confirma el cumplimiento de la
condicin. Dicho bucle se repite hasta que la condicin sea FALSA o bien, mientras la condicin sea
VERDADERA.
Este bucle se considera de verificacin preliminar porque la condicin se evala antes de entrar a ejecutar
el procedimiento o algoritmo principal. Enfocado de otra manera, la evaluacin de la condicin lgica va al
comienzo del ciclo. En la sintaxis siguiente, si el resultado de la evaluacin lgica es Positivo se realizan
acciones o se ejecutan las instrucciones del Mdulo A. Mientras e cumpla con la condicin se contina
ejecutando dicho Mdulo. El Mdulo A puede tener una o un conjunto de instrucciones. La ejecucin del
Mdulo A produce la modificacin de la condicin lgica. Cuando la misma se modifica, se devuelve el
control del programa y se contina con la ejecucin normal de mismo.
Si en la primera evaluacin lgica de la condicin, el resultado es Negativo, NO se ejecutan acciones,
continuando con la ejecucin normal del programa.
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
18/22
La sintaxis de la instruccin en seudocdigo es:
MIENTRAS ( Condicin) HACER
Modulo A una o varias instrucciones
Modulo B corresponde a Ejecucin Normal del Programa
La sintaxis de la instruccin en C es:
While ( condicin expresin lgica)
Ejecucin de sentencias o Mdulo A
Programa 9:
Realizar un programa en C que suma Nmeros positivos (+).
# include < stdio.h > /* programa con aplicacin de while */
# include /* Programa que suma nmeros positivos */
main ()
int a, s = 0, cant = 0;
clrscr();
printf ( "Ingresar valores de a:\n);
scanf ( %d, & a);
while ( a > = 0) se detiene cuando se ingresa un Nmero negativo (-)
s+ = a; s = s + a
cant++
; cant = cant +1
printf ( "Ingresar valores de a:\n);
scanf ( %d, & a);
printf (" La suma S es = %3d\n, s);
printsf ( La cantidad de nmeros sumados es:%3d, cant);
printf ( " Fin del programa ");
getch ();
return 0 ;
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
19/22
Do - while
En este bucle se realiza un procedimiento o se ejecuta una instruccin primero y despus se verifica la
condicin lgica para repetir o No el procedimiento. Ejecutado el ciclo una vez, se evala la condicin
lgica. Si dicha condicin es verdadera se itera nuevamente. Este bucle se repite hasta que la condicin sea
Falsa o mientras la condicin sea Verdadera. Es idntico a REPEAT / UNTIL o Repetir .. hasta que (
).
Verifica o prueba la condicin lgica al Final del Ciclo, con lo cual realiza un ciclo de ms que el while,
porque se ejecuta por lo menos una vez .Por esta razn es menos utilizado. Su uso debe hacerse con
cuidado.
Sintxis:
do
(proposiciones )
While ( expresin lgica)
Programa 10
Para ver la relacin con while se realiza el mismo programa que es sumar nmeros positivos (+) con do
while
# include < stdio.h > /* programa con aplicacin de do while */
# include /* Programa que suma nmeros positivos */
main ()
int num, sum = 0;
clrscr();
printf (Sumar nmeros positivos\n);
do
printf ( "Ingresar valores de num:\n);
scanf ( %d, & num);
sum+ = num; sum = sum + num
while ( num > = 0);
printf (" La suma S es = %d\n, sum);
printf ( \n); printf ( Fin del Programa\n);
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
20/22
getch ();
return 0 ;
La dificultad del Programa 10, dado como ejemplo es que realiza siempre un ciclo de ms, porque la
condicin se evala a final del ciclo.
Si ingresamos un nmero negativo al comienzo de la ejecucin, el programa lo toma al nmero (-) , los lo
suma y recin evala su condicin de negativo para detener el programa.
Este programa sera mas apropiado para sumar nmeros positivos (+) y negativos (-) y detenerlo cuando
se ingresa un cero (0)
Programa 11
Un programa ms ilustrativo es Sumar nmeros y detener el programa cuando la suma sea /* Aplicacin de do while */
# include /* Programa que suma nmeros hasta que la suma sea < 90 */
void main (void)
int num, sum = 0;
clrscr();
printf ( Sumar nmeros hasta que la suma sea menor que 90\n);
do
scanf ( %d, & num);
sum+ = num; sum = sum + num
while ( sum < 90);
printf (" La suma S es = %d\n, sum);
printf ( \n);
printf ( Fin del Programa\n);
getch ();
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
21/22
for
Es una forma generalizada de while, tiene tres secciones separadas por ;
La sintaxis es:
for ( exp.1; exp.2;exp.3)
proposicin 1; Hay que tener cuidado con los anidamientos en for
proposicin 2;
Ejemplo:
for ( i = 0; i < n; i++)
Un procedimiento repetitivo puede implementarse usando cualquiera de las estructuras vistas while, do
while, pero es comn utilizar la estructura for cuando se conoce de antemano la cantidad de veces a repetir
y no existe una condicin de salida diferente a la de haber cumplido la cantidad de veces de ejecucin.
Programa 12
Programa que suma 3 nmeros y realiza el promedio .
# include < stdio.h > /* programa con aplicacin de for */
# include
void main (void)
int num, s = 0, cont = 0 ;
clrscr();
printf ( Efectuar la Suma y el Promedio de 3 nmeros\n);
for ( cont =1; cont < 3; cont++)
printf ( Ingresar un Nmero=\n);
1era. Seccin
Inicializacin 2da. Seccin
Condiciona o prueba, que
controla el ciclo for. Si la
condicin es Verdadera el
cuerpo del ciclo for se
ejecuta.
3era. Seccin
Determina el incremento o avance
por pasos de i = i + 1 i++
.
Se ejecuta y se repite la ejecucin
del ciclo.
-
UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL TUCUMN
Ingeniera Electrnica Gua de Estudios de Informtica I 1R2 Ao 2014
22/22
scanf ( %d, & num);
s+ = num; s = s + num
printf (" La suma S es = %d\n, s);
printf ( Promedio = %d, s/cont);
printf ( Fin del Programa\n);
getch ();
12.- Bibliografa Recomendada
- " Fundamentos de Programacin: Algoritmo y Estructura de Datos". Mxico. Editorial McGraw Hill. Luis
Goyanes Aguilar:
- " El Lenguaje de Programacin C ".Mxico. Editorial Prentice Hall Hispanoamericana. Brian W. Kernighan
- Dennis M. Ritchie:
- " Programacin en C ". Mxico. Serie Schaum McGraw Hill. Byron S. Gottfried
- " Manual de Borland C++
.Mxico. Editorial McGraw Hill. Chris H. Pappas / William H. Murray III.
- C- Gua de Autoenseanza. Serie McGraw Hill de Informtica. Herbert Schildt.
Mg.Ing. Juan C. Colombo
13/04/14