Académique Documents
Professionnel Documents
Culture Documents
INDICE
Contenido
Algoritmo ............................................................................................................................................. 3
Lenguaje de programacin C ............................................................................................................... 4
Tipos de datos ...................................................................................................................................... 4
Declaracin de variables ...................................................................................................................... 4
Estructura bsica de un programa en C ................................................................................................ 5
Entrada y salida de datos ...................................................................................................................... 5
Funcin Printf ...................................................................................................................................... 5
Funcin Scanf ...................................................................................................................................... 6
Ejemplos de la funcin printf y scanf .................................................................................................. 7
Operadores ........................................................................................................................................... 7
Ejemplo de programacin con operadores ......................................................................................... 10
Sentencias de Control......................................................................................................................... 11
Sentencias de seleccin ...................................................................................................................... 11
IF - ELSE ........................................................................................................................................... 11
Ejemplos de la sentencia IF ELSE .................................................................................................. 12
SWITCH ............................................................................................................................................ 15
Ejemplos de Switch ............................................................................................................................ 16
Sentencias de Repeticin ................................................................................................................... 18
While .................................................................................................................................................. 18
Do -While........................................................................................................................................... 18
Ejemplos de ciclos de repeticin ........................................................................................................ 19
Ciclo de Repeticin FOR ................................................................................................................. 22
Talleres ........................................................................................................................................................ 27
Arreglos .............................................................................................................................................. 30
Ordenar arreglos ......................................................................................................................................... 36
Punteros .............................................................................................................................................. 42
Cadena de Caracteres ......................................................................................................................... 43
Declaracin: ................................................................................................................................................. 43
Lectura: ........................................................................................................................................................ 43
Impresin:.................................................................................................................................................... 43
Funcin strlen .............................................................................................................................................. 44
Funcin strcpy ............................................................................................................................................. 44
Funcin strcmp ............................................................................................................................................ 44
Funcin stricmp ........................................................................................................................................... 45
Funcin strlwr .............................................................................................................................................. 46
Funcin strupr ............................................................................................................................................. 46
Funcin atoi ................................................................................................................................................. 49
Funcin atol ................................................................................................................................................. 49
Funcin atof ................................................................................................................................................. 49
Funciones ........................................................................................................................................... 51
1
Programacin en C
2
Programacin en C
Algoritmo
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar
solucin a un problema especfico.
Sacar MCD
1. Tener un nmero
2. Tener otro nmero
3. Si el primer nmero es mayor que el segundo entonces el mayor es el primero, sino el mayor
es el segundo.
4. El mayor es el dividendo
5. El menor es el divisor
6. Divisor el dividendo para el divisor
7. Guardar Residuo
8. Si residuo es cero
Escribir el MCD es el divisor
Caso contrario el divisor pasa a ser el dividendo
El residuo para a ser el divisor
Ir al paso 6 hasta que el residuo sea cero.
Descomponer un nmero en sus factores primos
1. Tener un nmero
2. Colocar el nmero en el dividendo
3. Colocar el nmero 2 en el divisor
4. Divisor el dividendo para el divisor
5. Guardar el cociente
6. Guardar residuo
7. Si el residuo es igual a cero
Escribir el Divisor
Guardar el cociente en el divisor
Caso contrario
Aumentar en 1 el divisor
8. Ir al paso 4 mientras el cociente sea distinto de cero
Redondear un entero positivo a la centena ms prxima y visualizar la salida, para ello la
entrada de datos debe ser de cuatro dgitos
1. Tener un nmero de cuatro dgitos y almacenarlo en n
2. Asignar a la variable a el valor de 100
3. De a restar n
4. Guardar el resultado en la variable b
5. Si b es mayor o igual que cero y menor que 100
Escribir el valor de a
Caso contrario si b es menor que 0
Aumentar 100 unidades a la variable a
6. Ir al paso 3 hasta que b sea mayor o igual a cero y menor que 100
3
Programacin en C
Lenguaje de programacin C
El lenguaje C es un lenguaje de programacin estructurado. Lo que quiere decir que el cdigo o
algoritmo esta ordenado o estructurado.
El lenguaje C es uno de los lenguajes ms rpidos y potentes que existen hoy en da con una
sintaxis sumamente compacta y de alta portabilidad.
Tipos de datos
Tipo
Char
Short
Int
Unsignedint
Long
Float
Double
Long double
Ejemplo
0
-17
1456
4653
36214
12,5
0,0005
1e-8
Memoria(Bytes)
1
2
2
2
2
4
8
8
Valor Mnimo
0
-128
-32768
0
-214748368
3,4e-38
1,7e-308
3,4e-4932
Valor Mximo
255
127
32767
65535
214748637
3,4e38
1,7e308
1.1e4932
Declaracin de variables
En C la informacin puede ser almacenada en variables. En C estas deben ser declaradas antes de
ser usadas.
Para declarar variables se usa el siguiente formato:
tipo_de_variable nombre_de_variable;
Ejemplo:
int numero;
Hay ciertas reglas que se deben seguir al momento de declarar variables:
El nombre de la variable puede constar de nmeros pero no debe iniciar con un nmero,
El nombre de la variable no puede ser igual a una palabra reservada de C.
El nombre de la variable puede tener caracteres especiales como ,/,$,etc. A excepcin de
los guiones bajos _.
En C se distinguen maysculas de minsculas, por lo que Variable es diferente a vaRiaBle.
Al declarar una variable tambin se le puede asignar un valor y se puede declarar varias variables en
una misma lnea.
4
Programacin en C
tipo_de_variable variable1=valor1,variable2=valor2;
//Archivos de cabecera
voidmain(){
//instrucciones
}
//Funcin principal
Funcin Printf
La funcin printf incluida en la librera stdio permite mostrar datos en la pantalla.
Ejemplo de uso:
printf(Texto a imprimir con los indicadores de formato, lista de variables);
Las variables que se van a imprimir deben ser separadas por una coma en el orden en el que se
encuentra entre las comillas.
Para imprimir los datos de una variable se utiliza los identificadores de formato descritos en la
siguiente tabla.
5
Programacin en C
Entero decimal
%o
%x
%c
Char
%u
Unsignedint
%e
Notacin cientfica
%f
float
%g
float
%s
Cadena de caracteres
%ld
Long int
%lf
Double
Smbolo
Accin
\a
Alarma
\b
Espacio atras
\f
Salto de pgina
\n
Salto de linea
\r
Retorno de carro
\t
Tabulacin Horizontal
\v
Tabulacin Vertical
\\
Barra Invertida
\?
Signo de interrogacin
Comillas
Ejemplo de uso:
printf(\nEl numero entero es:%d,numero);
Funcin Scanf
Esta funcin permite la entrada de datos por parte del usuario, para usar sta funcin se usar el
siguiente formato:
scanf(identificador_de_formato,&variable);
Programacin en C
Ejemplo:
scanf("%d",&num);
Operadores
Aritmticos, lgicos y relacionales
Condicionales
Asignacin, incrementacin y decrementacin
7
Programacin en C
Operadores aritmticos
Operador
Accin
Uso
Suma
a+b
Resta
a-b
Multiplicacin
a*b
Divisin
a/b
Mod(Residuo)
a%b
Operadores lgicos
Operador
Nombre
Accin
not
Produce falso si
su operando es
verdadero
and
Produce
verdadero si sus
dos operandos
son verdaderos
&&
or
||
Produce
verdadero si uno
de sus operandos
es verdadero
Operadores relacionales
Operador
Descripcin
Ejemplo
<
Menor que
a<b
>
Mayor que
a>b
<=
a<=b
>=
a>=b
==
Igual que
a==b
!=
Distinto de
a!=b
8
Programacin en C
Descripcin
Uso
?:
Condicional
Asignacin
a=b
++
Incremento
a++
--
Decremento
a--
Precedencia
Operadores
Asociatividad
()[] -> .
izq. a derecha
*/%
izq. a derecha
+-
izq. a derecha
>
izq. a derecha
>=
izq. a derecha
== !=
izq. a derecha
&
izq. a derecha
izq. a derecha
izq. a derecha
10
&&
izq. a derecha
11
||
izq. a derecha
12
?:
derecha a izq.
13
= += -= *= etc
derecha a izq.
9
Programacin en C
10
Programacin en C
Sentencias de Control
Sentencias de seleccin
Sentencias de repeticin
Sentencias de seleccin
IF - ELSE
Esta proposicin sirve para ejecutar ciertas sentencias de programa, si una expresin resulta
CIERTA otro grupo de sentencias, si aquella resulta FALSA.
if (condicin) {
//Instrucciones si la condicin es verdadera
}
if (condicin) {
//Instrucciones si la condicin es verdadera
}
else{
//Instrucciones si la condicin es falsa
}
if (condicin) {
//Instrucciones si la condicin es verdadera
}
elseif (condicin1){
//Instrucciones si la condicin1 es verdadera
}
else{
//instrucciones si no se cumple ninguna de las condiciones anteriores
}
11
Programacin en C
/*
Un equipo de ftbol est realizando una campaa y desea premiar a los jugadores con un
aumento de salario.
Si su salario esta entre 0 y 900 se le incrementa 20%
Si su salario esta entre 901 y 1300 se le incrementa 10%
Si su salario esta entre 1301 y 1800 se le incrementa 5%
Si su salario es mayor a 1800 no se incrementa
*/
#include <stdio.h>
void main()
{
int sueldo;
doublesueldo_nuevo;
printf("Ingrese el sueldo: ");
scanf("%d",&sueldo);
if((sueldo>=0)&&(sueldo<=900))
sueldo_nuevo= sueldo+(sueldo*0.2);//Aumenta en 20%
elseif((sueldo>=901)&&(sueldo<=1300))
sueldo_nuevo= sueldo+(sueldo*0.1);//Aumenta en 10%
elseif((sueldo>=1301)&&(sueldo<=1800))
sueldo_nuevo= sueldo+(sueldo*0.05);//Aumenta en 5%
else
sueldo_nuevo= sueldo;//Se mantiene
printf("\nEl nuevo sueldo es %lf",sueldo_nuevo);
}
12
Programacin en C
#include <stdio.h>
#include <math.h>
//Sacar las raices de una ecuacioncuadratica utilizando la formula general
void main()
{
doublea,b,c;
doublediscr;
double x1,x2;
printf("Determinar las raices de una ecuacion ax^2 +bx + c \n"
"Ingrese el valor de a:
");
scanf("%lf",&a);
printf("Ingrese el valor de b:
");
scanf("%lf",&b);
printf("Ingrese el valor de c:
");
scanf("%lf",&c);
if(a!=0){
discr= b*b -4*a*c;
printf("Discriminante %lf\n",discr);
if(discr<0)//raicesimaginarias
printf("Raicesimaginarias.\n");
elseif(discr==0){//Raizunica y real
x1=(-b/(2*a));
printf("Posee una raiz x1: %lf",x1);
}
else{//Raices reales y distintas
x1=((-b+sqrt(b*b-4*a*c))/(2*a));
x2=((-b-sqrt(b*b-4*a*c))/(2*a));
printf("Las raices son x1: %lf y x2: %lf",x1,x2);
}
}elseif(b!=0){
x1=(-c/b);
printf("Posee una raiz x: %lf",x1);
}
elseprintf("Error!!!");
}
13
Programacin en C
#include <stdio.h>
#include <conio.h>
voidmain()
{
int a;
printf("Ingrese un numero: ");
scanf("%d",&a);
if((a%2)==0)
printf("\nEl numero %d es par",a);
else
printf("\nEl numero %d es impar",a);
getch();
}
#include <stdio.h>
void main()
{
inta,b;
printf("Ingrese el primer numero: ");
scanf("%d",&a);
printf("Ingrese el segundo numero: ");
scanf("%d",&b);
if(a>b)
printf("El numero %d es mayor que %d",a,b);
elseif(a<b)
printf("El numero %d es mayor que %d",b,a);
else
printf("El numero %d es igual a %d",a,b);
}
14
Programacin en C
SWITCH
La instruccin switch() es una instruccin de decisin mltiple, donde el compilador prueba o busca
el valor contenido en una variable contra una lista de constantes ints o chars, cuando el computador
encuentra el valor de igualdad entre variable y constante, entonces ejecuta el grupo de instrucciones
asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante,
entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ultimo es opcional.
Generalmente, la sentencia switch se implementa cuando es necesarario la utilizacin de un men
de opciones ya que el usuario deber escoger una de las opciones.
switch (variable){
caseopcion:
//Instrucciones
break;
case opcion1:
//instrucciones
break;
default:
//instrucciones cuando no se cumple ninguna de las anteriores
}
15
Programacin en C
Ejemplos de Switch
#include <stdio.h>
void main()
{
char c;
inta,b,d;
printf(" Menu \n");
printf("A: Sumar \n");
printf("B: Restar \n");
printf("C: Multiplicar \n");
printf("D: Dividir \n");
printf("Elija la operacion a realizar: ");
scanf("%c",&c);
switch(c){
case'a':case'A':
printf("Ingrese el primer numero: ");
scanf("%d",&a);
printf("Ingrese el segundo numero: ");
scanf("%d",&b);
printf("La suma entre %d y %d es %d",a,b,(a+b));
break;
case'b':case'B':
printf("Ingrese el primer numero: ");
scanf("%d",&a);
printf("Ingrese el segundo numero: ");
scanf("%d",&b);
printf("La resta entre %d y %d es %d",a,b,(a-b));
break;
case'c':case'C':
printf("Ingrese el primer numero: ");
scanf("%d",&a);
printf("Ingrese el segundo numero: ");
scanf("%d",&b);
printf("La multiplicacion de %d con %d es %d",a,b,(a*b));
break;
case'd':case'D':
printf("Ingrese el primer numero: ");
scanf("%d",&a);
printf("Ingrese el segundo numero: ");
scanf("%d",&b);
if(b !=0)
printf("la division de %d para %d es %d",a,b,(a/b));
else
printf("Error Matematico");
break;
default:
printf("\n
}
}
###Opcion incorrecta!!!###");
16
Programacin en C
#include <stdio.h>
void main()
{
intc,d,f;
doublea,b;
printf("
************Menu*********** \n\n");
printf("1: Obtener el mayor numero\n");
printf("2: Valor absoluto de un numero \n");
printf("3: El residuo de 2 numeros\n\n");
switch(c){
case1:
printf("Ingrese el primer numero: ");
scanf("%lf",&a);
printf("Ingrese el segundo numero: ");
scanf("%lf",&b);
if(a>b)
printf("El mayor es %lf",a);
elseif(a<b)
printf("El mayor es %lf",b);
else
printf("Los numeros son iguales");
break;
case2:
printf("Ingrese el numero: ");
scanf("%lf",&a);
if(a>=0)
printf("El valor absoluto de %lf es %lf",a,a);
else
printf("El valor absoluto de %lf es %lf",a,-a);
break;
case3:
printf("Ingrese el primer numero: ");
scanf("%d",&d);
printf("Ingrese el segundo numero: ");
scanf("%d",&f);
if(f!=0)
printf("El residuo de %d para %d es %d",d,f,(d%f));
else
printf("Error matematico");
break;
default:
printf("\n
}
}
###Opcion incorrecta!!!###");
17
Programacin en C
Sentencias de Repeticin
While
En este ciclo el cuerpo de instrucciones se ejecuta mientras una condicin permanezca como
verdadera en el momento en que la condicin se convierte en falsa el ciclo termina.
while(condicion){
//Instrucciones
}
Do -While
Su diferencia bsica con el ciclo while es que la prueba de condicin es hecha al finalizar el ciclo,
es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las
instrucciones y al final evala la condicin.
do {
//Instrucciones
}while(condicin);
For
Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones, sobre todo cuando
se conoce la cantidad exacta de veces que se quiere que se ejecute una instruccin simple o
compuesta.
for (inicio; condicin; incremento){
//Instrucciones
}
18
Programacin en C
#include <stdio.h>
void main()
{
inta,i,r;
for(intvar=0;var<80;++var)printf("_");
printf("\nIngrese el numero:
");
scanf("%d",&a);
i=0;
r=0;
while(i<3)
{
if(a%2!=0){
printf("ERROR! Ingrese un numero par:
");
scanf("%d",&a);
}
else{
r+=a;
++i;
if(i<3){
printf("Ingrese el numero: ");
scanf("%d",&a);
}
}
}//Fin while
printf("\nLa suma de los numero pares es: %d\n",r);
for(var=0;var<80;++var)printf("_");
}
19
Programacin en C
#include<stdio.h>
doubleR,num;
int c;
void main()
{
for(int var=0; var<80;++var)printf("_");
for(var=0;var<80;++var)printf("-");
printf("
PROMEDIO DE 'N' NUMEROS INGRESADOS\n");
for(var=0;var<80;++var)printf("-");
printf("\n\n
INSTRUCCION: Ingrese -1 para finalizar\n");
c=0;
R=0;
while(num!=-1)
{
printf("Ingrese el numero: ");
scanf("%lf",&num);
if(num!=-1)
{++c;
R+=num;}
}
for(var=0;var<80;++var)printf("-");
if(c!=0)
printf("\nEl promedio de los %d numeros ingresados es: %lf\n",c,R/c);
else
printf("NO Ingreso numeros!!!!\n");
for(var=0;var<80;++var)printf("-");
for(var=0;var<80;++var)printf("_");
}
20
Programacin en C
#include <stdio.h>
void main()
{
longinta,b,c;
printf("
Suma de cifras impares hasta un numero dado 'n'\n");
for(intvar=0;var<80;++var)printf("-");
printf("
Ingrese un numero:");
scanf("%ld",&a);
while(a<1)
{
printf("ERROR!!!!!\n");
for(var=0;var<80;++var)printf("~");
printf("
Ingrese de nuevo: ");
scanf("%ld",&a);
}
b=-1;
c=0;
if(a%2!=0){
do
{
b+=2;
c+=b;
}while(b<a);
}
else
{
do
{
b+=2;
c+=b;
}while(b<a-1);
}
for(var=0;var<80;++var)printf("_");
printf("\n
La suma de cifras impares hasta %ld es %ld.\n",a,c);
for(var=0;var<80;++var)printf("_");
}
21
Programacin en C
Ejemplo:
for(int i=0;i<3;i++)
Nota: Se puede declarar la variable referencial tanto afuera como adentro de la estructura del for.
inti,j;
for(i=o, j=1; i<3, j<10; i++, j++)
Si la condicin est formada por dos o ms expresiones al ser separada por,, se entiende como un o:
#include<stdio.h>
void main(){
inti,j;
for(i=0,j=1;i<3,j<10;i++,j++)
printf("%d
%d\n",i,j);
}
22
Programacin en C
EJEMPLO FACTORIAL:
#include<stdio.h>
void main() {
longinti,j,fact;
fact=1;
for(intvar=0;var<80;++var)printf("_");
printf("\nREALIZADO POR:
Pedro Rodrguez - Damian Luje\n");
for(var=0;var<80;++var)printf("_");
printf("\n\n\t\t\t FACTORIAL DE UN NUMERO INGRESADO\n\n");
for(var=0;var<80;++var)printf("_");
printf("\nIngrese el numero: ");
scanf("%ld",&i);
for(j=1;j<=i;j++)
fact*=j;
for(var=0;var<80;++var)printf("_");
if(i>=0)
printf("\nEl factorial de %ldes:
%ld\n",i,fact);
else printf("ERROR!!!!!!\n");
for(var=0;var<80;++var)printf("_");
printf("\n\t\t\t
***PROGRAMA FINALIZADO***");
}
23
Programacin en C
Tambin es posible anidar un for dentro de otro hasta 7, siendo la estructura la siguiente:
for(inicio; condicion; incremento o decremento)
#include <stdio.h>
void main(){
for(int i=0;i<=3;i++){
for(int j=1;j<=i;j++)
printf("%d %d\n",i,j);
printf("\n");
}
}
24
Programacin en C
#include <stdio.h>
void main()
{
for(int i=0;i<=3;i++){
for(int j=3;j>=0;j--){
printf("%d\n",i*j);
}
}
}
25
Programacin en C
#include<stdio.h>
void main(){
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
26
Programacin en C
Talleres
Invertir el tringulo del ejemplo anterior
#include<stdio.h>
void main(){
for(int i=5;i>=1;i--){
for(int j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
27
Programacin en C
#include<stdio.h>
void main(){
inti,j;
printf("\n");
for(i=1;i<=6;i++){
printf("\t\t%d ",i);
for(j=1;i-j-1>=0;j++)
printf("%d ",i+j);
printf("\n");
}
printf("\n\n
Por Pedro Rodriguez - Damian Luje");
}
28
Programacin en C
29
Programacin en C
Arreglos
El nombre del arreglo debe ir con maysculas.
Declaracin:
tipo_datonombre[dimensin];
Ejemplo:
int A[5];
Iniciacin:
int
A[5]={0,2,4,6,8}
Lectura de Datos
#include <stdio.h>
void main(){
int A[5];
for(int i=0;i<5;i++){
printf("Ingrese un valor:\t");
scanf("%d",&A[i]);
}
int a=10;
printf("%d\n",A[2]);
printf("%d\n",A[5-3]);
printf("%d\n",A[a-8]);
for(i=0;i<5;i++)
printf("\t%d",A[i]);
}
30
Programacin en C
#include <stdio.h>
void main(){
int A[5];
for(int i=0;i<5;i++){
printf("Ingrese un valor:\t");
scanf("%d",&A[i]);
}
int a=0,b=0;
for(i=0;i<5;i+=2)
a+=A[i];
for(i=1;i<5;i+=2)
b+=A[i];
printf("\t%d\n",a);
printf("\t%d",b);
}
31
Programacin en C
#include <stdio.h>
void main(){
longinta,n,A[8];
do{
printf("Ingrese un numero:
");
scanf("%ld",&a);
if(a<0)printf("Error, Ingrese un numero vlido.\n");
}while(a<0);
n=a;
intcont=0;
while(a/10!=0)
{
a/=10;
cont++;
}
printf("El numero posee %d cifras.\n",cont+1);
for(int i=cont;i>=0;i--)
{A[i]=n%10;
n/=10;
}
printf("El numero guardado cifra a cifra en el arreglo es:\n\n\t");
for(int j=0;j<=cont;j++)
printf("\t%ld",A[j]);
}
32
Programacin en C
#include <stdio.h>
#include <conio.h>
void main(){
intcontinuar;
do{
clrscr();
int A[10],s_p=0,s_i=0,S=0;
doublep_p=0,p_i=0;
printf("\n\t\tINGRESO DE DATOS\n");
for(int i=0;i<10;i++){printf("Ingrese un valor: ");
scanf("%d",&A[i]);
S+=A[i];
}
for(i=0;i<10;i++)
{if(A[i]%2==0)
s_p+=A[i];
else s_i+=A[i];}
for(i=0;i<10;i+=2)
p_p+=A[i];
p_p/=5;
for(i=1;i<10;i+=2)
p_i+=A[i];
p_i/=5;
printf("\n\n");
for(i=0;i<10;i++)printf(" %d\t",A[i]);
printf("\n\n");
printf("\n\t\tLa suma # pares es:
\t\t%d",s_p);
printf("\n\t\tLa suma # impares es:
\t\t%d",s_i);
printf("\n\t\tEl promedio de las posiciones pares es:
printf("\n\t\tEl promedio de las posiciones impares es:
printf("\n\t\tLa suma total es:
%d",S);
%lf",p_p);
%lf",p_i);
33
Programacin en C
#include <stdio.h>
void main(){
longinta,n,A[8];
do{
printf("Ingrese un numero:
");
scanf("%ld",&a);
if(a<0)printf("Error, Ingrese un numero vlido.\n");
}while(a<0);
n=a;
intcont=0;
while(a/10!=0)
{
a/=10;
cont++;
}
printf("El numero posee %d cifras.\n",cont+1);
for(int i=cont;i>=0;i--)
{A[i]=n%10;
n/=10;
}
printf("El numero guardado cifra a cifra en el arreglo es:\n\n\t");
for(int j=0;j<=cont;j++)
printf("\t%ld",A[j]);
}
34
Programacin en C
#include <stdio.h>
#include <conio.h>
void main(){
intcontinuar;
do{
clrscr();
int A[10],s_p=0,s_i=0,S=0;
doublep_p=0,p_i=0;
printf("\n\t\tINGRESO DE DATOS\n");
for(int i=0;i<10;i++){printf("Ingrese un valor: ");
scanf("%d",&A[i]);
S+=A[i];
}
for(i=0;i<10;i++)
{if(A[i]%2==0)
s_p+=A[i];
else s_i+=A[i];}
for(i=0;i<10;i+=2)
p_p+=A[i];
p_p/=5;
for(i=1;i<10;i+=2)
p_i+=A[i];
p_i/=5;
printf("\n\n");
for(i=0;i<10;i++)printf(" %d\t",A[i]);
printf("\n\n");
printf("\n\t\tLa suma # pares es:
\t\t%d",s_p);
printf("\n\t\tLa suma # impares es:
\t\t%d",s_i);
printf("\n\t\tEl promedio de las posiciones pares es:
printf("\n\t\tEl promedio de las posiciones impares es:
printf("\n\t\tLa suma total es:
%d",S);
%lf",p_p);
%lf",p_i);
35
Programacin en C
Ordenar arreglos
Mtodo de la burbuja:
1. Comparar el casillero 0 con todos los dems casilleros.
#include <stdio.h>
#include <conio.h>
void main(){
int A[5],aux,c;
do{
clrscr();
for(int v=0; v<5; v++){
printf("Ingrese el valor para la posicion %d del arreglo:\t",v);
scanf("%d",&A[v]);
}
printf("\n\t\tArreglo sin ordenar:\n");
for(v=0; v<5; v++)printf("%d\t",A[v]);
printf("\n");
for(int i=0; i<5; i++)
for(int j=i+1; j<5; j++)
if(A[i]>A[j]){
aux=A[i];
A[i]=A[j];
A[j]=aux;
}
printf("\n\t\tArreglo ordenado ascendentemente:\n");
for(v=0; v<5; v++)printf("%d\t",A[v]);
for(i=0; i<5; i++)
for(int j=i+1; j<5; j++)
if(A[i]<A[j]){
aux=A[i];
A[i]=A[j];
A[j]=aux;
}
printf("\n\t\tArreglo ordenado descendentemente:\n");
for(v=0; v<5; v++)printf("%d\t",A[v]);
printf("\n\nIngrese 1 para continuar, otro valor para terminar:");
scanf("%d",&c);
}while(c==1);
printf("\t\tPROGRAMA TERMINADO!!!!!");
}
36
Programacin en C
37
Programacin en C
#include <stdio.h>
#include <conio.h>
void main(){
intcontinuar;
do{
clrscr();
int A[5],B[5],C[10],D[10],s_p=0,s_i=0,S=0,i,j;
doublep_p=0,p_i=0;
for(i=0;i<10;i++){ C[i]=0; D[i]=-1;}
printf("\n\t\tINGRESO DE DATOS\n");
for(i=0;i<5;i++){printf("Ingrese un valor para A:
scanf("%d",&A[i]);
C[i]=A[i];
}
for(i=0;i<5;i++){printf("Ingrese un valor para B:
scanf("%d",&B[i]);
C[i+5]=B[i];
}
printf("C:");
for(i=0;i<10;i++)printf("%d ",C[i]);
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if(C[i]==C[j]) C[j]=-1;
");
");
printf("\nUnion: ");
for(i=0;i<10;i++)
if(C[i]!=-1)printf("%d ",C[i]);
printf("\nInterseccion:");//interseccion
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(A[i]==B[j]) D[j]=A[i];
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
if(D[i]==D[j]) D[j]=-1;
for(i=0;i<10;i++)
if(D[i]!=-1)printf("%d ",D[i]);
printf("\n\nIngrese 1 para continuar(Otro valor para salir):");
scanf("%d",&continuar);
}while(continuar==1);
printf("\n\tPROGRAMA TERMINADO");
}
38
Programacin en C
#include <stdio.h>
#include <conio.h>
void main(){
int c;
do{
longint A[9]={0,0,0,0,0,0,0,0,0},a,n,sumap,sumai,suma;
clrscr();
do{
printf("\n\n\tIngrese un numero:
");
scanf("%ld",&a);
if(a<0)printf("Error, Ingrese un numero vlido.\n");
}while(a<0);
n=a;
intcont=0;
while(a/10!=0)
{
a/=10;
cont++;
}
printf("El numero posee %d cifras.\n",cont+1);
for(int i=cont;i>=0;i--)
{A[i]=n%10;
n/=10;
}
printf("El numero guardado cifra a cifra en el arreglo es:\n\n\t");
for(int j=0;j<=cont;j++)
printf("\t%ld",A[j]);
sumap=sumai=0;
for(i=0; i<9; i+=2)
sumap+=A[i];
for(i=1; i<9; i+=2)
sumai+=A[i];
suma=sumai-sumap;
if(suma%11==0)printf("\nEs divisible para 11");
elseprintf("\nNo es divisible para 11.");
printf("\n\n\tINGRESE 1 para continuar, cualquier otro valor para
salir.\n\n");
scanf("%d",&c);
//clrscr();
}while(c==1);
printf("\t\t\t
***PROGRAMA TERMINADO***");
}
39
Programacin en C
40
Programacin en C
for(i=0;i<3;i++) M[i]=V[i]=Com[i]=MesM[i]=Mesm[i]=0;
for(j=0;j<12; j++){
if(A[j]>M[0]){ M[0]=A[j];MesM[0]=j;}
if(A[j]<m[0]){ m[0]=A[j];Mesm[0]=j;}
V[0]+=A[j];
if(A[j]>500)
Com[0]+=(0.3*A[j]);
}
for(j=0;j<12; j++){
if(B[j]>M[1]){ M[1]=B[j];MesM[1]=j;}
if(B[j]<m[1]){ m[1]=B[j];Mesm[1]=j;}
V[1]+=B[j];
if(B[j]>500)
Com[1]+=(0.3*B[j]);
}
for(j=0;j<12; j++){
if(C[j]>M[2]){ M[2]=C[j];MesM[2]=j;}
if(C[j]<m[2]){ m[2]=C[j];Mesm[2]=j;}
V[2]+=C[j];
if(C[j]>500)
Com[2]+=(0.3*C[j]);
}
VT=VM=Vm=p=0;
for(i=0;i<3;i++) VT+=V[i];
p=VT/3;
if(V[0]>V[1]&&V[0]>V[2]) VM=0;
if(V[1]>V[0]&&V[1]>V[2]) VM=1;
if(V[2]>V[0]&&V[2]>V[1]) VM=2;
if(V[0]<V[1]&&V[0]<V[2])Vm=0;
if(V[1]<V[0]&&V[1]<V[2])Vm=1;
if(V[2]<V[0]&&V[2]<V[1])Vm=2;
clrscr();
for(i=0;i<3;i++){
printf("Venta mayor de %c: %lf en el mes %d\n"
"Venta menor de %c: %lf en el mes %d\n"
"Venta total de %c: %lf\n"
"Comision de %c:
%lf\n\n",Emp[i],M[i],MesM[i]+1,Emp[i],m[i],Mesm[i]+1,Emp[i],V[i],Emp
[i],Com[i]);
}
printf("\nLas ventas totales son: %lf\n"
"El empleado que vendio mas fue: %c con %lf\n"
"El empleado que vendio menos fue %c con %lf\n"
"El promedio total de ventas es:
%lf\n\n\n",VT,Emp[VM],V[VM],Emp[Vm],V[Vm],p);
printf("\nIngrese 1 para continuar(Otro valor para salir):");
scanf("%d",&continuar);
}while(continuar==1);
printf("\n\tPROGRAMA TERMINADO");
}
41
Programacin en C
Punteros
Tipo de dato que almacena las direcciones de otras variables
int a;
float b;
a=8;
int *p;
p=&a;
*p=0;
float *w;
w=&b;
*w=3.2;
printf(%d,*p);
printf(%p,&p);
printf(%p,&b);
printf(%p,w);
RAM
a=8
b=3.2
c=
FA00
FA04
FA00
FA02
FA04
FA06
FA08
FA10
FA12
//0
//FA10
//FA04
//FA04
42
Programacin en C
Cadena de Caracteres
Es un arreglo de caracteres en el que se almacenara un carcter en cada casillero.
Se diferencia de un arreglo de caracteres en que la cadena posee un carcter nulo al final.
La librera <string.h>permite el manejo de cadenas de caracteres.
Declaracin:
Para declarar una cadena de caracteres se usa el siguiente formato:
char cadena[6];
char*cadena3;
Lectura:
gets(cadena);
scanf("%s",cadena);
Impresin:
puts(cadena);
printf("%s",cadena);
Ejemplo:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(){
int continuar;
do{
clrscr();
char cadena[10];
printf("Ingrese su nombre:");
scanf("%s", cadena);
printf("La cadena es %s", cadena);
printf("\nIngrese 1 para continuar(Otro valor para salir):");
scanf("%d",&continuar);
}while(continuar==1);
printf("\n\tPROGRAMA TERMINADO");
}
43
Programacin en C
Funcin strlen
Devuelve la longitud de la cadena.
int i;
i=strlen(cadena);
printf("\nLa longitud es %d",i);
Funcin strcpy
Copia la cadena2 en la cadena1.
strcpy(cadena1,cadena2);
Funcin strcmp
Compara dos cadenas mediante cdigo ASCII
strcmp(cadena1, cadena2);
44
Programacin en C
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(){
int continuar;
do{
clrscr();
char nombre[10];
char apellido[10];
printf("Ingrese su nombre:");
scanf("%s", nombre);
printf("Ingrese su apellido:");
scanf("%s", apellido);
int i;
i=strcmp(nombre,apellido);
if(i==0)printf("Nombre y apellido iguales");
elseprintf("Nombre y apellidos diferentes");
printf("\nIngrese 1 para continuar(Otro valor para salir):");
scanf("%d",&continuar);
}while(continuar==1);
printf("\n\tPROGRAMA TERMINADO");
}
Funcin stricmp
Compara dos cadenas sin importas si son maysculas o minsculas.}
stricmp(cadena1,cadena2);
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(){
int continuar;
do{
clrscr();
char nombre[10];
char apellido[10];
printf("Ingrese su nombre:");
scanf("%s", nombre);
printf("Ingrese su apellido:");
scanf("%s", apellido);
int i;
i=stricmp(nombre,apellido);
if(i==0)printf("Nombre y apellido iguales");
elseprintf("Nombre y apellidos diferentes");
printf("\nIngrese 1 para continuar(Otro valor para salir):");
scanf("%d",&continuar);
}while(continuar==1);
printf("\n\tPROGRAMA TERMINADO");
}
45
Programacin en C
Funcin strlwr
Convierte una cadena a minsculas.
strlwr(cadena);
Funcin strupr
Convierte una cadena a maysculas.
strupr(cadena);
46
Programacin en C
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(){
int continuar;
do{
clrscr();
char nombre[10];
char apellido[10];
printf("Ingrese su nombre:");
scanf("%s", nombre);
printf("Ingrese su apellido:");
scanf("%s", apellido);
int i;
i=stricmp(nombre,apellido);
printf("\nNombre en minusculas: %s",strlwr(nombre));
printf("\nNombre en mayusculas: %s",strupr(nombre));
if(i==0)printf("\nNombre y apellido iguales");
elseprintf("\nNombre y apellidos diferentes");
printf("\nIngrese 1 para continuar(Otro valor para salir):");
scanf("%d",&continuar);
}while(continuar==1);
printf("\n\tPROGRAMA TERMINADO");
}
47
Programacin en C
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main(){
char *continuar;
do{
clrscr();
int x;
x=0;
char *frase;
char *a,c[5]={'a','e','i','o','u'};
for(int v=0;v<80;v++)
printf("_");
printf("\n\nIngrese una frase: ");
gets(frase);
strlwr(frase);
for (int j=0;j<5;j++)
{
x=0;
for (int i=0; i<strlen(frase);i++)
{
a=strchr(frase,c[j]);
a[0]='_';
if(a) x++;
}
printf("\n\n\El numero de %c es : %d",c[j],x) ;
}
printf("\n\n\INFO:Ingrese si para continuar: ");
gets(continuar);
strlwr(continuar);
}while (!strcmp(continuar,"si"));
printf("\n\t\t\t
***PROGRAMA TERMINADO***");
}
48
Programacin en C
Funcin atoi
Convierte una cadena de caracteres a entero.
Para el uso de esta funcin se requiere aadir la librera stdlib.h.
Funcin atol
Convierte una cadena de caracteres a long int.
Funcin atof
Convierte una cadena de caracteres a float.
49
Programacin en C
#include<string.h>
#include<stdio.h>
#include <stdlib.h>
void main()
{
int n;
char *num="12344";
n=atoi(num);
printf("%d",n);
long int m;
strcpy(num,"1234567890");
m=atol(num);
printf("\n%ld",m);
float f;
strcpy(num,"12.5");
f=atof(num);
printf(" \n%f",f);
}
50
Programacin en C
Funciones
Son subprogramas que cumplen un fin o propsito especfico, una funcin se conoce como caja
negra porque el programa principal no puede visualizar el cdigo de la funcin.
Elementos de la funcin
Una funcin costa de dos partes: la cabecera y el cuerpo de la funcin.
Tipos de funciones
#include <stdio.h>
#include <conio.h>
#include <string.h>
double suma(double a,double b);
double resta(double a,double b);
double prod(double a,double b);
double div(double a,double b);
void main(){
char *continuar;
double x,y;
do{
clrscr();
printf("Ingrese un nmero: ");
scanf("%lf",&x);
printf("Ingrese otro nmero:
scanf("%lf",&y);
");
51
Programacin en C
#include <stdio.h>
#include <conio.h>
#include <string.h>
double ingreso();
void mostrar(double x, double y);
double suma(double a,double b);
double resta(double a,double b);
double prod(double a,double b);
double div(double a,double b);
int salir();
void main(){
double x,y;
do{
x=ingreso();
y=ingreso();
mostrar(x,y);
}while (salir()==1);
printf("\n\t\t\t
***PROGRAMA TERMINADO***");
52
Programacin en C
#include <stdio.h>
#include <conio.h>
#include <string.h>
double ingreso(char *z,int opc);
int salir();
void imprimir(double a);
void main(){
double x,y;
do{
x=ingreso("x",1);
y=ingreso("y",0);
imprimir(x);
imprimir(y);
}while (salir()==1);
printf("\n\t\t\t
}
***PROGRAMA TERMINADO***");
",z);
",z);
return ing;
}
void imprimir(double a){
printf("\n%lf",a);
}
int salir(){
char *continuar;
printf("\n\n\INFO:Ingrese si para continuar: ");
scanf("%s",continuar);
strlwr(continuar);
if (!strcmp(continuar,"si")){
clrscr();
return 1;
}
else return 0;
}
53
Programacin en C
#include <stdio.h>
#include <conio.h>
#include <string.h>
int ingreso(char *z,int opc);
void imprimir(double a);
int par(int a);
void programa();
void main(){
programa();
}
void programa(){
int x;
do{
x=ingreso(" ",0);
if (x!=-1){
if (par(x)) printf("El numero ingresado es par.\n");
else printf("El numero ingresado es impar.\n");
}
}while(x!=-1);
printf("\n\t\t\t
***PROGRAMA TERMINADO***");
}
int ingreso(char *z,int opc){
int ing;
if (opc){
do{
printf("Ingrese un nmero para analizar, -1 para terminar%s : ",z);
scanf("%d",&ing);
}while(ing<=0);
}
else {
printf("Ingrese un nmero para analizar, -1 para terminar%s: ",z);
scanf("%d",&ing);
}
return ing;
}
void imprimir(double a){
printf("\n%lf",a);
}
int par(int a){
if(a%2==0) return 1;
else return 0;
}
54
Programacin en C
#include
#include
#include
#include
<stdio.h>
<conio.h>
<string.h>
<math.h>
int ingreso();
int salir();
int producto(int A,int B);
void imprimir(int R,int A,int B);
//void programa();
void main(){
int a,b,prod;
do{
a=ingreso();
b=ingreso();
prod=producto(a,b);
imprimir(prod,a,b);
}while (salir()==1);
printf("\n\t\t\t
***PROGRAMA TERMINADO***");
}
int ingreso(){
int ing;
printf("Ingrese un nmero:
");
scanf("%d",&ing);
return ing;
}
int salir(){
int continuar;
printf("\n\n\INFO:Ingrese 1 para continuar: ");
scanf("%d",&continuar);
clrscr();
return continuar;
}
int producto(int A,int B){
int r=0;
for (int i=0; i<abs(A);i++){
r+=abs(B);
}
if ((A>=0) && (B>=0)) return r;
else if ((A<0) && (B<0)) return r;
else return (-1*r);
}
void imprimir(int R,int A,int B){
printf("\nEl producto entre %d y %d es: \t%d",A,B,R);
}
55
Programacin en C
void main(){
int x,y;
do{
x=ingreso();
y=ingreso();
intercambio(&x,&y);
printf("x=%d y=%d",x,y);
}while (salir()==1);
printf("\n\t\t\t
***PROGRAMA TERMINADO***");
56
Programacin en C
}
int ingreso(){
int ing;
printf("Ingrese un nmero:
");
scanf("%d",&ing);
return ing;
}
void intercambio(int *a, int *b){
int aux;
aux=*a;
*a=*b;
*b=aux;
}
int salir(){
char *continuar;
printf("\n\n\INFO:Ingrese si para continuar: ");
scanf("%s",continuar);
strlwr(continuar);
if (!strcmp(continuar,"si")){clrscr(); return 1;}
else return 0;
}
");
57
Programacin en C
aux=*a;
*a=*b;
*b=aux;
}
void sumar(int a,int b,int *c){
*c=(a+b);
}
int salir(){
char *continuar;
printf("\n\n\INFO:Ingrese si para continuar: ");
scanf("%s",continuar);
strlwr(continuar);
if (!strcmp(continuar,"si"))
{clrscr();
return 1;
}
else return 0;
}
58
Programacin en C