You are on page 1of 52

INSTRUCCIONES.

El procedimiento de los apuntes del cuaderno y las prácticas es el mismo que en


las unidades 1 y 2, transcribir al cuaderno de la página 1 hasta la 34.
Las tablas, imágenes y programas de ejemplo se pueden imprimir, recortar y pegar
en el cuaderno.
Las prácticas vienen en las páginas de la 35 a la 51 los programas deben ejecutar
en Dev-C++ y enviármelas por correo o WhatsApp.
En la página 52 vienen los requisitos de las prácticas.
Nota: En las unidades 3 y 4 no hay proyecto de investigación.
Fecha de entrega 06 de octubre del 2022.

UNIDAD 3 (Aquí empiezan los apuntes del cuaderno)


INTRODUCCIÓN A LA PROGRAMACIÓN DE UN LENGUAJE ESTRUCTURADO

INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C


El lenguaje C, es tipo lenguaje estructurado de propósito general parecido a otros
lenguajes de programación como: PASCAL, BASIC, FORTRAN, etc. Sus
instrucciones son muy parecidas incluyendo sentencias como if, else, for, do y
while. C es un lenguaje de alto nivel y posee sentencias y funciones que
simplifican su funcionamiento. También se tiene la posibilidad de programar a bajo
nivel (como en el lenguaje ensamblador tocando los registros memoria).
El lenguaje de programación C, está caracterizado por ser de uso general, con una
sintaxis sumamente compacta y de alta portabilidad. Para simplificar su
funcionamiento, el lenguaje C tiene incluidos archivos o librerías de funciones que
pueden ser incluidas haciendo referencia la librería que las incluye. Es decir que, si
queremos usar una función para borrar la pantalla o una función de salida,
tendremos que incluir en nuestro programa los archivos o librerías a las que
pertenecen dichas funciones.
Programar en C tiene una gran flexibilidad para escribir código compacto y sencillo
a su misma vez, tiene las características que permiten su uso a un nivel más bajo,
cubriendo así el vacío entre el lenguaje máquina y los lenguajes de alto nivel más
convencionales.
Este lenguaje de programación está orientado a los Sistemas operativos y es muy
eficaz y con él podemos crear Software de sistemas operativos como Windows,
Linux y también para aplicaciones. También sirve para experimentos informáticos,
físicos, matemáticos etc. es también muy utilizado en robótica con el que se
programan simuladores.

LENGUAJE DE PROGRAMCION
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que
definen su estructura y el significado de sus elementos y expresiones.

.
1
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
ESTRUCTURA DE UN PROGRAMA EN C
Todo programa en C puede incluir: directivas de procesador, declaraciones
globales y locales, la función principal main(), comentarios del programa, funciones
definidas por el usuario, arreglos(Arrays).
Las directivas son instrucciones del compilador. Todas las directivas o librerías o
archivos de cabecera comienzan con el signo (#), las más utilizadas en C son
#include y #define no terminan en punto y coma, ya que no son instrucciones de
lenguaje C.
C utiliza varios archivos o librerías a los cuales pertenecen ciertas funciones
llamadas de biblioteca o librerías, para realizar varias operaciones y cálculos de uso
frecuente. Estas funciones se encuentran almacenadas en archivos que se incluyen
en el compilador. Para acceder a estos archivos se utiliza la directiva: #include.

MUESTRA DE LA ESTRUCTURA DE UN PROGRAMA EN C


Comentarios
Directivas del preprocesador
#include <archivo.h>
#define nombre texto
Declaración de variables globales
Prototipos de funciones
int main( ) // Función principal main
{
Declaraciones locales de la función principal
Instrucciones de la función principal
}
Otras funciones:
funcion1(.....)
{
Declaraciones locales de la función 1
Instrucciones de la función 1
}
funcion2(.....)
{
Declaraciones locales de la función 2
Instrucciones de la función 2
}
.
Funcion n(.....)
{
Declaraciones locales de la función n
Instrucciones de la función n
}

2
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
.
DIRECTIVA #include su formato es: #include<archivo.h>
En la redacción de cualquier programa en C, se deben incluir todos los archivos a
los que pertenecen las funciones de biblioteca que se utilicen en su desarrollo.
A los archivos también se les llama archivos de cabecera, librerías o bibliotecas
La extensión .h = header (inglés) = Encabezamiento o cabecera (español)
Programa de ejemplo:
//Progama de aplicación de ladirectiva #include.
#include<stdio.h>
#include<math.h>
#include<conio.h>
main()
{
float x, y,s,t;
printf("Ingrese el valor de x = "); /*archivo #include<stdio.h> */
scanf("%f",&x); //archivo#include<stdio.h>
printf("Ingrese el valor de y = ");
scanf("%f",&y); //archivo #include<stdio.h> */
s = pow(x*y,3); //archivo #include<math.h>
t= sqrt(x); // archivo #include<math.h>
printf("s = %f\nt = %f",s,t);
getch(); //archivo #include<conio.h>
return 0;
}
Las funciones printf y scanf pertenecen al archivo #include<stdio.h>
Las funciones sqrt y pow pertenecen al archivo #include<math.h>
La función getch pertenece al archivo #include< conio.h>

3
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
En las páginas 20 y 21 viene una tabla de las principales librerías de C.
DIRECTIVA #define
su formato es: #define nombre texto
Esta directiva indica al procesador que sustituya un dato por otro. Por ejemplo, la
directiva #define TRE 50 sustituirá el valor de 50 cada vez que TRE aparezca en el
programa. También se le llama constante simbólica.
Ejemplo;
#define PI 3.1416
#define CIERTO 1
#define FALSO 0
Programa de ejemplo:
//Programa de aplicación de la directiva #define
#include<stdio.h>
#include<conio.h>
#define PI 3.1416
main()
{
float A,r; //Declaraciones de variables
printf("Introduce el valor de r: ");
scanf("%f",&r);
A = PI*r*r; // PI está definido domo 3.1416
printf("El resultado del Area es: %f m.c.", A);
getch();
}

COMENTARIOS
La inclusión de comentarios en un programa es una saludable práctica, como lo
reconocerá cualquiera que haya tratado de leer un listado elaborado por otro
programador o por sí mismo, varios meses atrás. Para el compilador, los
comentarios son inexistentes, por lo que no generan líneas de código, permitiendo
abundar en ellos tanto como se desee. Los comentarios se escriben entre los
delimitadores /* */ y //.
Ejemplos:
/*…………………………………………………………………………………………….*/ Varias
líneas
//………………………………………………………………………………………………//
……………………Una sola línea

DECLARACIONES
Una declaración consiste en un tipo de datos, seguido de uno o más nombres de
variables, finalizando en un punto y coma (;).
Todas las variables deben ser declaradas antes de ser utilizadas.
Ejemplos: char p; int a,b,c; float r1,r2; double x,y,z;
También se le pueden asignar valores iniciales a las variables dentro de la
declaración de tipo:
Ejemplos:
char p = ‘x’;
char texto [ ] = “Hola”;
int a = 3, b = 5, c;
foat x = 0.013, y = -5.2, z;
4
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
.
LAS DECLARACIONES SE CLASIFICAN EN: GLOBALES Y LOCALES
GLOBALES Indican al programador que las constantes o variables declaradas son
comunes a todas las funciones del programa o sea que tienen validez en todo el
desarrollo del programa. Se escriben antes de la función principal main().
LOCALES Son variables o constantes que se declaran dentro de una función o
cuerpo o bloque de un programa. Estas solo pueden ser utilizadas por las
sentencias de la función donde están declaradas, fuera de dicha función, no tienen
validez.

Programa de ejemplo:
//programa que visualiza las variables globales y locales
#include<stdio.h>
int y=20; // Declaración global
main ()
{
{
int x = 5;// Declaración local Inicio del bloque
printf ("Bloque 1\n");
printf ("x = %d, y = %d\n", x, y); // Visualiza x = 5, y = 20
} //Fin del bloque
{ //Inicio del bloque
printf ("Bloque 2\n");
int x=10; // Esta x es local al bloque
printf ("x = %d, y = %d\n", x, y); // Visualiza x = 10, y = 20
} // Fin del bloque
{ // Inicio del bloque
printf ("Bloque 3\n");
int x = 30;// x variable local
printf ("x = %d, y = %d\n", x, y); /* Visualiza x = 30, y = 20 */
}// Fin del bloque
return 0;
}// El valor de y no cambia porque es declaración global

LA FUNCIÓN PRINCIPAL DE CABECERA main()


El único componente que es obligatorio en cada programa en C, es la función
main(). En su forma más simple esta función consiste en el nombre main, seguido
por un par de paréntesis vacíos ( ) y un par de llaves { } . Dentro de las llaves se
encuentran enunciados que forman el cuerpo principal del programa.
En la función main() se desarrolla todo el código del programa, las llamadas a
funciones procedimientos, siendo la primera en ser llamada cuando comienza la
ejecución de programa. La función main(), es parte esencial en un programa en C.
Su formato es:
main()
{
secuencia de sentencias Cuerpo o estructura de la función main()
o bloque de sentencias
}
5
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
.
FUNCIONES DEFINIDAS POR EL USUARIO (Este 4 tema se tratará en la unidad)
Un programa en lenguaje C es una colección de funciones, algunas funciones
predefinidas denominadas funciones de biblioteca y otras definidas por el usuario.
CONCEPTOS BÁSICOS DE C
CÓDIGO FUENTE. Es el texto que el usuario escribe, basándose en el conjunto de
instrucciones y en la sintaxis que el lenguaje dicte (.c o .ccp).
CÓDIGO OBJETO. Es la traducción del código fuente de un programa a código
máquina, que es el que la computadora puede interpretar y ejecutar directamente.
Este código es la entrada al enlazador (.obj).
ENLAZADOR. Se encarga de combinar las funciones de la biblioteca estándar de C
con el código que se ha escrito. La salida del enlazador es un programa ejecutable
(.exe).
BIBLIOTECA. Son archivos que contienen las funciones estándar que se pueden
usar en los programas. Estas funciones incluyen todas las operaciones de E/S, así
como otras rutinas útiles.
COMPILACIÓN. Es el proceso durante el cual se traducen una a una las sentencias
del código fuente a código máquina, en esta acción pueden ocurrir errores de
sintaxis.
EJECUCIÓN. Es el proceso que permite que veamos al programa funcionar,
llevando a cabo las operaciones que se han implementado.
FUNCIÓN. Una función en C es un grupo de instrucciones que realizan una o más
acciones.

CARACTERISTICAS DE UN PROGRAMA EN LENGUAJE C


1.- Integridad. Corrección de los cálculos en un programa.
2.- Claridad. Esto permite a otro programador seguir la lógica del programa sin
mucho esfuerzo.
3.- Sencillez. Redactar programas claros y sencillos para su fácil corrección.
4.- Eficiencia. Esto se relaciona con la velocidad de ejecución y utilización eficiente
de la memoria.
5.- Modularidad. Los programas se pueden dividir en pequeñas subtareas o
módulos. El diseño modular de los programas aumenta la claridad y corrección de
estos y facilita posibles cambios futuros.
6.- Generalidad. Un programa debe ser lo más general posible. Por ejemplo, se
puede hacer un programa que lea los valores de ciertos parámetros en lugar de
dejarlos fijos.
7.- Depuración de programas es el proceso de identificar y corregir errores de
programación. En inglés se conoce como debugging, porque se asemeja a la
eliminación de bichos (bugs), manera en que se conoce informalmente a los errores
de programación

6
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
PASOS PARA LA EJECUCIÓN DE UN PROGRAMA EN C

7
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
.
ELEMENTOS BÁSICOS DE C
Lenguaje c se auxilia de ciertos elementos básicos para la construcción de
programas como: el conjunto de caracteres, secuencias de escape, identificadores,
palabras clave, tipos de datos, constantes, arreglos, declaraciones, expresiones,
sentencias y operadores.

CONJUNTO DE CARACTERES DE C (0 a 127 bytes)

SECUENCIAS DE ESCAPE
En C también se utilizan combinaciones de caracteres no imprimibles como: el
retroceso de un espacio \b, un salto de línea \n, un tabulador \t, un sonido bell \a,
etc. solo se utilizan en las cadenas de caracteres de las funciones de biblioteca
printf()
Programa de ejemplo:
#include<stdio.h>
main()
{
printf("Hola");
printf ("como ");
printf ("están ");
return 0;
}
La salida o resultado será:

Sin embargo.
Programa de ejemplo:
#include<stdio.h>
main()
{
printf("Hola \n");
printf ("como \n");
printf ("están \n");
return 0;
}
La salida o resultado será:

8
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
Si se quiere tabular el texto se usa la secuencia de escape \t
Programa de ejemplo:
Ejemplo.
#include<stdio.h>
main()
{
printf("\t\tHola \n");
printf ("\t\tcomo \n");
printf ("\t\testán \n");
return 0;
}
La salida o resultado será:

Una secuencia de escape siempre representa un solo carácter, aun cuando se


escriba con dos o más caracteres.
Ejemplos:
‘\102’ secuencia de escape en octal que representa el número decimal 66 y la letra B
en el código ASCII.
‘\x45’ secuencia de escape en hexadecimal que representa el número decimal 69 y
la letra E en el código ASCII.

TABLA DE LAS PRINCIPALES SECUENCIAS DE ESCAPE


CODIGO SIGNIFICADO VALOR ASCII(DEC) VALOR ASCII (HEX)
‘\a’ sonido bell 07 0x07
‘\n’ nueva línea 10 0x0A
‘\r’ retorno de carro 13 0x0D
‘\f’ nueva página 12 0x0C
‘\t’ tabulador horizontal 09 0x09
‘\b’ retroceso (backspace) 08 0x08
‘\’’ comilla simple 39
0x27
‘\’’’ comillas 34 0x22

9
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
‘\\’ barra invertida (backslash) 92 0x5C
‘\?’ interrogación 63 0x3F
‘\0’ carácter nulo 00 0x00
‘\ooo’ cualquier carácter (donde ooo es el código ASCII expresado en octal )
‘\xhh’ cualquier carácter (donde xhh es el código ASCII expresado en hexadecimal )

DENTIFICADORES O VARIABLES O ARGUMENTOS


Los identificadores son nombres que se les da a varios elementos de un programa,
como variables, constantes, funciones Y arreglos. Un identificador está formado
por letras y dígitos, en cualquier orden, excepto el primer carácter, que debe ser
una letra o un carácter de subrayado.
Se pueden utilizar mayúsculas y minúsculas (no acentuadas), aunque no se pueden
intercambiar, esto es, una letra mayúscula no es equivalente a su correspondiente
minúscula de acuerdo al código ASCII.
La longitud de los identificadores no se limita, aunque el compilador sólo reconoce
los 31 primeros caracteres. Los demás caracteres son utilizados para la comodidad
del programador, esto depende del compilador que se utilice.
Ejemplos de cómo deben escribirse los identificadores.
correcto: Incorrecto:
q 6q Carácter ilegal (el número al inicio)
Area A-rea Carácter ilegal (-)
El_cubo _es_igual_a El-cubo-es_igual_a Carácter ilegal (´)

PALABRAS CLAVE
En lenguaje C se usan ciertas palabras predefinidas llamadas palabras clave que se
utilizan con un propósito ya establecido; No se pueden utilizar como identificadores
definidos por el programador a menos que se escriban con letras mayúsculas.
En C está estrictamente prohibido escribir las palabras clave y las funciones de
biblioteca en mayúsculas, todo se escribe en minúsculas.

TABLA DE PALABRAS CLAVE USADAS EN C


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

10
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
.
TIPOS DE DATOS
En lenguaje C se usan cuatro tipos de datos: char (carácter), int (entero), float
(coma flotante), double (coma flotante de doble precisión) y void (sin valor).
Los datos de tipo char se usan para guardar valores definidos en juego de
caracteres ASCII, así como cualquier cantidad de 8 bits. Las variables de tipo int se
usan para guardar cantidades numéricas enteras.
Las variables de tipo float y double se usan para guardar números reales. (Los
números reales son aquellos que tienen una parte entera y una fraccionaria).
El tipo de dato double maneja más cifras significativas y mayor valor posible del
exponente.
TABLA DE LOS TIPOS DE DATOS BÁSICOS
Espec. de
Tipo de dato Tamaño Rango formato
char 8 bits -128 a 127 %c ó %d
unsigned char 8 bits 0 a 255 %c ó %d
Short int 16 bits -32,768 a 32,767 %hd
int 32 bits -2,147,483,648 a 2,147,483,647 %i ó %d
unsigned int 32 bits 0 a 4,294,967,295 %u
float 32 bits 3.4x10e-38 a 3.4x10e38 %f ó %g ó
%e
double 64 bits 1.1x10e-308 a 1.7x10e308 %lf
bool 8 bits 0a1
void Sin valor

Para la definición o declaración de variables se debe poner primero el tipo de dato a


definir y luego los nombres de la variable, separadas por comas terminando en
punto y coma (;).
Ejemplos: float x, y, z; o float x = 12.32500, y = 0.012519, z;

CONSTANTES
En C se usan cuatro tipos básicos de constantes: constantes enteras, constantes
de coma flotante, constantes de carácter y constantes de cadena de caracteres
(también se utilizan las constantes enumeradas que se tratarán en capítulos
avanzados).

11
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
Las constantes son datos referenciados a través de un identificador o variable,
cuyo valor no varía a lo largo de toda la ejecución de un programa.

CONSTANTES ENTERAS
Una constante entera, es un número con un valor entero que se puede escribir en
tres sistemas numéricos: decimal, octal o hexadecimal.
Una constante entera decimal puede estar formada por cualquier combinación de
dígitos del 0 al 9. Si la constante tiene dos o más dígitos, el primero de ellos debe
ser distinto de 0
Ejemplos de la escritura de las constantes Decimales para sus declaraciones:
DEC int a = 457; OCT int a = 0457; HEX int a = 0X457;
CONSTANTES DE COMA FLOTANTE
Una constante de coma flotante es un número en base 10 que contiene un punto
decimal y/o un exponente.
Ejemplos de la escritura de las constantes de coma flotante:
float x = 0. 5, y = 3e-9; 86230. 0.5235 145.236 1248E-5
Las constantes enteras son cantidades exactas, mientras que las constantes de
coma flotante son aproximaciones.
CONSTANTES DE CARÁCTER
Es un solo carácter encerrado entre comillas simples para su declaracion.
Ejemplos:
Declaración de Caracteres Valor numérico ASCII
char c = ‘#’; 35
char c = ‘\’; 92
Programa de ejemplo:
//Programa de aplicacion de los tipos de datos char, int, float y double
#include<stdio.h>
main()
{ char caracter ='@';
int a = 2000;
float x = 5.342546;
double z = 3.456732901203;
printf("El caracter %c en ASCII representa el numero decimal %d\n", caracter, caracter);
printf("Elvalor de a es: %d\n",a);
printf("Elvalor de x es: %f\n",x);
printf("Elvalor de z es: %.12f",z);
return 0;
}
CONSTANTES DE CADENA DE CARACTERES
Es cualquier número de caracteres consecutivos o ninguno encerrados entre
comillas. Ejemplo printf(“Hola “); o puts(“Hola”);
printf(“Hola...”); en pantalla se visualizará: Hola...
puts(“Calle 10 no. 50”); en pantalla aparece: Calle 10 no. 50.
Se debe tener en cuenta que una constante de carácter (‘c’) no es equivalente a una
constante de cadena de caracteres (“c”). Ya que una constante de carácter tiene un
valor entero correspondiente, mientras que la constante de cadena no tiene valor
entero equivalente.

ARREGLOS (ARRAYS) (Este tema se tratará en la unidad 5


12
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
Un arreglo es un identificador que referencia un conjunto de datos del mismo tipo. Imagina
un tipo de dato entero.

VARIABLES
Una variable es un identificador que se utiliza para representar cierto tipo de
información dentro del programa. Ejemplo: F = m*a; P = v*i;

EXPRESIONES
Una expresión representa una unidad de datos simple, tal como un número o un
carácter, una constante, una variable, un elemento de un arreglo o una referencia de
una función.
Ejemplos: E = m*v*v/2; x<=y; p = = q; a>b&&c<d||p<q; x*=y;
SENTENCIAS
Una sentencia hace que la computadora ejecute una acción. En C se utilizan tres
tipos diferentes de sentencias: sentencias de expresión o de asignación,
sentencias compuestas y de control.

SENTENCIAS DE EXPRESIÓN O DE ASIGNACIÓN (=)


Una sentencia de expresión consiste en una expresión seguida de un punto y coma
(;). La ejecución de una sentencia de expresión hace que se evalúe expresión.
Ejemplos:
x =5; El valor numérico 5 es asignado a la variable x
p = q/r; A p se le asigna el resultado de las variables q y r
++k; Hace que la variable k se incremente en 1

SENTENCIAS COMPUESTAS
Una sentencia compuesta está formada por varias sentencias individuales
encerradas en un par de llaves ({y}). Las sentencias individuales pueden ser a su
vez sentencias de expresión, sentencias compuestas o sentencias de control.
Una sentencia compuesta hace posible incluir sentencias dentro de otras
sentencias. A diferencia de las sentencias de expresión estas no terminan en punto
y coma (;).
Ejemplos:
#include<stdio.h>
main( )
{ /* Inicia sentencia compuesta */
Instrucciones
} /*Termina sentencia compuesta */

SENTENCIAS DE CONTROL (Este tema se tratará en la unidad 4)

Las sentencias de control se usan para conseguir ciertas acciones especiales en un


programa, como comprobaciones lógicas, bucles y ramificaciones.

OPERADORES Y EXPRESIONES
Los operadores son símbolos que representan operaciones y, se utilizan para
formar expresiones. Lenguaje C, posee un gran número de operadores que se

13
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
pueden agrupar en varias categorías como: operadores aritméticos, operadores
monarios, operadores relacionales, operadores lógicos, operadores de asignación y
el operador condicional. Los datos sobre los que actúan los operadores se llaman
operandos. A algunos operadores se les llama binarios porque requieren dos
operandos para ejecutarse, a otros se les llama monarios o unarios ya que actúan
sobre un solo operando, también existe un operador que actúa sobre tres
operandos a este se llama operador condicional. Un operador sirve para manipular
datos.

OPERADORES ARITMÉTICOS (+, -, *, / y %)


TABLA DE LOS OPERADORES ARITMÉTICO
Operador Expresión Significado
+ a+b Suma
- a-b Diferencia (o cambio de signo)
* a*b Producto
/ a/b División entera
% a%b Módulo (resto de la división entera)
En lenguaje C no hay operador de exponenciación. Sin embargo, se utiliza la
función de biblioteca pow que realiza la exponenciación. Esta función pertenece al
archivo de biblioteca #include<math.h>. Ejemplo: pow(x,y) x = base y =
exponente pow(x,y)=xy por ejemplo: pow(3,2)=32=9.

Programa de ejemplo:
/* Programa de aplicación de los operadores aritméticos */
#include <stdio.h>
#include <math.h>
main()
{
int a = 10,b = 3,c,d,e,f,g; float x =5,y = 3, potencia;
c = a+b; //Suma
d = a-b; //Resta
e = a*b; //Multiplicación
f = a/b; //División
g = a%b; //Residuo de una division o módulo
potencia = pow(x,y);
printf ( " %d + %d = %d\n",a,b, c);
printf ( " %d - %d = %d\n",a,b, d);
printf ( " %d * %d = %d\n",a,b, e);
printf ( " %d / %d = %d\n",a,b, f);
printf ( " El residuo de la division es:= %d\n",g);
printf ( " 5 elevado a la 3 es igual a: %.2f",potencia);//Aplicación de la función pow
}

OPERADOR RESTO (%)


Con este operador se puede obtener el residuo de una división. Este operador
funciona únicamente con números enteros, no vale para números float o double.
Programa de ejemplo:
/* Programa de aplicación del operador resto */
#include <stdio.h>
main()
14
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
{
int a = 100,b = 60,c;
c = a%b;//Residuo de una division o modulo
printf ( " El residuo de la division es: %d\n",c);
} //Salida: El residuo de la division es 40
Programa de ejemplo:
/* Aplicación del operador resto */
//programa que visualiza números pares
#include <stdio.h>
main()
{
int a;
for(a = 0; a<=100; ++a){
if(a%2==0) //visualiza números pares
printf("%d \t", a);
}
}
Programa de ejemplo:
/* Aplicación del operador resto */
//programa que visualiza números impares
#include <stdio.h>
main()
{
int a;
for(a = 0; a<=100; ++a){
if(a%2==1)//visualizar números impares
printf("%d \t", a);
}
}

PRECEDENCIA DE LOS OPERADORES ARITMÉTICOS (ORDEN DE EVALUACIÓN)


Los operadores de mayor precedencia se realizan antes que los operadores que
tienen menor precedencia. Sin embargo, se puede alterar el orden natural mediante
el uso de paréntesis.
Los operadores, *, / y % se encuentran dentro de un mismo grupo de precedencia, y
+ y – se encuentran en otro. El primer grupo tiene mayor precedencia que el
segundo. Por lo tanto, las operaciones de *, / y % se realizarán antes que las de
adición y sustracción.
La asociatividad de los operadores aritméticos es de izquierda a derecha. Por
consecuencia las operaciones consecutivas de los operadores aritméticos se
realizan de izquierda a derecha.
Ejemplo: 30 / 2 + 13 = 28 de otro modo 30 / (2 + 13) = 2 5+5/2 = 7.5 de otro modo
(5+5)/2 = 5

OPERADORES MONARIOS O UNARIOS


En se C se incluyen ciertos operadores que actúan sobre un solo operando para
producir un nuevo valor. A estos operadores se les denomina operadores
monarios. Se les llama así porque suelen preceder a su único operando, aunque
algunos se escriben detrás de operando. Los operadores monarios se clasifican en:

15
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
operador menos monario (-), operador de incremento (++), operador de decremento
(--) y el operador sizeof (tamaño de).

OPERADOR MENOS MONARIO (-)


Este se utiliza cuando un signo menos precede a una constante numérica, una
variable o una expresión.
Una operación menos monaria siempre será distinta del operador aritmético
sustracción (-), debido a que este operador es binario.
Ejemplos: -568 -(x+y) -5/(a-b) -(a*b-c/d) -01478 -0xafd6 -7E-6 -.0568

OPERADORES DE INCREMENTO (++) Y DECREMENTO (--)


Estos operadores se usan más frecuentemente en las sentencias de control de flujo
para realizar iteraciones.
El operador de incremento (++), hace que su operando se incremente en uno.
Mientras que el operador de decremento (--) hace que su operando se decremente
en uno. El operando utilizado siempre debe ser una variable.

.
TABLA DE EQUIVALENCIAS DE LOS OPERADORES MONARIOS ++ Y - -
Operador Expresión Expresión equivalente
++ ++Variable Variable = variable +1
-- --Variable Variable = variable –1
Ejemplos:
int i = 5 ++i equivale a i = i+1 por lo tanto i = 6. Este operador equivale a sumar 1 a la
variable. En caso contrario se resta 1 a la variable int i = 5 –i equivale a i = i-5 por lo
tanto i = 4.
Programa de ejemplo:
/* Aplicación del operador (++) en un contador inverso de 1 a 50 */
#include <stdio.h>
main()
{ int p;
for(p=1; p<=50;++p){
printf ( "%d\t", p );
}
return 0;
}
Programa de ejemplo:
/* Aplicación del operador (--) en un contador inverso de 50 a 1 */
#include <stdio.h>
main()
{
int p;
for(p=50; p>=1;--p){
printf ( "%d\t", p );
}
}

OPERADOR MONARIO sizeof (tamaño de).


También determina el número de caracteres de un texto)
Este operador devuelve el tamaño de su operando en bytes.
16
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
Programa de ejemplo:
/* Programa que determina el número de caracteres de un texto */
#include<stdio.h>
main()
{
char texto[ ] = "Lopez Torres Juan Manuel";//aquí escriban su nombre completo
printf("Mi nombre completo tiene %d caracteres.\n", sizeof (texto));
}
Los operadores monarios tienen mayor precedencia que los operadores
aritméticos.
Ejemplo:
int x =20, y = 20, q, r; q = x*++y; q = 20*++20 q = 20*21 = 420 r = x*y; r = 20*20 = 400

OPERADORES RELACIONALES O DE COMPARACIÓN


Los operadores relacionales se utilizan para comprobar las condiciones de las
sentencias de control de flujo. Cuando se evalúa una condición el resultado que se
obtiene es falso = 0 si no se cumple y cuando se cumple es cierto = 1. Las
evaluaciones de estos operadores darán como resultados 0 o 1.
TABLA DE LOS OPERADORES RELACIONALES

Operador Significado Interpretación


== igual que se cumple si son iguales
!= distinto que se cumple 1 si son diferentes
> mayor que se cumple si el primero es mayor que el segundo
< menor que se cumple si el primero es menor que el segundo
se cumple si el primero es mayor o igual que el
>= mayor o igual que
segundo
se cumple si el primero es menor o igual que el
<= menor o igual que
segundo

Programa de ejemplo:
/* Aplicación de operadores relacionales */
#include <stdio.h>
main()
{
int a = 50, b = 20;
printf( "a>b da como resultado %d\n", a>b );
printf( "b<a da como resultado %d\n", b<a );
printf("a==b da como resultado %d\n",a==b);
printf("a>=b da como resultado %d\n",a>=b);
printf("a<=b da como resultado %d\n",a<=b);
printf("a!=b da como resultado %d\n",a !=b);
return 0;
}

OPERADORES LÓGICOS. Tema visto en compuertas lógicas.

OPERADORES DE ASIGNACIÓN
El operador de asignación ( = ) es el más usado en lenguaje C.
17
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
Este es un operador que se utiliza para asignar un valor a una variable. Este valor
puede ser un número que tecleamos directamente u otra variable.

Su formato es: identificador = expresión


Ejemplo:
Velocidad = distancia/tiempo; Area = base*altura/2; a = 100; o a = b;
Se pueden asignar valores a varias variables a la vez: por ejemplo: a = b = c = 30;
se les asigna a las variables a, b, c el valor 30. También se pueden asignar
variables al valor de otra variable. Por ejemplo: a = b = c = d; a, b, c toman el valor
d.
C posee, además cinco operadores de asignación para formar expresiones y son
los siguientes: + =, - =, * =, / = y % =.
Ejemplos :
Int a = 10, b=8; declaración de variables
Expresión Expresión equivalente Resultado
a += b; a = a + b; a = 18
a - = b; a = a - b; a=2
a * = b; a = a * b; a = 80
a / = b; a = a / b; a=1
a %= b; a = a % b; a = 2.
Programa de ejemplo:
//Aplicación de los operadores de asignación en un programa
#include <stdio.h>
main()
{
int x, y;
x = 8;
y = 6;
x += 2;
printf( "x = %d\n", x );
x += y; /* esto equivale a x = x + y */
printf( "x = %d\n", x );
x -= y; /* esto equivale a x = x - y */
printf( "x = %d\n", x );
x *= y; /* esto equivale a x = x * y */
printf( "x = %d\n", x );
x /= y; /* esto equivale a x = x / y */
printf( "x = %d\n", x );
x %= y; /* esto equivale a x = x % y */
printf( "x = %d\n", x );
return 0;
}

Programa de ejemplo:
/*Programa que realiza un conteo de cinco en cinco hasta 100 */
#include <stdio.h>
main()
{
int q;
for(q=0; q<=100; q+=5)

18
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
printf( "%d\t", q );
return 0;
}

OPERADOR CONDICIONAL (?:)


Con este operador se pueden realizar operaciones simples. Una expresión que hace
uso del operador condicional se denomina expresión condicional. Esta expresión
se puede escribir por la sentencia condicional if – else.
Su formato es: Exp1?exp2:exp3
Cuando se evalúa una expresión condicional, exp1 se evalúa primero. Si exp1 es
cierta, entonces se evalúa exp2 y este es el valor de la expresión condicional. Sin
embargo, si exp1 es falsa, entonces es evaluada exp3 y este es el valor de la
expresión condicional.

Ejemplos:
int x = 1; (x<0)?0:100 (1<0)?0:100 = 100
1 no es menor que cero por lo tanto la expresión (1<0) es falsa el resultado es 100
De otro modo:
Si int x = -1; (x<0)?0:100 (-1<0)?0:100 = 0
-1 es menor que cero por lo tanto la exp1. (-1<0) es cierta, el resultado será 0../*
.
Programa de ejemplo:
//Comparación del operador condicional (:?) con la sentencia condicional if-else */
#include <stdio.h>
main()
{
int a, b;
printf(“Introduce los números:\n”);
scanf(“%d%d”,&a,&b);
if(a > b)
printf(“%d >%d \n”,a,b); /*salida en pantalla: a>b*/
else
printf(“Falso”); /*salida en pantalla: Falso*/
return 0;
}

En lenguaje C no se usan los corchetes ( [ ] ), ni las llaves ( { } ) para simplificar


expresiones tipo algebraico.
Ya que se usan con otro propósito como representar arreglos y sentencias
compuestas.

TABLA DEL GRUPO DE PRECEDENCIA DE LOS OPERADORES EN GENERAL


Categoría Operador Asociatividad
Monarios - ++ -- ! sizeof D a I
Multiplicación, división y resto * / % I a D
Suma y resta - +
I a D
Relacionales < <= > >= I a D
19
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
Igualdad == != I a D
Y lógica && I a D
O lógica || I a D
Condicional ?: D a I
Asignación = += -= *= /= %= D a I

.
FUNCIONES DE BIBLIOTECA O LIBRERÍAS SRCHIVOS DE CABECERA
Lenguaje C utiliza ciertas funciones de biblioteca para realizar varias operaciones y
cálculos de uso frecuente, estas funciones se encuentran almacenadas en archivos
que se incluyen en el compilador. Para acceder a estos archivos se utiliza la
directiva: #include <archivo.h>
La extensión .h designa un archivo de cabecera (h = header = encabezado) que
indica que se debe incluir al comienzo del programa.

TABLA DE FUNCIONES DE BIBLIOTECA Y DESCRIPCIONES DE USO


Archivo
Función Tipo #include< Propósito Ejemplos
>
Fmod(d1,d2) double Math.h Retorna el resto de d1/d2 con el mismo signo que d1
Abre un archivo llamado s1, del tipo s2.
Fopen(s1,s2) File* Stdio.h
Retorna un puntero al archivo
fprintf(f1,"El resultado es %f\
fprintf(f, ...) int stdio.h Escribe datos en el archivo f (el resto de los argumentos
n",result);
fputc(c, f) int stdio.h Escribe un carácter en el archivo f fputc(*(p++), stdout);
fputs(s, f) int stdio.h Escribe una cadena de caracteres en el archivo f fputs("esto es una prueba", f1);
Lee i2 elementos, cada uno de tamaño i1 bytes, desde el fread(buf, strlen(msg)+1, 1,
fread(s,i1,i2,f) int stdio.h
archivo f hasta la cadena s flujo);
char*cad; 
//asignar memoria a la cadena
malloc.h o Libera un bloque de memoria reservada cuyo principio esta
free(p) void cad=(char *)malloc(50);
stdlib.h indicado por p.
...
free(cad); // liberar memoria
fscanf(f, ...) int math.h Lee datos del archivo f ( el resto de los argumentos fscanf(flujo, %s%f, cad, &f);
20
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
Mover el puntero al archivo f una distancia de un byte
Fseek(f,1,f) int Stdio.h desde la posición al principio del archivo, la posición actual
del puntero o el fin del archivo
ftell(f) long int stdio.h Devuelve la posición actual del puntero dentro del archivo f ftell(fichen)
Escribe i2 elementos, cada uno de tamaño 1 bytes, desde num=fwrite(lista,sizeof(char),25,f
fwrite(s, i1, i2, f) int stdio.h
la cadena s hasta el archivo f lujo);
while(c=getc(fx) !=EOF {
getc(f) int stdio.h Lee un carácter del archivo f    print ("%c",c);
}
int c;
getchar(void ) int stdio.h Lee un carácter desde el dispositivo de entrada estándar  while((*c=getchar()) != '\n')
   print ("%c",c);
char(pu Lee una cadena de caracteres desde el dispositivo de
gets(s) stdio.h gets(nombre);
ntero) entrada estándar
carac=getch();
if (isalnum(carac))
Determina si el argumento es alfanumérico. Devuelve un   print("%c letra|digito \n",carac);
isalnum(c) int ctype.h
valor distinto de cero si es cierto; en otro caso devuelve 0 else
  printf("%c no letra|digito \n",
carac);
int c;
Determina si el argumento es alfabético. Devuelve un valor
isalpha(c) int ctype.h if (isalpha(c)) printf("%c es letra\
distinto de cero si es cierto; en otro caso devuelve 0.
n",c);
Determina si el argumento es un carácter ASCII. Devuelve int c;
isascii(c) int ctype.h un valor distinto de cero si es cierto; en otro caso devuelve if (isascii(c)) printf('%c es un
0 ascii\n",c)
Determina si el argumento es un carácter ASCII de control.
if(iscntrl(c)) printf"%c es un
iscntrl(c) int ctype.h Devuelve un valor distinto de cero si es cierto; en otro caso
caracter de control\n",c);
devuelve 0
Determina si el numero es un digito decimal. Devuelve un if(isdigit(c)) printf"%c es un
isdigit(c) int ctype.h
valor distinto de cero si es cierto; en otro caso devuelve 0 digito\n",c);
Determina si el argumento es un carácter ASCII gráfico if(isgraph(c)) printf"%c es un
isgraph(c) int ctype.h (hex 0x21 -0x7e; octal 041 -176). Devuelve un valor distinto caracter imprimible(no espacio)\
de cero si es cierto; en otro caso devuelve 0 n",c);
Determina si el argumento es una minúscula. Devuelve un if(islower(c)) printf"%c es una
islower(c) int ctype.h
valor distinto de cero si es cierto; en otro caso devuelve 0 letra minuscula\n",c);
Determina si el argumento es un digito octal. Devuelve un if(isodigit(c)) printf"%c es un
isodigit(c) int ctype.h
valor distinto de cero si es cierto; en otro caso devuelve 0 digito octal\n",c);
Determina si el argumento es un carácter ASCII imprimible
if(isprint(c)) printf("\n"c
isprint(c) int ctype.h (hex 0x20 -0x7e; octal 040 -176). Devuelve un valor distinto
imprimible\n",c);
de cero si es cierto; en otro caso devuelve 0
Determina si el argumento es un carácter de puntuación.
if(ispunct(c)) printf"%c es un
ispunct(c) int ctype.h Devuelve un valor distinto de cero si es cierto; en otro caso
caracter de puntuacion\n",c);
devuelve 0
Determina si el argumento es un espacio en blanco.
if(isspace(c)) printf"%c es un
isspace(c) int ctype.h Devuelve un valor distinto de cero si es cierto; en otro caso
espacio\n",c);
devuelve 0
Determina si el argumento es una mayúscula. Devuelve un if(isupper(c)) printf"%c es una
isupper(c) int ctype.h
valor distinto de cero si es cierto; en otro caso devuelve 0 mayuscula\n",c);
Determina si el argumento es un digito hexadecimal.
ifisxdigit(c)) print"%c es un digito
isxdigit(c) int ctype.h Devuelve un valor distinto de cero si es cierto; en otro caso
hexadecimal\n",c)
devuelve 0

21
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
long lx=-51654,ly;
labs(l) long int math.h Devuelve el calor absoluto de 1
ly=labs(lx);
hdouble x,y;
log(d) double math.h Devuelve el logaritmo natural de d x=10;
y=log(x);
hdouble x,y;
log10(d) double math.h Devuelve el logaritmo (en base 10) de d x=10;
y=log10(x);
void(pu Reserva u bytes de memoria. devuelve un puntero al
malloc(u) stdlib.h cadena=malloc(MAX_CHR);
ntero) principio del espacio reservado
double x=2.0, y=4.0, z;
pow(d1, d2) double math.h Devuelve d1 elevado a la potencia d2
z=pow(x,y); //z sera 1.60

printf(...) int stdio.h

putc(c, f) int stdio.h Escribe un carácter en el archivo f putc('*',demo);


putchar(c) int stdio.h Escribe un carácter en el dispositivo de salida estándar  putchar('B');
Escribe una cadena de caracteres en el dispositivo de
puts(s) int stdio.h puts("Desea continuar (s/n);
salida estándar

.
FUNCIONES DE ENTRADA Y SALIDA
Las principales funciones de entrada son: "getchar" ,"scanf" y “gets” mientras que
las correspondientes funciones de salida son: "putchar" , "printf" y “puts”. Todas
estas funciones pertenecen al archivo de acceso a biblioteca #include<stdio.h>.
Estas funciones permiten la transferencia de datos entre la computadora y los
dispositivos de entrada y salida estándar (teclado y monitor).
Las funciones getchar y putchar, permiten la transferencia de caracteres sueltos
hacia adentro y hacia afuera de la computadora. Las funciones scanf y printf son
más complejas y más utilizadas en C, ya que permiten la transferencia de
información de caracteres sueltos, valores numéricos y cadenas de caracteres. Las
funciones gets y puts, permiten la transferencia de cadenas de caracteres. Con
estas funciones ya se pueden redactar programas sencillos y completos.

FUNCIONES DE E/S getchar() y putchar()


Estas funciones de entrada y salida se consideran las más primitivas del C. Pues
transfieren sólo un carácter leído desde el dispositivo de entrada estándar (el
teclado) a la salida (la pantalla)
Sus formatos son: variable de carácter = getchar(); putchar(variable de
carácter);
La función getchar no requiere argumentos aunque es necesario que un par de
paréntesis vacíos siga a la función, por ejemplo getchar( ).
Variable de carácter es una variable de carácter previamente declarada.

Programa de ejemplo:
/*Programa donde se aplican las funciones getchar() y putchar()*/
#include<stdio.h>
main()
{

22
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
char c;
c = getchar( );
putchar( c );
return 0;
}
/*En pantalla se visualizará el carácter que se oprima en el teclado*/

FUNCION DE ENTRADA scanf()


scanf()
Su formato es: scanf (“cadena de control”, &argl, &arg2, ..., &argn);
La cadena de control se forma de grupos individuales de caracteres de conversión
o especificadores de formato por cada dato de entrada.
Cada carácter de conversión debe comenzar con el signo de porcentaje (%) que
indica el tipo de dato en que esta declarado el programa en cuestión.
Los argumentos o variables representan los datos, estos van precedidos de los
signos ampersand (&), excepto las variables de las cadenas de caracteres. Los
signos ampersand (&) sirven para fijar en alguna dirección de la memoria los datos,
también se les llama punteros pues indican donde se encuentran situados los
datos en la memoria de la computadora.
Los arreglos de caracteres no representan direcciones de memoria por lo tanto no
van precedidos del signo ampersand (&).

.
Ejemplos:
main()
{
char f;
int a;
long q;
float x;
double z;
char leo[100];
scanf (“%c %d %ld %f %lf ”,&f,&a,&q,&x,&z);
gets(leo);
}

FUNCIÓN DE SALIDA printf()


Sus formatos son:
I printf (“cadena de caracteres”); para pedir datos en pantalla
II printf (“cadena de control”, argl, arg2, ..., argn); para visualizar resultados en
pantalla.
La cadena de control se forma de grupos individuales de caracteres de conversión
por cada dato de entrada. Cada carácter de conversión debe comenzar con el signo
de porcentaje (%) que indica el tipo de dato en que esta declarado el programa en
cuestión. Los argumentos pueden ser constantes, variables simples, nombres de
arreglos o expresiones más complicadas. Los argumentos o variables no
representan direcciones de memoria por lo tanto no van precedidos del signo
ampersand (&).

Programa de ejemplo:

23
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
/* Programa que guarda datos en memoria y los visualiza en pantalla aplicando
Las funciones de E/S scanf(), printf(), gets() y puts()*/
#include<stdio.h>
main()
{
char f ;
int a;
short e;
long q;
unsigned t;
float x;
double z;
char leo[100];
printf("*********************************** \n");
printf("Escribe tu nombre completo \n");
gets(leo);
printf("Teclea los valores de f, a, e, q, t, x, z:\n");
scanf ("%d %d %hd %ld %u %f %lf ", &f, &a, &e, &q, &t, &x, &z);
/*Aquí se escriben las formulas*/
printf("%c\n %d\n %hd\n % ld\n %u\n %f\n %lf\n", f, a, e, q, t, x, z);
puts(leo); // ó printf("%s", leo);
return 0;
}

FUNCIONES DE ENTRADA Y SALIDA gets y puts


Estas funciones se utilizan para leer o escribir la entrada y salida de cadenas de
caracteres casi no se usan.
Una función puts puede sustituir a una función printf únicamente cuando se usan
cadenas de caracteres. Por ejemplo, printf(“Hola amigo\n”); se pude escribir
puts(“Hola amigos\n”);
Sus formatos son: gets(variable de caracteres);
puts(variable de caracteres);

Programa de ejemplo:
#include<stdio.h>
main()
{
char Texto[100]; //Texto es la variable declarada en la cadena de caracteres
gets(Texto);
puts(Texto);
}

Programa de ejemplo:
//Las funciones gets y puts no visualizan números, solo cadenas de caracteres
#include<stdio.h>
main()
{
int a,b,c;
char leo[30];
printf("Escribe tu nombre completo \n");

24
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
gets(leo);
printf("Teclea los valores de a y b: ");
scanf ("%d%d", &a, &b);
c =a/b;
puts(leo); //Visualiza la cadena nombre completo
printf("el valor de C = %d", c); //Esto es correcto printf sí visualiza números
//puts("el valor de C = %d"); //Esto es incorrecto puts no visualiza números
}

ESPECIFICACIÓN DEL ANCHO MÍNIMO DE CAMPO


En un especificador de formato, el lenguaje C le permite agregar un entero entre el
signo de porcentaje (%) y la letra.
Nota: el ancho de campo debe ser mayor que la salida

Programa de ejemplo:
#include<stdio.h>
main()
{
int a = 20, b = 12300; Salida en pantalla:
printf(“%d\n”,a); 20
printf(“%d\n”,b); 12300
printf(“%05d\n”,a); 00015
printf(“%15s”, “Hola\n”); hola
}
Programa de ejemplo:
/* Alineación de salida hacia la derecha y hacia la izquierda */
#include<stdio.h>
main()
{
int a, b, c, d, e,f;
a = 1;
b = 12;
c = 123;
d = 1234;
e = 12345;
f = 123456;
printf("%10d%d\n",a,a);
printf("%10d%d\n",b,b);
printf("%10d%d\n",c,c);
printf("%10d%d\n",d,d);
printf("%10d%d\n",e,e);
printf("%10d%d\n",f,f);
}

Programa de ejemplo:
/* Programa que visualiza un tabla */
#include <stdio.h>
main()
{
int c[10], j;
25
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
for(j = 0;j<=9;j++) c[j] = 10;
printf(" %s %13s\n","Elemento", "Valor");
for(j = 0;j<=9;j++)
printf(" %7d %13d\n", j, c[j]);
}

ESPECIFICADOR DE PRECISIÓN
El especificador de precisión consiste en colocar un punto decimal (.) y un entero
justo después del entero .El especificador de precisión se utiliza para determinar el
número de posiciones decimales en float coma flotante.

Programa de ejemplo:
#include <stdio.h>
main()
{
float a = 36.0, b = 7.0, c;
c = a/b;
printf(“ c = %.2f \n", c );
}
/*Salida en pantalla: c = 5.14 sin el especificador de precisión %.2f el resultado
sería: c = 5.142857*/

.
ESPECIFICADORES DE FORMATO O CARACTERES DE CONVERSIÓN DE scanf
Carácter Significado
%c El dato es un carácter
%d El dato es un entero decimal
%e El dato es un valor en coma flotante en la forma exponencial base 10
%f El dato es un valor en coma flotante
%g El dato es un valor en coma flotante
%h El dato es un entero corto
%i El dato es un entero decimal
%o El dato es un entero octal
El dato es una cadena seguida por un espacio en blanco
%s
(el carácter nulo \0 se añade automáticamente al final
%u El dato es un entero sin signo
%x El dato es un entero hexadecimal en minúsculas
%[^\n] El dato es una cadena que puede contener espacios en blanco, etc.

ESPECIFICADORES DE FORMATO O CARACTERES DE CONVERSIÓN DE printf


Carácter Significado
%c El dato se muestra como un carácter
%d El dato se muestra como un entero decimal
%e El dato se muestra como un valor en coma flotante con exponente (min)
%E El dato se muestra como un valor en coma flotante con exponente (may)
%f El dato se muestra como un valor en coma flotante sin exponente
%g El dato se muestra como un valor en coma flotante usando la conversión
de tipo e o f, dependiendo del valor; no se muestran ceros no

26
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
significativos ni el punto decimal si no es significativo
%h El dato se muestra como un entero corto
%i El dato se muestra como un entero decimal
%o El dato se muestra como un entero octal
%s El dato se muestra como una cadena de caracteres
%u El dato se muestra como un entero sin signo
%x El dato es un entero hexadecimal en minúsculas
%X El dato es un entero hexadecimal en mayúsculas
%p El dato es un puntero

Un prefijo puede preceder ciertas conversiones de caracteres en scanf y printf

Prefijo Significado
h Entero corto o entero sin signo corto
l Entero largo, entero largo sin signo o real de doble precisión
L real en doble precisión largo

Como se ve la única diferencia es que en el primer ejemplo se muestra en pantalla


lo que escribimos y en el segundo no.
En vista de que hemos estudiado las principales funciones de entrada y salida. Ya
contamos las bases para diseñar programas sencillos.

.
Programa de ejemplo:
/*Programa que calcula la velocidad de un móvil */
#include<stdio.h>
main() {
float V, d, t;
printf("Introduzca los valores de d y t: ");
scanf("%f%f",&d,&t);
V = d/t;
printf( "La velocidad es = %.2f Km/h", V);
}

Programa de ejemplo:
/* programa que convierte grados C a F */
#include <stdio.h>
main() {
float cels, farh;
farh = 35.0;
cels = 5.0 * ( farh - 32.0 ) / 9.0;
printf(" %.2f Grados Farh Equivalen a %f grados Cels", farh, cels );
}

Programa de ejemplo:
/*Programa que extrae las raíces de una ecuación de este tipo Ax*x+Bx+C=0 */
#include<stdio.h>
#include<math.h>
main() {
float A,B,C,raiz,sol1,sol2;
27
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
printf("\nIntroduzca el termino de la x al cuadrado: ");
scanf("%f",&A);
printf("\nIntroduzca el termino de la x: ");
scanf("%f",&B);
printf("\nIntroduzca el termino independiente: ");
scanf("%f",&C);
raiz=B*B-4*A*C;
sol1=(-B-sqrt(raiz))/(2*A);
sol2=(-B+sqrt(raiz))/(2*A);
printf("\nSolución 1= %f",sol1);
printf("\nSolución 2= %f",sol2);
}

.
UNIDAD 4
ESTRUCTURAS SELECTIVAS Y DE REPETICIÓN
Una sentencia condicional es aquella que verifica el estado de una expresión,
puede ser el valor de una variable o una comparación entre variables, este estado
puede resultar cierto = 1 o falso = 0. Aquí se aplican los operadores relacionales
Este tipo de sentencias permiten variar el flujo del programa mediante
determinadas condiciones ciertas o falsas. Existen varias estructuras diferentes:

SENTENCIA CONDICIONAL if
La sentencia if solo se ejecuta si la condición es cierta = 1. En caso contrario el
programa sigue su curso sin ejecutar la sentencia.
Su formato es:
if (condición) sentencia;

Programa de ejemplo:
//Programa de aplicación de la sentencia condicional if
#include<stdio.h>
main ()
{ int a=30,b=50,c;
if(a>b){
printf("cierto");
}
}

SENTENCIA CONDICIONAL if-else


Esta sentencia tiene dos opciones. Si se cumple la condición se ejecutará la
sentencia1, de otro modo se ejecutará la sentencia2.

28
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
En cualquier caso, el programa continuará a partir de la sentencia2.
Su formato es:
if(condición){
instrucciones (el bloque que se ejecuta si se cumple la condición)
}
else {
instrucciones (el bloque que se ejecuta si no se cumple la condición)
}
Programa de ejemplo:
/* Uso de la sentencia condicional if else */
#include<stdio.h>
main()
{ int p;
printf( "Teclea un número " );
scanf( "%d", &p );
if ( p==50 ){
printf ( "El número que introdujo es cincuenta.\n" );
}
else{
printf ( "El número que introdujo no es cincuenta.\n" );
}
}
.
SENTENCIA CONDICIONAL if-else-if
Con este formato el flujo del programa únicamente entra en una de las condiciones.
Si una de ellas se cumple, se ejecuta la sentencia correspondiente y salta hasta el
final de la estructura para continuar con el programa.
Su formato es:
if (condición){
instrucciones;
}
else if (condición){
instrucciones;
}
.
.
else {
instrucciones;
}

Programa de ejemplo:
//Leer dos números enteros y escribir el mayor de ambos o un mensaje si son
iguales.
#include <stdio.h>
main()
{
int a,b;
printf("Dame dos numeros... ");
scanf("%d%d",&a,&b);
if (a>b)

29
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
printf("El mayor numero es... %d",a);
else if (b>a)
printf("El numero mayor es.... %d",b);
else
printf("Los numeros son iguales");
return 0;
}

.
SENTENCIA CONDICIONAL switch
Esta sentencia solo evalúa expresiones enteras como: tipo char o tipo int nunca,
tipo float y compara el resultado con la constante que aparece en cada case.
En cada case sólo puede escribirse una constante. Switch se suele utilizar en los
menús, de manera que según la opción seleccionada se ejecuten una serie de
sentencias.
Su formato es:
switch ( expresión entera){
case 1:
código a ejecutar si la variable tiene elvalor de la opción 1
break;
case 2:
código a ejecutar si la variable tiene elvalor de la opción 2
break;
.
case n:
código a ejecutar si la variable tiene el valor de la opción n
break;
default:
código que se ejecuta si la variable tiene un valor distinto a los anteriores
}
Cada case puede incluir una o más sentencias sin necesidad de ir entre llaves, ya
que se ejecutan todas hasta que se encuentra la sentencia break. La variable
evaluada solo puede ser declarada en tipo entero o carácter.
default ejecutará las sentencias que incluya, en caso de que la opción escogida no
exista.

30
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
La sentencia switch sirve par elegir una opción entre varias disponibles. Aquí no
tenemos una condición que se debe cumplir sino el valor de una variable,
dependiendo del valor se cumplirá un caso u otro.
Vamos a ver un ejemplo de múltiples casos con if-else y luego con switch.
Como vemos el código con switch es más cómodo de leer.
Programas de ejemplo:
/*Aplicación de la sentencia switch */
#include <stdio.h>
main()
{
int num;
printf( "Introduce un número " );
scanf( "%i", &num );
switch( num ){
case 1: printf( "Es un 1\n" );
break;
case 2:printf( "Es un 2\n" );
break;
case 3:printf( "Es un 3\n" );
break;
default:
printf( "No es ni 1, ni 2, ni 3\n" );
}
}
SENTENCIAS DE CONTROL (Bucles) for, while, do wile, break, continue y goto
Los bucles son sentencias que permiten ejecutar partes del código de forma
repetida, mientras se cumpla una condición.
Esta condición puede ser simple o compuesta de otras condiciones unidas por
operadores lógicos. Nota: break y continue se usan com auxiliares de for, while, do
wile y switch.
Los bucles nos ofrecen la solución cuando se quiera repetir una tarea un número
determinado de veces. Suponiendo que
se quiera escribir 100 veces el nombre /*Ahora con if-eles-if */
Juan. Con lo que se ha aprendido hasta #include <stdio.h>
ahora se haría lo siguiente: main()
Ejemplo: {
#include <stdio.h> int num;
main() printf( "Hola mundo\n " );
{ printf( "Introduce un número: " );
printf( "Juan\n"); scanf( "%i", &num );
printf( "Juan\n"); if ( num==1 )
printf( "Juan\n"); printf ( "Es un 1\n" );
………. else if ( num==2 )
(y así hasta 100 veces) printf ( "Es un 2\n" );
} else if ( num==3 )
¡que lata! Y si se quiere repetirlo más printf ( "Es un 3\n" );
veces quedaría un programa muy else
largo. printf ( "No es ni 1, ni 2, ni 3\n" );
De otra forma si se usa un bucle for el }
programa quedaría así:

31
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
Programa de ejemplo:
#include <stdio.h>
main()
{
int i;
for ( i=0 ; i<50 ; i++ ) {
printf( "Juan\n" );
}
}

SENTENCIA DE CONTROL for


Esta sentencia de control o ciclo o bucle permite que un conjunto de instrucciones
sea ejecutado hasta que se alcance una cierta condición.
Su formato es:
for (inicio; condición; incremento){
instrucciones
……………
}

El inicio indica una variable (variable de control) que condiciona la repetición del
bucle. Si hay más, van separadas por comas.
La condición es una expresión relacional que determina cuando finaliza el ciclo.
El incremento define como cambia la variable de control cada vez que se repite el
ciclo. También se puede poner más de una condición. Los elementos de cada
sección se separan por comas. Cada sección se separa por punto y coma.
Como se ve en el ejemplo, si se tiene más de una variable en la sección de
inicialización y en la de incrementos estas deben ir separadas por comas.
Por ejemplo: for (a=1,b=100;a!=b;a++,b- -){
Programa de ejemplo:
#include<stdio.h>//Programa de ejemplo de la sentencia de control for
main()
{
int cont;
for(cont=1;cont<=100;++cont){
printf(“%d\t”,cont);
}
}

SENTENCIA DE CONTROL while


Con esta sentencia se controla la condición antes de entrar en el bucle. Si ésta no
se cumple, el programa no se ejecutará.
Naturalmente, si en el interior del bucle hay más de una sentencia, éstas deberán ir
entre llaves para que se ejecuten como un bloque.

Su formato es:
Tipo de dato variable = valor inicial
while(condicion) {
instrucciones;
incremento;
32
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
}
La condición puede ser cualquier expresión, y cualquier valor distinto de cero. El
ciclo itera mientras la condición es cierta. Cuando la condición se hace falsa, el
control del programa pasa a la línea siguiente al código del ciclo.

Programa de ejemplo:
/*Programa que escribe los números del 1 al 10 */
#include <stdio.h>
main()
{
int numero=1;
while(numero<=10) {
printf("%d\n",numero);
numero++;
}
}

.
SENTENCIA DE CONTROL do - while
Con esta sentencia se controla la condición al final del bucle. Si ésta se cumple, el
programa vuelve a ejecutar las sentencias del bucle.
La única diferencia entre las sentencias while y do-while es que con la segunda el
cuerpo del bucle se ejecutará por lo menos una vez.

Su formato es:
int inicio;
do{
instrucciones
.
.
incremento;
}while (condición);

Programa de ejemplo:
/*La suma de números pares*/
#include<stdio.h>
main()
{ int numero=2,suma=0;
33
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
do{
suma+=numero;
numero+=2;
}while(numero<=100);
printf("La suma es%d\n", suma);
}

BUCLES ANIDADOS
Los bucles se pueden anidar uno entre otro. Loa bucles internos y externos no
necesitan ser generados por el mismo tipo de estructura de control. Pero es
importante que un bucle se encuentre incluido dentro del otro. Cada bucle debe ser
controlado por un índice diferente.

Programa de ejemplo:
/*Uso de bucles anidados for*/
#include<stdio.h>
main()
{ int i,j,x,y;
printf("introduzca numeros enteros del 1 al 20 ");
scanf("%d%d",&x,&y);
for(i=1;i<=x;i++) {//Líneas
for(j=1;j<=y;j++)//Columnas
printf(" @ ");
printf("\n");
}
}

.
SENTENCIA break
Esta sentencia se utiliza para terminar la ejecución de un bucle o salir de una
sentencia switch.
Programa de ejemplo:
#include<stdio.h> /*Interrupcion de un ciclo infinito utilizando la instrucción for */
main()
{
int c;
printf("Introduce un caracter:\n(puslse x para salir)\n");
for(;;) {
c=getchar();
if(c=='x') break;
}
printf("El ciclo infinito ha sido interumpido. ¡Hasta pronto!\n");
}
SENTENCIA continue
Se utiliza dentro de un bucle. Cuando el programa llega a una sentencia continue no
ejecuta las líneas de código que hay a continuación y salta a la siguiente iteración
del bucle.
Programa de ejemplo

34
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
/*Programa que escribe del 1 al l 100 menos el 25 y el 50 */
#include <stdio.h>
main()
{ Int numero;
For(numero=1;numero<=100;++numero){
If(numero==25||numero==50)
Continue;
Printf(“%d\t”,numero);
}
}
SENTENCIA goto
permite al programa saltar hacia un punto identificado con una etiqueta, pero el
buen programador debe prescindir de su utilización. Es una sentencia muy mal
vista en la programación.
Su formato es: goto etiqueta
Programa de ejemplo:
/*Programa que calcula la velocidad de un móvil aplicando la sentencia goto*/
#include<stdio.h>
main()
{ float V, d, t;
int ref;
ref: printf("Introduzca los valores de d y t: ");
scanf("%f%f",&d,&t);
V = d/t;
printf( "V = %f Km/h\n", V);
printf("para regresar pulse el numero indicado: ");
scanf("%d",& ref);
if(ref ==5)
goto ref;
printf("El resultado del Area es: %.2f m.c.", A);
getch();
}

//programa que visualiza las variables globales y locales


#include<stdio.h>
int y=20; // Declaración global
main ()
{
{ int x = 5;// Declaración local Inicio del bloque
printf("Practica13\n");
printf ("Nombre del alumno: \n");
35
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
printf ("No. De control: \n");
printf ("Bloque 1\n
printf ("x = %d, y = %d\n", x, y); // Visualiza x = 5, y = 20
} //Fin del bloque
{ //Inicio del bloque
printf ("Bloque 2\n");
int x=10; // Esta x es local al bloque
printf ("x = %d, y = %d\n", x, y); // Visualiza x = 10, y = 20
} // Fin del bloque
{ // Inicio del bloque
printf ("Bloque 3\n");
int x = 30;// x variable local
printf ("x = %d, y = %d\n", x, y);/* Visualiza x = 30, y = 20 */
}// Fin del bloque
return 0;
}// El valor de y no cambia porque es declaración global

//Programa de aplicacion de los tipos de datos char, int, float y double


#include<stdio.h>
main()
{ char caracter ='@';
int a = 2000;
float x = 5.342546;
double z = 3.456732901203;
printf("Practica 14 \n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf("El caracter %c en ASCII representa el numero decimal %d\n", caracter,
caracter);
printf("Elvalor de a es: %d\n",a);
printf("Elvalor de x es: %f\n",x);
printf("Elvalor de z es: %.12f",z);
}

/* Uso del operador sizeof para determinar el tamaño de una variable */


#include <stdio.h>
main () {
char c;
int n, d;
n= sizeof(c);
printf("Practica 15 \n");
printf ("Nombre: \n");

36
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
printf ("No. de control:\n ");
printf(" el número de bytes de la variable c es %d\n", n);
n= sizeof(d);
printf(" el número de bytes de la variable d es %d\n", n);
n= sizeof(int);
printf(" el número de bytes que ocupa el tipo entero es %d\n", n);
printf(" el número de bytes que ocupa el tipo double es %d",sizeof(double));
}

/* Programa ejemplo de los operadores aritméticos */


#include <stdio.h>
#include <math.h>
main() {
int a = 10,b = 3,c,d,e,f,g; float x =5,y = 3, potencia;
c = a+b; //Suma
d = a-b; //Resta
e = a*b; //Multiplicación
f = a/b; //División
g = a%b; //Residuo de una división o módulo
potencia = pow(x,y);
printf("Practica 16 \n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf ( " %d + %d = %d\n",a,b, c);
printf ( " %d - %d = %d\n",a,b, d);
printf ( " %d * %d = %d\n",a,b, e);
printf ( " %d / %d = %d\n",a,b, f);
printf ( " El residuo de la division es:= %d\n",g);
printf ( " 5 elevado a la 3 es igual a: %.2f",potencia); //Aplicación de la función pow
}

/* Programa de aplicación del operador resto */


#include <stdio.h>
main()
{
int a = 100,b = 60,c;
printf("Practica 17\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
c = a%b; //Residuo de una division o módulo
printf ( " El residuo de la division es: %d\n", c);
}
/* Programa que visualiza números pares aplicando el operador resto */
#include <stdio.h>
main()
{ int a;
printf("Practica 18\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
for(a = 0; a<=100; ++a){

37
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
if(a%2==0)//isualiza numeros pares
printf("%d \t", a);
}
}

//programa que visualiza números impares aplicando el operador resto


#include <stdio.h>
main()
{ int a;
printf("Practica 19 \n");
printf ("Nombre: \n");
printf ("No. de control: \n");
for(a = 0; a<=100; ++a){
if(a%2==1) //visualizar números impares
printf("%d \t", a);
}
}

/* Aplicación del operador monario (++) en un contador del 1 a 50 */


#include <stdio.h>
main()
{
int p;
printf("Practica 20\n");
printf ("Nombre:\n");
printf ("No. de control:\n");
for(p=1; p<=50;++p){
printf ( "%d\t", p );
}
}

/* Aplicación del operador monario (--) en un contador inverso de 50 a 1 */


#include <stdio.h>
main()
{ int p;
printf("Practica 21\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
for(p=50; p>=1;--p){
printf ( "%d\t", p );
}
}
/* Programa que determina el número de caracteres de un texto */
#include<stdio.h>//Operador sizeof
main()
{ char texto[ ] = "Lopez Torres Juan Manuel";//aquí escriban su nombre completo
printf("Practica 22\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf("Mi nombre completo tiene %d caracteres.\n", sizeof (texto));
}
38
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
/* Programa de aplicación de operadores relacionales */
#include <stdio.h>
main()
{ int a = 50, b = 20;
printf("Practica 23\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf( "a>b da como resultado %d\n", a>b );
printf( "b<a da como resultado %d\n", b<a );
printf("a==b da como resultado %d\n",a==b);
printf("a>=b da como resultado %d\n",a>=b);
printf("a<=b da como resultado %d\n",a<=b);
printf("a!=b da como resultado %d\n",a !=b);
return 0;
}

//Aplicación de los operadores de asignación en un programa


#include <stdio.h>
main()
{
int x, y;
x = 8;
y = 6;
x += 2;
printf("Practica 24\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf( "x = %d\n", x );
x += y; /* esto equivale a x = x + y */
printf( "x = %d\n", x );
x -= y; /* esto equivale a x = x - y */
printf( "x = %d\n", x );
x *= y; /* esto equivale a x = x * y */
printf( "x = %d\n", x );
x /= y; /* esto equivale a x = x / y */
printf( "x = %d\n", x );
x %= y; /* esto equivale a x = x % y */
printf( "x = %d\n", x );
return 0;
}
/* Programa que guarda datos en memoria y los visualiza en pantalla aplicando
Las funciones de E/S scanf(), printf(), gets() y puts()*/
#include<stdio.h>
main()
{
char f ;
int a;
short e;
39
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
long q;
unsigned t;
float x;
double z;
char leo[100];
printf("Practica 25\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf("*********************************** \n");
printf("Escribe tu nombre completo \n");
gets(leo);
printf("Teclea los valores de f, a, e, q, t, x, z:\n");
scanf ("%d %d %hd %ld %u %f %lf ", &f, &a, &e, &q, &t, &x, &z);
/*Aquí se escriben las formulas*/
printf("%c\n %d\n %hd\n % ld\n %u\n %f\n %lf\n", f, a, e, q, t, x, z);
puts(leo); // ó printf("%s", leo);
return 0;
}

//Las funciones gets y puts no visualizan números, solo cadenas de caracteres


#include<stdio.h>
main()
{ int a,b,c;
char leo[30];
printf("Practica 26\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf("Escribe tu nombre completo: ");
gets(leo);
printf("Teclea los valores de a y b: ");
scanf ("%d%d", &a, &b);
c =a/b;
puts(leo); //Visualiza la cadena nombre completo
printf("el valor de C = %d", c); //Esto es correcto printf sí visualiza numeros
//puts("el valor de C = %d"); //Esto es incorrecto puts no visualiza números
}
/* Alineación de salida hacia la derecha y hacia la izquierda */
#include<stdio.h> // Ancho mínimo de campo
main()
{
int a, b, c, d, e,f;
a = 1;
b = 12;
c = 123;
d = 1234;
e = 12345;

40
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
f = 123456;
printf("Practica 27\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf("%10d%d\n",a,a);
printf("%10d%d\n",b,b);
printf("%10d%d\n",c,c);
printf("%10d%d\n",d,d);
printf("%10d%d\n",e,e);
printf("%10d%d\n",f,f);
}

/* Programa que visualiza un tabla */


#include <stdio.h>// Ancho minimo de campo
main()
{
int c[10], j;
printf("Practica 28\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
for(j = 0;j<=9;j++) c[j] = 10;
printf(" %s %13s\n", "Elemento", "Valor");
for(j = 0;j<=9;j++)
printf(" %7d %13d\n", j, c[j]);
}

/*Programa que calcula la velocidad de un móvil */


#include<stdio.h>//Especificador de precisión
main()
{
float V, d, t; //Declaración de variables
printf("Practica 29\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf("Introduzca los valores de d y t: ");
scanf("%f%f",&d,&t);
V = d/t;
printf( "V = %.2f Km/h", V); //%.2f =.00 de otro modo %f = .000000
} // %.2f dos cifras después del punto decimal %f seis cifras después del punto dec.

// Programa que calcula el Promedio de tres notas


#include<stdio.h>
main()
{
char nombre [20];
float nota1,nota2,nota3,Promedio;
printf("Practica 30\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf("Por favor, Escribe tu nombre: ");

41
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
gets(nombre);
printf("Por favor ,introduce la primera nota: ");
scanf("%f",&nota1);
printf("Por favor, introduce la segunda nota: ");
scanf("%f",&nota2);
printf("Por favor, introduce la tercera nota: ");
scanf("%f",&nota3);
Promedio = (nota1+nota2+nota3)/3;
printf("n\nNombre: %s\n\n", nombre);
printf("Nota 1: %-5.1f\n",nota1);
printf("Nota 2: %-5.1f\n",nota2);
printf("Nota 3: %-5.1f\n\n",nota3);
printf("Tu Promedio es: %-5.1f\n\n",Promedio);
}

#include<stdio.h> /*Presentación de un trabajo*/


main() {
printf("Practica 31\n");
printf(“Nombre del alumno: \n”);
printf(“No. de control: \n”);
printf(“Escuela: \n”);
printf(“Carrera: \n”);
printf(“Materia: \n”);
printf(“Hora: \n”);
printf(“Maestro: \n”);
printf(“Lugar y fecha: \n”);
}/* programa que convierte grados C a F */

#include <stdio.h>
main()
{
float cels, farh;
farh = 35.0;
printf("Practica 32\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
cels = 5.0 * ( farh - 32.0 ) / 9.0;
printf(" %.2f Grados Farh Equivalen a %f grados Cels", farh, cels );
}
/*Programa que extrae las raíces de una ecuación de este tipo Ax*x+Bx+C=0 */
#include<stdio.h>
#include<math.h>
main()
{
float A,B,C,raiz,sol1,sol2;
printf("Practica 33\n");
printf ("Nombre: \n");
printf ("No. de control: \n");
printf("\nIntroduzca el termino de la x al cuadrado: ");

42
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
scanf("%f",&A);
printf("\nIntroduzca el termino de la x: ");
scanf("%f",&B);
printf("\nIntroduzca el termino independiente: ");
scanf("%f",&C);
raiz=B*B-4*A*C;
sol1=(-B-sqrt(raiz))/(2*A);
sol2=(-B+sqrt(raiz))/(2*A);
printf("\nSolución 1= %f",sol1);
printf("\nSolución 2= %f",sol2);
}

// programa que dice el tipo de ángulo utilizando if


# include <stdio.h>
main()
{
float Angulo;
printf("Practica 34\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
// Instrucciones ejecutables
printf("Teclee el valor de angulo: ");

43
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
scanf("%f",&Angulo);
if (Angulo < 90)
printf("El angulo es agudo");
if (Angulo == 90)
printf("El angulo es recto ");
if (Angulo>90 && Angulo<180)
printf("El angulo es obtuso ");
if (Angulo == 180)
printf("El angulo es llano ");
if (Angulo>180 && Angulo<360)
printf("El angulo es concavo ");
}// Fin del programa

/* Programa que simula una clave de acceso if else*/


#include <stdio.h>
main()
{
int usuario,clave=1827;
printf("Practica 35\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf("Introduce tu clave: ");
scanf("%d",&usuario);
if(usuario==clave){
printf("Acceso permitido");
}
else
{
printf("Acceso denegado");
}
return 0;
}

/*Si un alumno tiene un promedio >=90 se le hará un 20% de descuento en la


colegiatura, si tiene un promedio >= 80 o <90 el descuento será del 10%, si su
promedio <80 pero >=7 0el descuento será del 5% y si promedia menos de 70 no
tendrá descuento.*/
#include <stdio.h>
int main ()
{
float prom = 0,desc = 0,coleg = 5000,tot = 0;
printf("Practica 36\n");
printf ("Nombre del alumno: \n");

44
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
printf ("No. De control: \n");
printf("\n\tcual fue tu promedio?: ");
scanf("%f", &prom);
if(prom>=90)
{desc = 0.2;
}
else if(prom>=80&&prom<90) {desc = 0.1;
}
else if(prom>=70&&prom<80){
desc = 0.05;
}
else
{
desc = 0;
}
tot = coleg-coleg*desc;
printf("\n\tTu colegiatura sera de: %.2f",tot);
return 0;
}

/* Escribe bebé, niño o adulto if else if */


#include <stdio.h>
main()
{
int edad;
printf("Practica 37\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf("Introduce tu edad: ");
scanf("%d",&edad);
if (edad<1)
printf("Lo siento, te has equivocado.");
else if (edad<3) printf("Eres un bebé");
else if (edad<13) printf("Eres un niño");
else if (edad<18) printf("Eres un adolescente");
else if (edad<13) printf("Eres unjoven");
else printf("Eres adulto");
return 0;
}

/* Programa que pasa de pesos a euros o de euros a pesos switch*/


#include<stdio.h>
main()
{ float cantidad,conversion;
int opcion;
printf("Practica 38\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf("\nIntroduzca la cantidad: ");
scanf("%f",&cantidad);

45
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
printf("\n1-Pesos a Euros\n2-Euros a pesos\n");
scanf("%d",&opcion);
switch(opcion)
{
case 1: conversion=cantidad/24.99;
printf("\n%.2f Pesos son %.2f Euros",cantidad,conversion);
break;
case 2:
conversion=cantidad*24.99;
printf("\n%.2f Euros son %.2f Pesos",cantidad,conversion);
break;
default:
printf("\nOpcion incorrecta");
}
}

/* Uso de la sentencia for programa que visualiza la tabla de multiplicar*/


#include <stdio.h>
main()
{
int num,x,result;
printf("Practica 39\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf("Introduce un número: "); scanf("%d",&num);
for (x=0;x<=10;x++){
result=num*x;
printf("\n%d por %d = %d\n",num,x,result);
}
}

/* Programa que visualiza una tabla de multiplicar utilizando la sentencia while. */


#include <stdio.h>
main()
{
int a,b;
printf("Practica 40\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf ("Introduce el número: ");
scanf("%d",&a);

46
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
b=1;
while (b<=10) {
printf("%d * %d = %d\n",a,b,a*b);
b++;
}
}

// Programa que calcula la media de n números y se interrumpe cuando se oprime 0


#include<stdio.h>//Sentencia while
main()
{
int i = 0;
float x, media = 0;
printf("Practica 41\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf("x(%d) ",i);
scanf("%f",&x);
while(x!=0) {
media+=x;
++i;
printf("x(%d) ", i);
scanf("%f", &x);
}
if(i!=0)
printf("La media es: %f\n\n",media/i);
else
printf("No hay media\n\n");
}

/*programa que realiza varias operaciones sentencia do - while*/


#include<stdio.h>
#include<math.h>
main()
{ float cont=1,suma=0;
printf("Practica 42\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
do {
printf("\n%.2f\t %.2f\t %.2f\t %.2f\t",cont,suma, sqrt(cont), sqrt(suma));

47
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
++cont; suma+=cont;
}while(cont<=10);
}

/*Uso de bucles anidados for*/


#include<stdio.h>
main()
{ int i,j,x,y;
printf("Practica 43\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf("introduzca numeros enteros del 1 al 20 ");
scanf("%d%d",&x,&y);
for(i=1;i<=y;i++) {
for(j=1;j<=x;j++)
printf(" @ ");
printf("\n");
}
}

/*Uso bucles anidados, programa que dibuja un triangulo de asteriscos */


#include<stdio.h>//Sentencia for
main()
{ int cont,lineas,n;
printf("Practica 44\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf("introduzca el numero de líneas ");
scanf("%d",&n);
for(lineas=1;lineas<=n;lineas++) {
for(cont=1;cont<=n-lineas;cont++)
putchar(' ');
for(cont=1;cont<=2*lineas-1;cont++)
putchar('*');
printf("\n");
}
}

/* Calcular la media de varias listas de números */


#include <stdio.h>
main( )
{
int n, contador, bucles,cbucles;
float x,media,suma;
printf("Practica 45\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
/* Leer el número de listas*/

48
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
printf("Cuantas listas? ");
scanf("%d",&bucles);
/* bucle exterior procesa cada lista de números */
for(cbucles=1; cbucles<=bucles; ++cbucles) {
/*inicializar y leer el valor de n*/
suma =0;
printf("\n lista numero %d\n cuantos numeros? ", cbucles);
scanf("%d",&n); /*leer los números*/
for(contador =1; contador<=n;++contador) {
printf("x=");
scanf("%f",&x);
suma+=x;
} /*fin del bucle interno */
/*calcular la media y escribir la respuesta*/
media =suma/n;
printf("\n La media se: %f\n",media);
} /* fin del bucle externo */
return 0;
}

/*Calcular las raíces de una ecuación algebraica utilizando iteraciones */


#include<stdio.h>//Bucles anidados
#include<math.h>
#define CIERTO 1
#define FALSO 0
main()
{
int indicador =CIERTO,cont=0;
float valor,raiz,test,error;
printf("Practica 46\n");

49
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
/*Leer parametros de entrada*/
printf("Valor inicial: ");
scanf("%f",&valor);
/*Comienza bucle principal*/
while(indicador) {
++cont;
if(cont==50) indicador = FALSO;
test=10 -3*valor*valor;
if(test>0) {
/*Inicializa otra iteración*/
raiz=exp(0.2*log(test));
printf("\nIteracion numero: %2d", cont);
printf(" x=%7.5f",raiz);
error=fabs(raiz-valor);
if(error>0.00001) valor =raiz;/*Repetir el calculo*/
else {
indicador=FALSO;
printf("\n\nRaiz=%7.5f",raiz);
printf("No. de iteraciones = %2d",cont);
}
}
else {
/*Mensaje de error*/
indicador=FALSO;
printf("\nNumeros fuera de rango - intenta con otro valor inicial");
}
}
if((cont==50)&&(error>0.00001)) /*Otro mensaje de error*/
printf("\n\nConvergencia no obtenida tras 50 iteraciones");
return 0;
}

/*Programa que utiliza la palabra clave break*/


#include<stdio.h>
main()
{
int x;
printf("Practica 47\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
for(x=1;x<=10;x++){
if(x==5)

50
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
break;
printf("%d\n", x);
}
printf("la corrida se frena cuando x==%d\n",x);
}

//Programa que utiliza la palabra clave continue


#include <stdio.h>
main()
{
int numero;
printf("Practica 48\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
for(numero=1;numero<=100;++numero){
if(numero==25||numero==50)
continue;
printf(“%d\t”,numero);
}
}

/*Programa que calcula la velocidad de un móvil aplicando la sentencia goto*/


#include<stdio.h>
main()
{
float V, d, t;
int ref;
printf("Practica 49\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
ref: printf("Introduzca los valores de d y t: ");
scanf("%f%f",&d,&t);
V = d/t;
printf( "V = %f Km/h\n", V);
printf("para regresar pulse el numero indicado: ");
scanf("%d",& ref);
if(ref ==5)
goto ref;
}
Aquí terminan las prácticas.
Requisitos de las prácticas.

INSTITUTO TECNOLOGICO DE CIUDAD MADERO


MATERIA: ALGORITMOS Y LENGUAJES DE PROGRAMACION
TÍTULO: PRÁCTICAS DE PROGRAMACIÓN DE LAS UNIDADES 3 y 4
HORA:
ALUMNO:
NUMERO DE CONTROL:
MAESTRO: RIVERA HERNANDEZ JORGE LUIS
CARRERA: INGENIERÍA INDUSTRIAL

51
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09
FECHA:

Siguiente página las prácticas.


Ejemplo:
//Progama de aplicación de la directiva #include.
#include<stdio.h>
#include<math.h>
#include<conio.h>
main()
{
float x, y,s,t;
printf("Practica11\n");
printf ("Nombre del alumno: \n");
printf ("No. De control: \n");
printf("x = "); /*archivo #include<stdio.h> */
scanf("%f",&x); //archivo#include<stdio.h>
printf("y = ");
scanf("%f",&y); //archivo#include<stdio.h> */
s = pow(x*y,3); //archivo #include<math.h>
t= sqrt(x); // archivo #include<math.h>
printf("s = %f\nt = %f",s,t);
getch(); //archivo #include<conio.h>
return 0;
}

SALIDA:

Y así sucesivamente con las siguientes prácticas.

52
APUNTES DE PROGRAMACIÓN EN C AUTOR: ING. JORGE LUIS RIVERA HERNÁNDEZ 09

You might also like