Sunteți pe pagina 1din 59

PROGRAMACIN EN C

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

Elementos de la funcin .............................................................................................................................. 51


Tipos de funciones ....................................................................................................................................... 51
Arreglo como parmetro de una funcin .................................................................................................... 56
Envi de parmetros por valor y por direccin ........................................................................................... 56

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;

Estructura bsica de un programa en C


Archivos de cabecera: En esta seccin se encuentran las libreras que utilizar el programa.
Funciones: En el cdigo debe constar la funcin principal main, el programa primero
ejecutar las instrucciones que consten en la funcin main.
Comentarios: Los comentarios permiten al programador escribir algn texto que le facilite
la revisin del cdigo. Para comentar una lnea se escribe // antes del texto a comentar, para
comentarios de varias lneas se inicia con /* y termina con */.
En el siguiente ejemplo se muestra la estructura bsica.
// Ejemplo que muestra la estructura bsica de un programa en C
#include<stdio.h>

//Archivos de cabecera

voidmain(){
//instrucciones
}

//Funcin principal

En C las instrucciones terminan con un punto y coma (;) .

Entrada y salida de datos


Generalmente cada compilador trae consigo la biblioteca estndar de C, en la que se encuentra la
librera standard input-output que incluye funciones que permiten la entrada y salida de datos.
Para utilizar esta librera se debe aadir al inicio del cdigo la siguiente lnea:
#include<stdio.h>

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

Identificador de formato Tipo de dato


%d

Entero decimal

%o

El dato entero lo convierte a octal

%x

El dato entero lo convierte a


hexadecimal

%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);

Ejemplos de la funcin printf y scanf


#include <stdio.h>
voidmain(){
intnum;
printf("Ingrese un numero:");
scanf("%d",&num);
printf("\nEl numero que ingreso es: %d\n",num);
}

//Ingreso de dos numeros e imprimirlos


#include <stdio.h>
#include <conio.h>
void main()
{
int a;//Primer numero
int b;//Segundo numero
printf("Ingrese un numero: ");
scanf("%d",&a);
printf("Ingrese otro numero: ");
scanf("%d",&b);
printf("Primer numero: %d\n"
"Segundo numero: %d",a,b);
getch();
}

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

<=

Menor o igual que

a<=b

>=

Mayor o igual que

a>=b

==

Igual que

a==b

!=

Distinto de

a!=b

8
Programacin en C

Operadores condicionales, de asignacin, incremento y decremento


Operador

Descripcin

Uso

?:

Condicional

exprecion_c?expresion_ Si exprecion_c es verdadera


v:exprecion_f
entonces ejecuta la expresion_v,
sino ejecuta la exprecin_f

Asignacin

a=b

A la variable a se le asigna el valor


de b

++

Incremento

a++

a es usado y luego incrementado


en 1

--

Decremento

a--

a es usado y luego se le resta 1

Precedencia

Operadores

Asociatividad

()[] -> .

izq. a derecha

sizeof (tipo) ! ~ ++ -- signo* & derecha a izq.

*/%

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

Ejemplo de programacin con operadores

//Ingreso de dos numeros, operarlos e imprimirlos


#include <stdio.h>
#include <conio.h>
void main()
{
int a;//Primer numero
int b;//Segundo numero
int c;//Suma de a y b
int d;//Resta
int e;//Multiplicacion
int f;//Division
int g;//Residuo
printf("Ingrese un numero:
");
scanf("%d",&a);
printf("Ingrese otro numero: ");
scanf("%d",&b);
c=a+b;
d=a-b;
e=a*b;
f=a/b;
g=a%b;
printf("Primer numero:
%d\n",a);
printf("Segundo numero:
%d\n",b);
printf("La suma de %d y %d:
%d\n",a,b,c);
printf("La resta de %d y %d:
%d\n",a,b,d);
printf("La multiplicacion de %d y %d: %d\n",a,b,e);
printf("La division de %d y %d:
%d\n",a,b,f);
printf("El residuo entre %d y %d:
%d\n",a,b,g);
}

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

Ejemplos de la sentencia IF ELSE

/*
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");

printf("Elija la operacion a realizar: ");


scanf("%d",&c);

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

Ejemplos de ciclos de repeticin


#include <stdio.h>
void main()
{
longinta,b,c;
printf("
Contar cifras de un numero entero"
"\n\nIngrese un numero: ");
scanf("%ld",&a);
b=a;
c=0;
do
{
a/=10;
c++;
}while(a!=0);
printf("\nEl numero de cifras de %ld es %ld",b,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

Ciclo de Repeticin FOR


Es un bucle donde el nmero de repeticiones son conocidas de antemano.
NO VALE CON VARIABLES DE COMA FLOTANTE COMO FLOAT Y DOUBLE:
ESTRUCTURA:
for(inicio;condicion; incremento)
{
}

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

Para condicionar de forma and, el operador && , reemplaza las comas:


#include<stdio.h>
void main(){
inti,j;
for(i=0,j=1;i<3&&j<10;i++,j++)
printf("%d
%d\n",i,j);
}

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

Suma de nmeros en posiciones cuyos subndices son pares e impares

#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);

printf("\n\nIngrese 1 para continuar(Otro valor para salir):");


scanf("%d",&continuar);
}while(continuar==1);
printf("\n\tPROGRAMA TERMINADO");
}

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);

printf("\n\nIngrese 1 para continuar(Otro valor para salir):");


scanf("%d",&continuar);
}while(continuar==1);
printf("\n\tPROGRAMA TERMINADO");
}

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

/*tiene 3 empleados y necesita hacer el registro de ventas mensuales de


cada uno de los empleados,
ingresar las ventas de cada mensuales de cada uno, sacar la mayor venta
y la menor de cada uno
la venta total de cada emp,
venta total(ingreso), cual tuvo mayor cantidad de venta, quien vendio
menos, promedio total de ventas
venta del mes >500 comision 30%*/
#include<stdio.h>
#include <conio.h>
void main(){
intcontinuar,i,j,VM,Vm,MesM[3],Mesm[3];
charEmp[3]={'A','B','C'};
double A[12], B[12], C[12],M[3],m[3],V[3],Com[3],VT,p;
do{
clrscr();
for( i=0; i<12; i++){
do{
printf("Ingrese la venta de A en el mes %d: ",i+1);
scanf("%lf",&A[i]);
if(A[i]<0)printf("\nError de Ingreso\n");
}while(A[i]<0);
}
clrscr();
for( i=0; i<12; i++){
do{
printf("Ingrese la venta de B en el mes %d: ",i+1);
scanf("%lf",&B[i]);
if(B[i]<0)printf("\nError de Ingreso\n");
}while(B[i]<0);
}
clrscr();
for( i=0; i<12; i++){
do{
printf("Ingrese la venta de C en el mes %d: ",i+1);
scanf("%lf",&C[i]);
if(C[i]<0)printf("\nError de Ingreso\n");
}while(C[i]<0);
}
m[0]=A[0];
m[1]=B[0];
m[2]=C[0];
//Continua en la pgina siguiente

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

Encontrar los errores en el siguiente cdigo:


#include <stdio.h>
void main(){
inta,b,*p,**q,*z;
double s,*w,**t,***u;
a=8;
s=8.2;
b=3;
p=&b;
z=&a;
q=&p;
*q=&a;
z=p;
//w=&b; //incompatibilidad de datos
w=&s;
t=&w;
u=&t;
// *u=*t + *w;
//no se pueden sumar direcciones
printf("%d\n%lf\n",a,s);
printf("%d\n%p\n %p\n",*p,*t,**u);
***u=(*p)+5;
**q=(**q)+2;
printf("%lf %d",***u,**q);
}

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

Ingresa dato y devuelve dato.


No ingresa datos y no devuelve dato.
No ingresa datos y si devuelve un dato.
Ingresa dato y no devuelve dato.

#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);

");

printf("El resultado de la suma es: %lf",suma(x,y));


printf("\nEl resultado de la resta es: %lf",resta(x,y));
printf("\nEl resultado de la multiplicacin es: %lf",prod(x,y));
if (y!=0)
printf("\nEl resultado de la divisin es: %lf",div(x,y));
else printf(" \n!!Error matematico. No se puede efectuar la divisin.");
printf("\n\n\INFO:Ingrese si para continuar: ");
scanf("%s",continuar);
strlwr(continuar);
}while (!strcmp(continuar,"si"));
printf("\n\t\t\t
***PROGRAMA TERMINADO***");
}
double suma(double a,double b){
return (a+b);
}
double resta(double a,double b){
return (a-b);
}
double prod(double a,double b){
return (a*b);
}
double div(double a,double b){
return (a/b);
}

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***");

void mostrar(double x, double y){


printf("El resultado de la suma es: %lf",suma(x,y));
printf("\nEl resultado de la resta es: %lf",resta(x,y));
printf("\nEl resultado de la multiplicacin es: %lf",prod(x,y));
if (y!=0)
printf("\nEl resultado de la divisin es: %lf",div(x,y));
else printf(" \n!!Error matematico. No se puede efectuar la divisin.");
}
double suma(double a,double b){
return (a+b);
}
double resta(double a,double b){
return (a-b);
}
double prod(double a,double b){
return (a*b);
}
double div(double a,double b){
return (a/b);
}
double ingreso(){
double ing;
clrscr();
printf("Ingrese un nmero: ");
scanf("%lf",&ing);
clrscr();
return ing;
}
int salir(){
char *continuar;
printf("\n\n\INFO:Ingrese si para continuar: ");
scanf("%s",continuar);
strlwr(continuar);
if (!strcmp(continuar,"si")) return 1;
else return 0;
}

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***");

double ingreso(char *z,int opc){


double ing;
if (opc){
do{
printf("Ingrese un nmero para %s:
scanf("%lf",&ing);
}while(ing<=0);
}
else {
printf("Ingrese un nmero para %s:
scanf("%lf",&ing);
}

",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

Arreglo como parmetro de una funcin


void ordenar(int B[4])
void main (){
int A[4];
ordenar(A);
}

Envi de parmetros por valor y por direccin


Ingreso por valor:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int ingreso();
int salir();
void intercambio(int *a, int *b);

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;
}

Ingreso por direccin:


#include <stdio.h>
#include <conio.h>
#include <string.h>
void ingreso(int *a);
int salir();
void intercambio(int *a, int *b);
void sumar(int a, int b, int *c);
void main(){
int x,y,R;
do{
ingreso(&x);
ingreso(&y);
printf("\nANTES DEL CAMBIO: x=%d
y=%d",x,y);
intercambio(&x,&y);
printf("\nDESPUES DEL CAMBIO:
x=%d
y=%d",x,y);
sumar(x,y,&R);
printf("\nLa suma es:
%d",R);
}while (salir()==1);
printf("\n\t\t\t
***PROGRAMA TERMINADO***");
}
void ingreso(int *a){
printf("Ingrese un nmero:
scanf("%d",&(*a));
}

");

void intercambio(int *a, int *b){


int aux;

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

S-ar putea să vă placă și