Sunteți pe pagina 1din 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa

Departamento de Electricidad, Electrnica y Computacin - Programacin I


Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

Ej-C04-01.c
/*
Ejemplo 1: Funcin Suma de binarios. Controlar el ingreso de datos
*/
#include <stdio.h>
int controlBinario(int num);
int sumaBinarios(int , int);
int main(int argc, char *argv[])
{
int b1, b2;
do {
printf("\n Ingresar 1er. binario: ");
scanf("%d", &b1);
}while (controlBinario(b1) == 1);
do{
printf(" Ingresar 2do. binario: ");
scanf("%d", &b2);
}while (controlBinario(b2) == 1);
printf("La suma binaria de %5d + %5d",b1, b2);
printf(" es: %d", sumaBinarios(b1,b2));
printf("\n\n");
return 0;
}
int controlBinario(int num)
{
int ban = 1;
while (num >0)
{
if ((num % 10 == 0) || (num % 10 == 1))
UNT FACEyT DEEC- Programacin I Ao 2014
Ing. Jorge Steifensand

Pg. 1 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

ban = 0;
else
{
ban = 1;
break;
}
num = num /10;
}
return ban;
}
int sumaBinarios(int bin1, int bin2)
{
int suma = 0, ac = 0;
int p = 1, sp;
while ((bin1!=0)||(bin2 != 0))
{
sp = bin1 % 10 + bin2 % 10 + ac;
suma = suma + (sp % 2) * p;
ac = sp / 2;
p = p *10;
bin1 = bin1 / 10;
bin2 = bin2 / 10;
}
suma = suma + ac * p;
return suma;
}

Ej-C04-02.c
/*
Ejemplo 2: Efectuar la suma de dos nmeros en base b. Controlar el ingreso de datos
*/
#include <stdio.h>

UNT FACEyT DEEC- Programacin I Ao 2014


Ing. Jorge Steifensand

Pg. 2 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

int controlDigitos(int, int);


int sumaBaseB(int, int, int);
int main(int argc, char *argv[])
{
int x1, x2, base;
do {
printf("\n Ingresar base de numeracion (<=10): ");
scanf("%d", &base);
}while ( (base > 10) || (base < 2));
do {
printf("\n Ingresar 1er. valor: ");
scanf("%d", &x1);
}while (controlDigitos(x1, base) == 1);
do{
printf(" Ingresar 2do. valor: ");
scanf("%d", &x2);
}while (controlDigitos(x2, base) == 1);
printf("La suma en base %3d de %5d + %5d",base, x1, x2);
printf(" es: %d", sumaBaseB(x1, x2, base));
printf("\n\n");
return 0;
}
int controlDigitos(int num, int base)
{
int ban = 1;
while (num >0)
{
if ((num % 10 < base))
ban = 0;
UNT FACEyT DEEC- Programacin I Ao 2014
Ing. Jorge Steifensand

Pg. 3 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

else
{
ban = 1;
break;
}
num = num /10;
}
return ban;
}
int sumaBaseB(int num1, int num2, int base)
{
int suma = 0, ac = 0;
int p = 1, sp;
while ((num1!=0)||(num2 != 0))
{
sp = num1 % 10 + num2 % 10 + ac;
suma = suma + (sp % base) * p;
ac = sp / base;
p = p *10;
num1 = num1 / 10;
num2 = num2 / 10;
}
suma = suma + ac * p;
return suma;
}

Ej-C04-03.c
/*
Ejemplo 3: Variables automticas
*/
#include <stdio.h>

UNT FACEyT DEEC- Programacin I Ao 2014


Ing. Jorge Steifensand

Pg. 4 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

void varAuto();
int main(int argc, char *argv[])
{
float auto1;
auto int
auto2;
printf("\n\n\t***************** En la funcion main()*************");
printf("\n Automatica por defecto (auto1): %5.2f",auto1);
printf("\n Automatica declarada (auto2): %5d",auto2);
varAuto();
printf("\n\n\t***************** En la funcion main()*************");
printf("\n Automatica por defecto (auto1): %5.2f",auto1++);
printf("\n Automatica declarada (auto2): %5d",auto2++);
varAuto();
printf("\n\n\t***************** En la funcion main()*************");
printf("\n Automatica por defecto (auto1): %5.2f",++auto1);
printf("\n Automatica declarada (auto2): %5d",++auto2);
printf("\n\n");
return 0;
}
void varAuto()
{
float var1, var2 = 2.2;
auto int
auto1, auto2 = 3;
printf("\n\n\t***************** Inicio en la funcion varAuto()*************");
printf("\n Automaticas por defecto (var1 y var2): %5.2f %5.2f", var1, var2);
printf("\n Automaticas declaradas (auto1 y auto2): %5d %5d", auto1, auto2);

UNT FACEyT DEEC- Programacin I Ao 2014


Ing. Jorge Steifensand

Pg. 5 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

++var1, ++var2;
++auto1, ++auto2;
printf("\n\n\t***************** Final en la funcion varAuto()*************");
printf("\n Automaticas por defecto (var1 y var2): %5.2f %5.2f", var1, var2);
printf("\n Automaticas declaradas (auto1 y auto2): %5d %5d", auto1, auto2);
return;
}

Ej-C04-04.c
/*
Ejemplo 4: Variables estticas
*/
#include <stdio.h>
void varStatic();
int main(int argc, char *argv[])
{
static int estatica;
printf("\n Variable estatica de la funcion main(): %5d", estatica);
varStatic();
printf("\n Variable estatica de funcion main(): %5d ", estatica++);
printf("\n\n");
varStatic();
printf("\n Variable estatica de funcion main(): %5d ", ++estatica);
printf("\n\n");
UNT FACEyT DEEC- Programacin I Ao 2014
Ing. Jorge Steifensand

Pg. 6 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

return 0;
}
void varStatic()
{
static int estatica1, estatica2 = 4;
printf("\n\t***************** En la funcion varStatic() ********");
printf("\n\n Estatica 1: %5d",estatica1);
printf("\n Estatica 2: %5d", estatica2);
++estatica1, ++estatica2;
return;
}

Ej-C04-05.c
/*
Ejemplo 5: Variables estticas. Nmero compuesto
*/
#include <stdio.h>
long int nroComp(int);
int main(int argc, char* argv[])
{
long int nro;
int x, n, c = 1;
do
{
printf("\n Cantidad de numeros a ingresar: ");
scanf("%d", &n);
} while (n<=0);
for( ; c<=n ; c++)
{
UNT FACEyT DEEC- Programacin I Ao 2014
Ing. Jorge Steifensand

Pg. 7 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

do
{
printf("\n ingresar x : ");
scanf("%d", &x);
} while (x<0);
nro = nroComp(x);
}
printf("\n %ld", nro);
printf("\n\n");
return 0;
}
long int nroComp(int x)
{
static int nro;
int pot10 = 1, aux;
aux = x;
if( x == 0 )
pot10 = 10;
while (aux >0)
{
aux = aux / 10;
pot10 = pot10 * 10;
}
nro = nro * pot10 + x;
return nro;
}

UNT FACEyT DEEC- Programacin I Ao 2014


Ing. Jorge Steifensand

Pg. 8 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

Ej-C04-06.c
/*
Ejemplo 6: Variables register
*/
#include <stdio.h>
void varRegister();
int main(int argc, char *argv[])
{
register int registro;
printf("\n Ingresar un entero: ");
scanf("%d", &registro);
printf("\nEntero: %d", registro);
printf("\n Direccion de la variable registro: %p", &registro);
varRegister();
varRegister();
printf("\n\n");
return 0;
}
void varRegister()
{
register int reg1, reg2 = 2;
printf("\n\t*********Valores en la funcion varRegister() ********");
printf("\n reg1: %d , reg2 = %d", reg1, reg2);
reg1++ , reg2++;

UNT FACEyT DEEC- Programacin I Ao 2014


Ing. Jorge Steifensand

Pg. 9 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

return;
}

Ej-C04-07.c
/*
Ejemplo 7: Funcin recursiva: Producto
*/
#include <stdio.h>
float prod(float, int);
int main(int argc, char* argv[])
{
float x = 5.1;
int
n = 3;
printf("\n %5.2f * %i = %5.2f", x, n, prod(x, n));
printf("\n\n");
return 0;
}
float prod (float x, int n)
{
float pro;
if (n == 0)
return 0;
else
pro = x + prod( x , n - 1 );
//pro = x + prod ( x, --n );
// pro = x + prod ( x , n-- );
return pro;
}

UNT FACEyT DEEC- Programacin I Ao 2014


Ing. Jorge Steifensand

Pg. 10 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

Ej-C04-08.c
/*
Ejemplo 8: Funcin recursiva: Factorial
*/
#include <stdio.h>
int factorial(int);
int main(int argc, char* argv[])
{
int x = 3;
printf("\n %i ! = %d", x, factorial(x));
printf("\n\n");
return 0;
}
int factorial (int x)
{
int fact;
if (x == 0)
return 1;
else
fact = x * factorial(x-1);
return fact;
}

Ej-C04-09.c
/*
Ejemplo 9: Funcin recursiva: Fibonacci
*/
#include <stdio.h>
UNT FACEyT DEEC- Programacin I Ao 2014
Ing. Jorge Steifensand

Pg. 11 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

int fibonacci(int n );
int main(int argc, char *argv[])
{
int fibo;
int nTermin;
printf( "Introduzca el termino de Fibonacci que necesite: " );
scanf( "%d", &nTermin);
fibo = fibonacci( nTermin );
printf( "\nTermino Nro. %d de Fibonacci = %d\n", nTermin, fibo );
printf("\n\n");
return 0;
}
int fibonacci( int n )
{
if ( n == 0 || n == 1 )
return n;
else
return fibonacci( n - 1 ) + fibonacci( n - 2 );
}

Ej-C04-10.c
/*
Ejemplo 10: Funcin recursiva
*/
#include <stdio.h>
void funcRecurs(char car);
int main(int argc, char *argv[])
UNT FACEyT DEEC- Programacin I Ao 2014
Ing. Jorge Steifensand

Pg. 12 de 13

Universidad Nacional de Tucumn - Facultad de Ciencias Exactas y Tecnologa


Departamento de Electricidad, Electrnica y Computacin - Programacin I
Ao 2014
Cdigos de los ejemplos dados en la clase del da 03 de abril

{
funcRecurs('D');
printf("\n\n");
return 0;
}
void funcRecurs(char car)
{
if (car > 'A')
funcRecurs(car-1);
printf("%3c",car);
return;
}

Ej-C04-11.c
/*
Ejemplo 11: Argumentos de la funcin main()
*/
#include <stdio.h>
int main(int argc, char *argv[])
{
printf( "\n La cantidad de parametros recibidos es: %d ", argc );
printf( "\n El nombre del programa es: %s",argv[0] );
printf( "\n El ultimo parametro es : %s", argv[argc-1]);
printf("\n\n");
return 0;
}

UNT FACEyT DEEC- Programacin I Ao 2014


Ing. Jorge Steifensand

Pg. 13 de 13

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