Documentos de Académico
Documentos de Profesional
Documentos de Cultura
POR:
TEC. COMP:
COMP: VICTOR MANUEL TEJEDA LOPEZ
ESTUDIANTE DE LA CARRERA:
ING. EN SISTEMAS COMPUTACIONALES
EN EL
INSTITUTO TECNOLOGICO DE NUEVO
LAREDO
0
Tec.Victor Manuel Tejeda Lopez
Pág.:
1
Tec.Victor Manuel Tejeda López
Comentarios de autor:
Solo puedo decir que espero que sea de gran utilidad este Manual para
aquellos que empiezan y desean aprender el lenguaje de programación
C/C++, este Manual es de nivel principiante. El aprender a programar C
depende del esfuerzo y de las ganas que uno le eche para aprender.
Este Manuel no asegura que aprenda o se experto programador en C.
Solo trato de mostrarles el comienzo y darles la chispa para que
adquieran conocimientos de lenguaje C.
Como ya se dije todo depende de que tanto esfuerzo que uno le dedique
y de las ganas que uno le ponga.
tejeda_siete@hotmail.com
2
Tec.Victor Manuel Tejeda Lopez
1.-definir su programa
2.-definir directivas del procesador Declaración de
{ {Variables globales}
3.-definiciones de declaraciones globales variables.
4.-crear main ()
5.-crear el cuerpo del programa
6.-crear funciones definidas por usuario
Programa principal
7.-compilar, enlazar, ejecutar y
(subrutinas)
Comprobar su programa
8.-utilizar comentarios
Estructura Rutina 1
General
De un programa
Rutina 2
.
.
.
Rutina n
O bien:
Encabezados #include<conio.h>
#include<stdio.h>
void f1(void);
declaración de variables int a=1,b=2; {variables globales}
void main(void)
{
clrscr();
f1();
Programa principal printf(" = %d",a+b);
getch();
return;
}
void f1(void)
{
rutina printf("resultado");
return; }
3
Tec.Victor Manuel Tejeda Lopez
Tipos de datos:
Palabras reservadas
Prioridad y asociatividad.
Prioridad (mayor a menor) asociatividad
+, - (unitario) Izquierda-derecha
* , /, % Izquierda-derecha
4
Tec.Victor Manuel Tejeda Lopez
Códigos de formato:
Operadores relacionales.
Operadores lógicos
5
Tec.Victor Manuel Tejeda Lopez
Códigos de escape:
Código de Significado
escape
‘\n’ Nueva linea
‘\r’ Retorno de carro
‘\t’ Tabulacion
‘\v’ Tabulacion vertical
‘\a’ Alerta (pitido sonoro)
‘\b’ Retroceso de espacio
‘\f’ Avance de pagina
‘\\’ Barra inclinada
‘\’’ Comilla simple
‘\”’ Comilla doble
‘\?’ Signo de interrogación
‘\000’ Numero octal
‘\xhh’ Numero hexadecimal
Operadores de asignación
Encabezados
p/ graficos graphics.h
6
Tec.Victor Manuel Tejeda Lopez
Creación de un programa
#include<conio.h>
#include<stdio.h>
Enseguida el programa
int main ()
{
clrscr();
printf(“Mi primer programa”);
getch();
return 0;
}
/* comentario */
// comentario
7
Tec.Victor Manuel Tejeda Lopez
scanf(“%código de formato”,&declaración);
cin>>declaración;
gets(declaración)…..esta se usa para capturar una cadena de caracteres.
printf(“ “);
puts(“ ”);
cout<<” “;
#include<conio.h>
#include<stdio.h>
void main(void)
{
clrscr();
int num;
printf(“Teclee un numero entero: ”);
scanf(“%d”,&num);
printf(“\nEl numero tecleado es el: %d”,num);
getch();
return;
}
Con este ejemplo vemos que es facil capturar una variable de tipo entero,
igualmente se puede hacer con variables de tipo carácter y de otro tipo.
Ejercicios:
*Declara una variable cualquiera de tipo entero y una variable de tipo char e
imprímelo en la pantalla que quede en la misma línea de esta forma:
Letra= a numero= 1
8
Tec.Victor Manuel Tejeda Lopez
cout<<2+1; ó r=2+1;
cout<<r;
Debes declarar la variable que quieres sacarle exponente o bien hacerlo dentro de
una operación cualquiera.
Otras operaciones:
9
Tec.Victor Manuel Tejeda Lopez
Ejemplos:
*Programa que calcula el área de un triangulo:
#include<conio.h>
#include<stdio.h>
void main(void)
{
clrscr();
int base,altura;
printf("Dame la base: ");
scanf("%d",&base);
printf("Dame la altura: ");
scanf("%d",&altura);
printf("El area del rectangulo es: %d",base*altura);
getch();
return;
}
//Realiza este mismo programa utilizando el cout<<; y el cin>>;
#include<conio.h>
#include<iostream.h>
#include<math.h>
void main(void)
{
clrscr();
float radio,area;
cout<<"Dame el radio del circulo: ";
cin>>radio;
area=3.1416*pow(radio,2);
cout<<"El area del rectangulo es: "<<area;
getch();
return;
}
10
Tec.Victor Manuel Tejeda Lopez
c) Hacer un programa que calcule la expresión con los siguientes datos, muestre
el resultado con un formato adecuado en la pantalla.
A=5, b=0.3, c=-3.1, x=1.018, z=0.8514
2( a/b )x-1/(b-3c)1/z
Respuestas:
b)=300.
c)=0.147676
d)=100°f=37.777
11
Tec.Victor Manuel Tejeda Lopez
Sentencia “if-else. “
Expresión Falsa
Verdadera
Acción
Acción2
if(Expresión) Acción.
Ejemplos:
#include<conio.h>
#include<stdio.h>
void main(void)
{
clrscr();
int edad;
printf("Dame la edad: ");
scanf("%d",&edad);
if(edad>=18)
printf("Eres mayor de edad");
else
printf("Eres menor de edad");
getch();
return;
}
12
Tec.Victor Manuel Tejeda Lopez
#include<conio.h>
#include<stdio.h>
void main(void)
{
clrscr();
int edad;
printf("Dame la edad: ");
scanf("%d",&edad);
if(edad>=18)
{
printf("Eres mayor de edad");
puts("\nEres una persona adulta");
}
else
{
printf("Eres menor de edad");
puts("\nTodavia eres un niño");
}
getch();
return;
}
13
Tec.Victor Manuel Tejeda Lopez
Ejemplo:
#include<conio.h>
#include<stdio.h>
void main(void)
{
clrscr();
int num;
printf("Dame un numero: ");
scanf("%d",&num);
if(num>0)
printf("El numero es positivo");
else
if(num<0)
printf("El numero es negativo");
else
printf("El numero es cero");
getch();
return;
}
if (condicion 1)
if (condicion 2)
estatuto;
else //Este else pertenece al if de la condicion 2, pues se asocia al if al if más cercano
estatuto;
if (condicion 1)
{
if (condicion 2);
estatuto;
}
else // Con el uso de las llaves cerramos el if anidado y el else.
estatuto; //pertenécela primer if
14
Tec.Victor Manuel Tejeda Lopez
Estatuto Switch.
La sentencia switch es una sentencia C que se utiliza para seleccionar una entre
multiples alternativas. La sentencia switch es epecialmente util cuando la
selección se basa en el valor de una variable simple o de una expresión simple
denominada expresión de control o selector. El valor de esta expresión puede ser
de tipo int o char. Pero no de tipo float ni double.
Sintaxis:
Ejemplo 1:
switch ( opcion )
{
case 0: puts(“Cero:”); break;
case 1: puts(“Uno:”); break;
case 2: puts(“Dos:”); break;
default: puts (“Fuera de rango”);
}
Ejemplo 2:
switch ( opcion )
{
case 0:
case 1:
case 2:
printf(“Menor de 3:”); break;
case 3:
printf(“Igual a 3:”); break
default: printf(“Mayor que 3:”);
}
15
Tec.Victor Manuel Tejeda Lopez
#include<conio.h>
#include<iostream.h>
int main()
{
clrscr();
char car;
cout<<"Teclee un caracter: ";
cin>>car;
if ((car == 'a') || (car == 'A'))
printf("%c es una vocal\n",car);
else
if ((car == 'e') || (car == 'E'))
printf("%c es una vocal\n",car);
else
if ((car == 'i') || (car == 'I'))
printf("%c es una vocal\n",car);
else
if ((car == 'o') || (car == 'O'))
printf("%c es una vocal\n",car);
else
if ((car == 'u') || (car == 'U'))
printf("%c es una vocal\n",car);
else
printf("%c no es una vocal\n",car);
getch();
return 0;
}
#include<conio.h>
#include<iostream.h>
int main()
{
clrscr();
16
Tec.Victor Manuel Tejeda Lopez
char car;
cout<<"Teclee un caracter: ";
cin>>car;
switch (car)
{
case 'a': case 'A':
case 'e': case 'E':
case 'i': case 'I':
case 'o': case 'O':
case 'u': case 'U':
printf("%c es una vocal",car);
break;
default:
printf("%c no es una vocal",car);
}
getch();
return 0;
}
Ejercicios:
* Dada una nota de un examen mediante un código escribir el literal que le corresponde a
la nota. A-Excelente B- Muy bien C- Bien cualquier otro (“Suspendido”).
*Programa que pide un numero de mes y escribe la cantidad de días que tiene.
*Dada un fecha con numeros, muestra la fecha poniendo el mes con letras.
17
Tec.Victor Manuel Tejeda Lopez
Bucles. Ciclos
C soporta tres tipos de estructuras de control: los bucles while, for y do-while.
Estas estructuras de control o sentencias repetitivas controlan el número de veces
que una sentencia o listas de sentencias se ejecutan.
Estatuto While:
Sintaxis:
while ( condición )
estatuto;
while ( condición )
{
Bloque de estatutos;
}
Condición Falsa.
_bucle
Verdadera.
Sentencia
Incremento
18
Tec.Victor Manuel Tejeda Lopez
#include<conio.h>
#include<stdio.h>
int main()
{
clrscr();
int est,i=1;
float suma=0.0;
printf("Dame las calificaciones de los 10 estudiantes:\n");
while(i<=10)
{
printf("\nDame la calificacion del estudiante %d: ",i);
scanf("%d",&est);
suma=est+suma;
i++;
}
printf("\n\nEl promedio de los estudiantes es de: %.2f",suma/10.0);
getch();
return 0;
}
*Programa que muestra la serie de números que uno le asigne desde el teclado.
#include<conio.h>
#include<stdio.h>
int main()
{
int contador,i=0;
printf("Dame un numero: "); scanf("%d",&contador);
while ( i<=contador)
{
printf("\n%d",i);
i++;
}
getch();
return 0;
}
19
Tec.Victor Manuel Tejeda Lopez
Estatuto do…while
Sintaxis:
do
estatuto;
while ( condición );
do
{
Bloque de estatutos;
}while ( condición );
Sentencia
Incremento
Verdadera Expresión
Falso.
20
Tec.Victor Manuel Tejeda Lopez
**Los mismos programas del estatuto anterior pero ahora con el estatuto
do-while.
#include<conio.h>
#include<stdio.h>
int main()
{
clrscr();
int est,i=1;
float suma=0.0;
printf("Dame las calificaciones de los 10 estudiantes:\n");
do
{
printf("\nDame la calificacion del estudiante %d: ",i);
scanf("%d",&est);
suma=est+suma;
i++;
}while(i<=10);
printf("\n\nEl promedio de los estudiantes es de: %.2f",suma/10.0);
getch();
return 0;
}
#include<conio.h>
#include<stdio.h>
int main()
{
int contador,i=0;
printf("Dame un numero: "); scanf("%d",&contador);
do
{
printf("\n%d",i);
i++;
}while ( i<=contador);
getch();
return 0;
}
21
Tec.Victor Manuel Tejeda Lopez
Estatuto for:
Sintaxis:
Falso.
Inicialización
Condición.
Incremento.
Verdadero.
Estatutos.
22
Tec.Victor Manuel Tejeda Lopez
*** Los mismos programas de los estatutos anteriores pero ahora con el estatuto
for.
#include<conio.h>
#include<stdio.h>
int main()
{
clrscr();
int est,i;
float suma=0.0;
printf("Dame las calificaciones de los 10 estudiantes:\n");
for (i=1; i<=10; i++)
{
printf("\nDame la calificacion del estudiante %d: ",i);
scanf("%d",&est);
suma=est+suma;
}
printf("\n\nEl promedio de los estudiantes es de: %.2f",suma/10.0);
getch();
return 0;
}
#include<conio.h>
#include<stdio.h>
int main()
{
int contador,i;
printf("Dame un numero: "); scanf("%d",&contador);
for (i=0; i<=contador; i++)
printf("\n%d",i);
getch();
return 0;
}
23
Tec.Victor Manuel Tejeda Lopez
Ciclos anidados:
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 54 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
Estatuto for:
#include<conio.h>
#include<stdio.h>
int main()
{
clrscr();
int i,j;
printf("Tabla de multiplicar\n\n");
24
Tec.Victor Manuel Tejeda Lopez
Estatuto while:
#include<conio.h>
#include<stdio.h>
int main()
{
clrscr();
int i=1,j=1;
printf("Tabla de multiplicar\n\n");
while(i<10)
{
while(j<10)
{
printf("%3d",i*j);
j++;
}
printf("\n");
j=1;
i++;
}
getch();
return 0;
}
Estatuto do while.
#include<conio.h>
#include<stdio.h>
int main()
{
clrscr();
int i=1,j=1;
printf("Tabla de multiplicar\n\n");
do
{
do
{
printf("%3d",i*j);
j++;
}while(j<10);
printf("\n");
j=1;
i++;
25
Tec.Victor Manuel Tejeda Lopez
}while(i<10);
getch();
return 0;
}
Ejercicios de práctica:
Ejercicios:
b) realiza un programa que visualice una tabla de multiplicar que se le asigna desde el
teclado y preguntar si se quiere realiza otra tabla de multiplicar y salirse hasta que a
respuesta sea falsa.
1*1=1
1*2=2
1*3=3
.
.
.
Quiere realizar otra tabla de multiplicar s/n:
c) Realiza un programa que pida 10 números, calcula y muestra la suma de todos los que
fueron par.
26
Tec.Victor Manuel Tejeda Lopez
Funciones:
{
float resp;
resp = num1 + num2;
return resp;
}
………………….
Tipo de retorno nombreFuncion (listadeParametros)
{
cuerpo de la función
return expresión
}
#include<stdio.h>
#include<conio.h>
27
Tec.Victor Manuel Tejeda Lopez
scanf("%d%d",&a,&b);
printf("El resultado de la suma es: %d",resultado(r,a,b));
getch();
return;
}
int resultado(int r,int a,int b)
{
r=a+b;
return r;
}
En este caso se manda a llamar una función resultado, el cual se le manda dos
valores a y b y se devuelve el valor r.
Ejemplo de una función sencilla que sirve para dos cosas diferentes que nosotros
queramos. Evitando así que se codifique doblemente.
#include<stdio.h>
#include<conio.h>
28
Tec.Victor Manuel Tejeda López
#include<conio.h>
#include<stdio.h>
F= 9/5*C+32
29
Tec.Victor Manuel Tejeda López
ARRAYS:
Los arrays (o matrices) son un tipo de variable que permiten tener más de un
elemento, (o valor en su interior), a los que se pueden acceder mediante un índice. Un
array también es el tipo en el que se basan todas las matrices o arrays.
Un array puede contener, por ejemplo, la edad de los alumnos de una clase, las
temperaturas de cada día de un mes en una ciudad determinada, las calificaciones de los
alumnos de un salón. Etc.
En C un array empieza con en valor de 0 y hasta donde nosotros le indiquemos:
.
a[0],a[1],a[2],a[3]… a[n-1].
0 5
1 4
2 10
3 8
4 25
5 50
Y así este array de tipo entero contiene 6 elementos, A[0] contiene 5, A[1]
contiene 4, A[2] contiene 10, A[3] contiene 8, A[4] contiene 25, A[5] contiene
50.
Ejemplo:
#include<conio.h>
#include<stdio.h>
void main(void)
{
int num[10];
30
Tec.Victor Manuel Tejeda López
clrscr();
printf("*Ingrese 10 numeros enteros*\n");
//En este ciclo se almacena los datos de el array.
for(int i=0; i<10 ;i++)
{
printf("%d.- ",i+1);
scanf("%d",&num[i]);
}
printf("\nNumero almacenados en el array.");
//En este ciclo se muestra en la pantalla.
for(int j=0; j<10 ;j++)
printf("\n%d",num[j]);
getch();
return;
}
Cad[0] A Cad[0] A
[1] b [1] b
[2] c [2] c
d d
[3] [3]
e e
[4] [4]
f \0
[5] [5]
31
Tec.Victor Manuel Tejeda López
#include<stdio.h>
#include<conio.h>
int main()
{
clrscr();
char nombre[15];
printf("Inserta un nombre: ");
gets(nombre);
printf("\n\n%s",nombre);
getch();
return 0;
}
Ejercicios:
32
Tec.Victor Manuel Tejeda López
Algoritmo de la burbuja.
max 5
num[max],i,j,t
Fin
i
i < max-1
i++
F
r
j
r j < max
j++ V
num[i] V
t=num[i]
>
num[i]=num[j]
num[j]
num[j]=t
33
Tec.Victor Manuel Tejeda López
La codificación será:
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#define MAX 5
void main(void)
{
clrscr();
int num[MAX],i,j,t;
printf("Dame 5 numero cuales quiera: \n");
for(i=0;i<MAX;i++)
cin>>num[i];
/*Metodo de la burbuja*/
for(i=0;i<MAX-1;i++)
{
for(j=i+1;j<MAX;j++)
if(num[i]>num[j])
{
t=num[i];
num[i]=num[j];
num[j]=t;
}
}
/*Se imprimen los numeros ya ordenados*/
for(int a=0;a<MAX;a++)
printf("\n%d",num[a]);
getch();
return;
}
34
Tec.Victor Manuel Tejeda López
Array multidimencionales.
Su estructura es la siguiente:
0 1 2 3 n
35
Tec.Victor Manuel Tejeda López
Los array son muy fácil de manejar siempre y cuando se visualice primero las
posiciones del mismo, y ver como se va controlando las posiciones filas,
columnas.
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main(void)
{
int A[3][3],i,j;
clrscr();
printf("Dame los datos:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("[%d,%d]= ",i,j);
cin>>A[i][j];
}
printf("\n\n\n");
//imprimir los datos.
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("[%d]",A[i][j]);
printf("\n\n");
}
getch();
return;
}
36
Tec.Victor Manuel Tejeda López
Registros:
Struct tipo_registro
{
Int clave;
Char nombre;
Char depto;
Flota sueldo;
}
#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#define MAX 10
struct tipo_registro
{
int clave;
char nombre[30];
char depto;
float sueldo;
37
Tec.Victor Manuel Tejeda López
};
void main(void)
{
clrscr();
struct tipo_registro Empleado[10];
int cantidad;
do
{
cout<<"Dame la cantidad de empleados a capturar: ";
cin>>cantidad;
}while(cantidad>=MAX);
clrscr();
for(int i=0; i<cantidad; i++)
{
cout<<"\n\nClave: "; cin>>Empleado[i].clave;
cout<<"Nombre: "; gets(Empleado[i].nombre);
cout<<"Departamento: "; cin>>Empleado[i].depto;
cout<<"Sueldo: "; cin>>Empleado[i].sueldo;
}
/*Se imprimen los arreglos*/
clrscr();
for(int i=0;i<cantidad;i++)
printf("\n\nClave: %d ; Nombre: %s ; Depto: %c ; Sueldo:
%5.2f",Empleado[i].clave,Empleado[i].nombre,Empleado[i].depto,Empleado[i].s
ueldo);
getch();
return;
}
Como buen Trabajo de práctica final Realiza un programa de una Factura, donde
contengan los puntos de que una factura debe tener.
38
Tec.Victor Manuel Tejeda López
Bibliografía:
39