Está en la página 1de 73

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

CENTRO REGIONAL DE CHIRIQUÍ


FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES

CARRERA:
Licenciatura en Ingeniería de Sistemas y Computación

ACTIVIDAD
Portafolio

ASIGNATURA:
Herramientas de Programación

DOCENTE:
Cecilia González

ESTUDIANTE:
Adrian Concepcion

II SEMESTRE 2020

FECHA
20/11/2022
Indice

Actividades

1. Navegar en el editor del lenguaje C


2. Desarrollo de Problemas
3. Ciclos de repetición
4. Funciones definidas por el usuario
5. Resumen de funciones
6. Bonificación
7. Archivos
8. Juego de la vida

Parciales

1. Parcial 1
2. Parcial 2
3. Parcial 3 (Teórico)
4. Parcial 3 (Practico)

Consideraciones finales
Actividades

Navegar en el editor del lenguaje C


#include<stdio.h>

int main()
{
    printf("hola mundo");
    getchar();
    return 0;
}
Desarrollo de Problemas

Actividad 1

Utilizando las estructuras de alternativas, desarrolle el código correspondiente en


lenguaje C, para cada problema que se le presenta. Recuerde seguir las reglas para la
escritura de las estructuras de control, reglas y recomendaciones para darle nombre
adecuado a las áreas de memoria e indentación.

1. Lea el nombre y la edad de cualquier persona e imprima, sólo si la persona es mayor


de edad, el nombre de la persona.

#include <stdio.h>
main ()
{
int edad;
char nombre[20];
printf ("Ingrese su nombre\n\t");
scanf("%[^\n]",&nombre);
printf ("\n Ingrese su edad\n\t");
scanf("%d",&edad);
if (edad>=18)
{
printf("\t%s",nombre);
}
return 0;
}
2. Lea el nombre y la edad de cualquier persona e imprima, sólo si la persona es mayor
de edad, el nombre de la persona, de lo contrario, imprima un mensaje que diga: “no
puede votar”

#include <stdio.h>
main()
{
int edad;
char nombre[20];
printf ("Ingrese su nombre\n");
scanf("%s",&nombre);
printf ("Ingrese su edad\n");
scanf("%d",&edad);

if (edad>=18){

printf("El nombre es:%s",nombre);


}
else {

printf("\t\nNo puede votar");


}
return 0;
}

3. Lea el nombre, la edad y el sexo de cualquier persona e imprima, sólo si la persona


es de sexo masculino y mayor de edad, el nombre de la persona.
#include <stdio.h>
#include<stdlib.h>
#include<locale.h>
int main()
{
setlocale (LC_ALL, "");
char nombre [20];
int edad, sexo;
printf ("Introduzca su nombre:\n\t");
scanf ("%s",&nombre);
printf ("Introduzca su edad:\n\t");
scanf ("%d",&edad);
printf("Indique su sexo si 1=Masculino\n2=Femenino:\n\t");
scanf("%d", &sexo);
if (edad>=18 && sexo==1)
{
printf ("Su nombre es:%s",nombre);
}

}
4. Lea el nombre, la edad, el sexo (1 ó 2) y el estado civil de cualquier persona e
imprima sólo si la persona es un hombre soltero mayor de edad, el nombre de la
persona.
#include<stdio.h> /*problema*/
#include<stdlib.h>
#include<locale.h>
int main()
{
setlocale (LC_ALL, "");
char nombre[25];
int edad, sexo, estCvl;
printf ("Introduzca su nombre:\t");
scanf(" %[^\n]", &nombre);
printf ("\nIntroduzca su edad:\t");
scanf ("%d",&edad);
printf("\nIndique su sexo si \n1=Masculino\n2=Femenino:\n\t");
scanf ("%d",&sexo);
printf("\nIndique su estado civil si \n1=Soltero\n2=Casado\
n3=Otro:\n\t");
scanf ("%d",&estCvl);

if (edad>=18 && sexo==1 && estCvl==1){

printf ("\nEl nombre es:\t%s",nombre);


}
return 0;
}
5. Lea el nombre, la edad, el sexo (F o M) y el estado civil (C: casado, S: soltero, D:
divorciado, U: unido y V: viudo) de cualquier persona e imprima, sólo si la persona
es hombre o mujer menor de edad o es hombre casado de cualquier edad, el nombre
de la persona y un mensaje que diga “usted es un hombre casado”. En los demás
casos imprima el nombre de la persona solamente.
#include <stdio.h>
#include<stdlib.h>
#include<locale.h>
int main()
{
setlocale (LC_ALL, "");
int edad;
char nombre[25], sexo, estcvl;
printf ("Ingrese su nombre:\t");
scanf("%s",&nombre);
printf ("\nIngrese su edad:\t");
scanf("%d",&edad);
printf ("\n Ingrese su sexo si m=masculino y f=femenino:\t");
scanf("%s",&sexo);
printf ("\n Ingrese su estado civil:\t\n");
printf("S=Soltero\nC=Casado\nD=Divorciado\nU=Unido\n");
scanf(" %c",&estcvl);
if ( edad>=18 && sexo=='m' && estcvl == 'C' )
printf ("\nUsted es un hombre casado");

else printf("Nombre:%s",nombre);
return 0;
}

6. Lea un número e imprima el número y el cuadrado de este.


#include <stdio.h>
int main()

{
int num1,cuadrado;
printf ("Introduzca un valor:\t");
scanf ("%d",&num1);

cuadrado= num1*num1;

printf("\nEl cuadrado de %d\t",num1);


printf("es %d\t",cuadrado);
return 0;
}

7. Lea un número y calcule e imprima su raíz cuadrada. Si el número es negativo


imprima el número y un mensaje que diga: “tiene raíz imaginaria”.
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main ()
{
setlocale (LC_ALL, "");
int num, raNum;

printf ("Ingrese un número: \n");


scanf(" %d", &num);
raNum = sqrt (num);
if (num > 0)
{
printf ("La raíz cuadrada es: %d", raNum);
}
else
printf("Tiene raíz imaginaria");
}

8. Lea dos números e imprima sólo los positivos.


#include <stdio.h>

int main ()
{

int num1, num2;


printf (" Ingrese un numero:\t");
scanf(" %d",&num1);
printf (" Ingrese un numero:\t");
scanf(" %d",&num2);
if (num1>0)
printf ("\t %d",num1);
if (num2>0)
printf ("\n\t %d",num2);

return 0;
}

9. Lea dos números e imprima ambos números sólo si son positivos.


#include <stdio.h> /*9*/
int main ()
{

int num1, num2;


printf ("\n Ingrese un numero:\t");
scanf(" %d",&num1);
printf ("\n Ingrese un numero:\t");
scanf(" %d",&num2);
if (num1>0 && num2>0)
{

printf ("%d\n",num1);
printf ("%d\n",num2);
}
return 0;
}

10. Lea dos números e imprima ambos números si por lo menos uno de ellos es
positivo.

#include <stdio.h> /*10*/

int main ()
{
int num1, num2;
printf ("\n Ingrese un numero:\t");
scanf(" %d",&num1);
printf ("\n Ingrese un numero:\t");
scanf(" %d",&num2);
if (num1>0 || num2>0)
{
printf ("%d\n",num1);
printf ("%d\n",num2);
}
return 0;
}

11. Lea dos números e imprima ambos números sólo si son de diferente signo y
distintos de cero.
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main ()
{
int num1, num2;
setlocale (LC_ALL,"");
printf ("\tIngrese sus números\n");
scanf("%d", &num1);
scanf("%d", &num2);
if (num1 > 0 && num2 < 0 && num2 != 0 && num1 !=0)
{
printf ("Los números son de diferente signo y distintos de cero.\t\n");
printf ("\t%d \n", num1);
printf(" \t%d \n", num2);
}
}

12. Lea dos números y calcule la suma de los números. Imprima los números leídos y
sólo si la suma es negativa, imprímala también.
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main ()
{
int num1, num2,suma;
setlocale (LC_ALL,"");
printf ("Ingrese sus números");
scanf(" %d\t", &num1);
scanf(" %d", &num2);
suma= num1+ num2;
if (suma < 0)
{
printf ("\tLa suma negativa es:%d\n",suma);
printf ("\t%d \n", num1);
printf(" \t%d \n", num2);
}
}

13. Lea dos números y calcule el cociente de dividir el primero por el segundo. Imprima
el cociente. Si el segundo número es cero, no ejecute el cálculo e imprima un
mensaje que diga: “La división no es posible”.
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main ()
{

setlocale (LC_ALL,"");
int num1, num2,div;
printf ("Ingrese un número\n");
scanf(" %d",&num1);
printf ("Ingrese un número\n");
scanf(" %d",&num2);

if (num2==0){
printf("\n\t La divisón no es posible");
}
else {
div= num1/num2;
printf ("\t La divsión es:%d\n",div);
printf ("\t%d \n", num1);
printf(" \t%d \n", num2);

}
return 0;
}
14. Leer el nombre de un empleado, su salario básico por hora y el número de horas
trabajadas en el mes. Calcular su salario mensual e imprimir tanto el nombre como
su salario mensual.
#include <stdio.h>
#include <locale.h>
#include <math.h>
int main ()
{

setlocale (LC_ALL,"");
char nombre[25];
int salhora,salariomes, horastrb; /*Salariomes es salario mensual,Salhora =
salario por hora y horatrb es horas trabajadas*/
printf ("Indique su nombre:\t");
scanf (" %s",&nombre);
printf ("\nIndique su salario por horas trabajadas:\t");
scanf (" %d",&salhora);
printf ("\nIndique su salario mensual:\t");
scanf (" %d",&salariomes);
printf ("\nIndique el número de horas trabajadas:\t");
scanf (" %d",&horastrb);

salariomes= salhora*horastrb;

printf("Su nombre es: \t%s",nombre);

printf("\nSu salario es:\t%d",salariomes);


return 0;
}
15. Leer el nombre de un empleado, su salario básico por hora, el número de horas
trabajadas en el período y un porcentaje de descuento. Calcular el salario bruto, el
valor de descuento y su salario neto.
#include <stdio.h> /*Problema 15*/
#include <locale.h>
#include <math.h>
int main ()
{
setlocale (LC_ALL,"");
char nombre[25];
int salbas,numhora,porcdesc,salneto,salbruto;
float valdesc;
printf("Introduzca su nombre\t");
scanf(" %s",&nombre);
printf("\n Introduzca su salario básico:\t");
scanf(" %d",&salbas);
printf("\n Introduzca el numero de horas trabajdas:\t");
scanf(" %d",&numhora);
printf("\n Introduzca el porcentaje de descuento:\t");
scanf(" %d",&porcdesc);
salbruto= salbas*numhora;
valdesc= (porcdesc*salbruto)/100;
salneto= salbruto-valdesc;
printf("Su salario bruto es:\t %d",salbruto);
printf("\nSu salario neto es:\t %d",salneto);
printf("\nSu valor de descuento es:\t %f",valdesc);

return 0;
16. Para un salario bruto hasta de $1500, no hay descuento. Para un salario bruto de
$1500 a $3000 el porcentaje de descuento es de 5%. Para un salario bruto mayor de
$3000 el porcentaje de descuento es de 8%. Imprimir el nombre del empleado, el
salario bruto, el valor del descuento y el salario neto. Se debe leer el nombre y el
salario.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>
int main ()
{
char nombre [25];
int salB, descuento, salNeto;
setlocale (LC_ALL,"");
printf("Ingrese su Nombre: \n");
scanf(" %[^\n]", &nombre);
printf ("Ingrese su Salario Bruto: \n");
scanf(" %d", &salB);
if (salB <= 1500)
{
descuento=(salB*0);
salNeto=(salB-descuento);
printf ("Nombre: %s \n", nombre);
printf ("Su salario Bruto es de %d \n", salB);
printf ("No hay Descuento\n");
printf ("Su salario Neto es de %d \n", salNeto);

}
else if (salB > 1500 && salB < 3000)
{
descuento=(salB*0.05);
salNeto=(salB-descuento);
printf ("Nombre: %s \n", nombre);

printf ("Su salario Bruto es de %d \n", salB);


printf ("El valor del Descuento de 5 \n");
printf ("Su salario Neto es de %d \n", salNeto);
}

else if (salB >= 3000)


{
descuento=(salB*0.08);
salNeto=(salB-descuento);
printf ("Nombre: %s \n", nombre);

printf ("Su salario Bruto es de %d \n", salB);


printf ("El valor del Descuento de 8 \n");
printf ("Su salario Neto es de %d \n", salNeto);
}
}

17. Leer de un registro el nombre de un empleado, el salario básico por hora y el


número de horas trabajadas durante la semana. Calcular el salario neto semanal,
teniendo en cuenta que, si el número de horas trabajadas durante la semana es
mayor de 48, esas horas de más se consideran horas extras y tienen un 35% de
recargo. Imprima el nombre del empleado y el salario neto.

#include <stdio.h>
#include<stdlib.h>
#include<locale.h>
#include <math.h>
#define tr 0.35
int main()
{
setlocale (LC_ALL, "");
float sB,ht,sNeto,salExtra,hExtra; //sb = salario por hora, ht hora trabajadas
// sNeto, salario neto, sal extra
sala por hora extra
//hExtra hora extra
char nombre[25];
printf("Introduzca su nombre\t");
scanf ("%s",&nombre);
printf("\nIntroduzca su salario por hora\t");
scanf ("%f",&sB);
printf("\nIntroduzca sus horas trabajdas\t");
scanf ("%f",&ht);
if (ht>48){
hExtra= ht-48;
salExtra= sB+sB*tr;
sNeto= (48*sB)+(salExtra*hExtra);
}
else {
sNeto= sB*ht;
}
printf("\nSu nombre es:%s\t",nombre);
printf("\nSu salario neto es: %f \t",sNeto);
}

18. Elaborar un programa para resolver una ecuación de segundo grado ax2 + bx + c = 0
#include <stdio.h>
#include<stdlib.h>
#include<locale.h>
#include <math.h>
int main()
{
setlocale (LC_ALL, "");
float a, b, c,d,y,x1,x2;
printf ("Ingrese un valor para a:\t");
scanf("%f",&a);
printf ("\nIngrese un valor para b:\t");
scanf("%f",&b);
printf ("\nIngrese un valor para c:\t");
scanf(" %f",&c);
d= ((b*b)-4*a*c);
if (a>0)
{
printf ("Las raices so imaginarias\n ");
}
y= sqrt ((b*b)-4*a*c);
x1= (-b+y)/(2*a);
x2= (-b-y)/(2*a);
printf ("Las raices de las funciones son %.2f y %.2f \n",x1,x2);
return 0;
} return 0;
}
}
19. Una empresa tiene una promoción para el pago de salarios a sus empleados. Si la
parte decimal de su salario (centavos) es mayor que 50, se le añade un (1) balboa a
la parte entera, de lo contrario, no se añade nada. Leer el salario e imprimir tanto el
salario leído como el nuevo salario.
#include <stdio.h>
#include<stdlib.h>
#include<locale.h>
#include <math.h>
int main(void)
{
setlocale (LC_ALL, "");
float numero;
printf("Introduzca el número\t");
scanf ("%f",&numero);
int parteEntera= (int)numero;
float parteDecimal= numero- parteEntera;
if (parteDecimal>0.5){
numero=numero+1;
printf("\nUstec gana:%f\t",numero);
}
else {
printf ("usted gana:%f",numero);
}
}
20. Se desea escribir un programa que pida la altura de una persona, si la altura es
menor o igual a 150cm envíe el mensaje: “Persona de estatura baja”; si la altura
está entre 151 y 170 escriba el mensaje: “Persona de estatura media” y si la
altura es mayor al 170 escriba el mensaje: “Persona de estatura alta”.
#include<stdlib.h> /*problema 20*/
#include<locale.h>
#include <math.h>
int main()
{
setlocale (LC_ALL, "");
int altura;
printf ("Introduzca su altura:\t");
scanf ("%d",&altura);
if (altura<=150)
{
printf ("\n\t Persona de estura baja");
}
if (altura>=151 && altura<=170)
{
printf ("\n\t Persona de estura media");
}
if (altura>170)
{
printf ("\n\t Persona de estura alta");
}
return 0;
}
21. Se desea escribir un programa que pida la altura de una persona, si la altura es
menor o igual a 150cm envíe el mensaje: “Persona de estatura baja”; si la altura está
entre 151 y 170 escriba el mensaje: “Persona de estatura media” y si la altura es
mayor al 170 escriba el mensaje: “Persona de estatura alta”.

#include<stdlib.h> /*problema 20*/


#include<locale.h>
#include <math.h>
int main()
{
setlocale (LC_ALL, "");
int altura;
printf ("Introduzca su altura:\t");
scanf ("%d",&altura);

if (altura<=1.50)

{
printf ("\n\t Persona de estura baja");

if (altura>=1.51 && altura<=170)

{
printf ("\n\t Persona de estura media");

if (altura>1.70)

{
printf ("\n\t Persona de estura alta");

return 0;
}

22. Leer tres números e imprimirlos en este orden: menor, intermedio, mayor
#include <math.h> /*21*/
#include <stdio.h>
#include <stdlib.h>
/* Programa para ordenar tres valores proporcionados */

main()
{

int a,b,c;
printf ("Introduzca el primer valor:\t ");
scanf ("%d",&a);
printf ("\n Introduzca el segundo valor:\t ");
scanf ("%d",&b);
printf ("\n Introduzca el tercer valor:\t ");
scanf (" %d",&c);

if(a<b)
{
if (a<c)
{
if (b<c)
{
printf("Los valores ordenados de menor a mayor son: %d %d %d\n\n", a,b,c);
}
else
{
printf("Los valores ordenados de menor a mayor son: %d %d %d\n\n", a,c,b);
}
}
else
{
printf("Los valores ordenados de menor a mayor son: %d %d %d\n\n", c,a,b);
}
}
else
{
if (a<c)
{
printf("Los valores ordenados de menor a mayor son: %d %d %d\n\n", b,a,c);
}
else
{if (c<b)
{
printf("Los valores ordenados de menor a mayor son: %d %d %d\n\n", c,b,a);
}
else
{
printf("Los valores ordenados de menor a mayor son: %d %d %d\n\n", b,c,a);
}
}
}

system("pause");

}
23. Leer un número flotante, equivalente a un monto de dinero. Imprimir cuántos
billetes y monedas representa. Por ejemplo: si el valor es 548.89, debe imprimirse:

#include <stdio.h>

int main()
{
int b20, b10, b1, b5, euros;
float m50, m25,m10,m5,m1;

printf( "\n Introduzca cantidad entera (euros): " );


scanf( "%d", &euros );

if ( euros > 0 )
{
/* Billetes de 20 */
if ( euros >= 20 )
{
b20 = euros / 20;
euros %= 20;
}
else
b20 = 0;

/* Billetes de 10 */
if ( euros >= 10 )
{
b10 = euros / 10;
euros %= 10;
}
else
b10 = 0;

/* Billetes de 5 */
if ( euros >= 5 )
{
b5 = euros / 5;
euros %= 5;
}
else
b5 = 0;

/* Billetes de 1 */
if ( euros >= 1 )
{
b1 = euros /1;
euros %= 1;
}
else
b1 = 0;
/* Monedas de 0.50 */
if ( euros >= 0.50 )
{
m50 = euros / 0.5;
euros = 0.50;
}
else
m50 = 0;

/* Monedas de 0.10 */
m10 = 0.1;
printf( " %d billete(s) de 20", b20 );
printf( "\n %d billete(s) de 10", b10 );
printf( "\n %d billete(s) de 1", b1 );
printf( "\n %d billete(s) de 5", b5 );
printf( "\n %d moneda(s) de 0.50", m50 );
printf( "\n %d moneda(s) de 0.25", m25 );
printf( "\n %d moneda(s) de 0.10", m10 );
printf( "\n %d moneda(s) de 0.05", m5 );
printf( "\n %d moneda(s) de 0.01", m1 );
}
else
printf( " ERROR: Cantidad incorrecta, debe ser mayor que cero." );

return 0;
}

Ciclos de repetición
1. Calcule e imprima el costo total de un artículo teniendo como entrada el costo del artículo
y la cantidad comprada. Recuerde aplicar el impuesto que se paga en nuestro país.
Permita que el programa se repita 10 veces. Al finalizar, imprimir los totales de: valor de
compra, total cobrado en impuesto, costo total de la venta.

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

void main()

float precioArt, sumArt=0, itbms, cantArt, totalSum, totalArt, x;

while(x==0, x<=10)

printf("Introduzca el precio del articulo: ");

scanf(" %f",&precioArt);

printf("Cantidad de articulos comprados: ");

scanf(" %f",&cantArt);

totalSum=precioArt*cantArt;

itbms=0.07*totalSum;

printf("El impuesto total es de: %f\n",itbms);

totalArt=itbms+totalSum;

printf("El total de su compra es: %f\n", totalArt);

sumArt=sumArt+totalArt;

x=x+1;

printf("El total de ventas es: %f", sumArt);

2. Leer tres valores numéricos enteros e imprimir el promedio correspondiente. Repetir el


proceso hasta que, en el campo del primer valor leído, se teclee un cero.

#include <stdio.h>
#include <stdlib.h>

#include <locale.h>

#include <math.h>

//Problema#2//

int main ()

int a,b,c;

float prom;

while (a!=0)

printf("Ingresar valor #1\n"), scanf(" %d",&a);

printf("Ingresar valor #2\n"), scanf(" %d",&b);

printf("Ingresar valor #3\n"), scanf(" %d",&c);

prom = (a+b+c)/3;

printf("El promedio es de: %.2f\n", prom);

printf("---------------------------------\n");

3. Los alumnos desean saber cuál será su calificación final, tanto el promedio como la letra
que corresponde (A, B, C, D, F), en la materia de inglés. El programa debe leer las
calificaciones de los tres parciales, del examen final y la del trabajo final.
Dicha calificación se compone de los siguientes porcentajes:

55% del promedio de sus tres calificaciones parciales.

30% de la calificación del examen final.

15% de la calificación de un trabajo final.

Tomar en cuenta que el salón de clases cuenta con 25 estudiantes.

#include <stdio.h>
#include <stdlib.h>
#include<locale.h>
#include <math.h>

void main()
{
setlocale (LC_ALL, "");
int x, p1, p2, p3, exa, trabajo;
float porP, porE, porT, promF;
char letra;

for (x=1; x<=25; x++)


{
printf ("\n");
printf ("Ingrese su calificación:\t\n");
printf ("PRIMER PARCIAL:\t\n");
scanf( " %d", &p1);

printf ("\n");
printf ("SEGUNDO PARCIAL:\t\n");
scanf( " %d", &p2);

printf ("\n");
printf ("TERCER PARCIAL:\t\n");
scanf( " %d", &p3);

printf ("\n");
printf ("EXAMEN FINAL:\t\n");
scanf( " %d", &exa);

printf ("\n");
printf ("TRABAJO FINAL:\t\n");
scanf( " %d", &trabajo);

porP=((p1+p2+p3)/3)*0.55;
porE=(exa)*0.30;
porT=(trabajo)*0.15;
promF=porP+porE+porT;

printf ("Promedio Final: %f\n", promF);


if (promF <= 60)
{
letra='F';
}

if (promF >= 61)


{
letra='D';
}

if (promF >= 71)


{
letra='C';
}
if (promF >= 81)
{
letra='B';
}

if (promF >= 91)


{
letra='A';
}

printf (" %c\n", letra);


}

4. Una tienda ofrece un descuento del 15% sobre el total de la compra de cada cliente, el
programa debe calcular e imprimir lo que cada uno de ellos deben pagar finalmente por su
compra. Para este proceso, se debe preguntar si se desea continuar o no con otro cliente.
Al finalizar, se deben imprimir los siguientes totales: Total en descuentos, total en valor de compra
y total de pago final.

#include <stdio.h>

int main (void)


{
float cant, totalDes, totalPag;
int control=1;
while (control ==1)

{
printf ("introdusca la cantidad a pagar:");
scanf ("%f",&cant);
totalDes= cant*.15;
totalPag=cant-totalDes;
printf ("EL total del descuento %f",totalDes);
printf ("\n EL valor de la compra %f",cant);
printf ("\nEL total pagado: %.2f",totalPag);
printf ("\n (0) para cerrar \t (1) para continuar \t");
scanf ("%i",&control);
}
return 0;
}

Funciones definidas por el usuario

#include <stdio.h>
#include <stdlib.h>
char fnCapicua(int a);
void main()
{
    int a;
    printf("Escriba un numero: ");
    scanf(" %d", &a);
    if(fnCapicua(a) == 's'){
        printf("El numero es Capicua");
    }if(fnCapicua(a) == 'n'){
        printf("El numero no es Capicua");
    }
}
    //Funcion
    char fnCapicua(int a){
        char texto;
        int resto, guardar = a, b=0;
        while(a > 0){
            b = (b*10) + (a%10);
            resto = a % 10;
            a /= 10;
        //  printf("%d", resto);
        }
        if(guardar == b){
            texto = 's';
        }else{
            texto = 'n';            
        }
        return texto;
    }
    /*
    int num, resto;
    scanf(" %d", &num);
    
    while(num > 0){
        resto = num % 10;
        num /= 10;
        printf("%d", resto);
    }
    */

//amigos, capitua, palindrome y feliz


Resumen de funciones
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#include <string.h>

int fnSumaDivisores(int v)
{
int i, suma=1;
for (i=2; i < v; i++)
    if (v%i==0)
suma += i;
return suma;
}

int fnCifras(long num)


{
int suma=0;
if (num !=0)
while (num!=0)
{
num=num/10;
suma=suma+1;
}
else
suma=1;
return suma;}

char fnArmstrong (int num)


{
int cont=0, i, x, y, sum=0;
i = num;
cont = fnCifras(num);
do
{
x = i%10;
y = i/10;
i = y;
sum = sum + pow(x,cont);
} while (y != 0);

if(sum == num)
return 'S';
else
return 'N' ;
}

char fnParImpar(int num)


{
if (num%2 == 0)
return 'P';
else
return 'I';
}

int fnFactorial(int num)


{
int i, resp=1;
for (i=1; i<=num; i++)
resp = resp*i;
return resp;
}

char fnAmigos(int a,int b)


{
if(fnSumaDivisores(a)==b && fnSumaDivisores(b)==a)
    return 'A';
else
return 'E';
}

void fnUlam(int num)


{
printf("La conjetura de ULAM para el número %d es: ", num);
while (num != 1)
{
if (num%2==0)
num= num/2;
else
num = num * 3 + 1;
     printf("%d – ", num);
}
}
char fnAbundante(int num)
{
int x,resto=0;
if (fnSumaDivisores(num) > num)
return 'S';
else
return 'N';
}

char fnFeliz(int n)
{
int num, suma=0;
    do
    {
        while (n>0)
        {       
            num = n%10;
            n=n/10; 
            suma = suma+(num*num);
       }       
       n=suma;
       suma=0;
} while (n>9);

    if (n==1 || n==7)


     return 'S';
else
     return 'N';
}

long fnInvertir(long x)
{
long r = 0;
while(x > 0)
{
r = r * 10 + x % 10;
x = x / 10;
}
return r;
}

char fnCapicua(int a)
{
if(fnInvertir(a) == a)
return 'S';
else
return 'N';
}

char fnPrimo(int num)


{
int x;
if (num==1)
return 'N';
for(x= 2; x<num; x++)
if( num%x==0)
return 'N';
return 'S';
}

char fnperfecto (int num)


{
if(fnSumaDivisores(num) == num)
return 'S';
else
return 'N';
}

char fnPalindrome2(char cadenita[])


{
char aux [20];
strcpy (aux, cadenita);
printf("Hola");
    if (strcmpi (aux, strrev (cadenita))==0)
        return 'S';
    else
    return 'N'; 
}

Bonificación
#include <stdio.h>
#include <windows.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

char fnPrimo(int numero){


int x;
if (numero == 1){
    return 'N';
    }
for(x= 2; x<numero; x++){
if( numero % x == 0){
        return 'N';     
        }
    }
return 'S';
}

int fnCifras(long numero){


int cantidad = 0;
while(numero > 0){
numero = numero / 10;
cantidad++;
}
return cantidad;
}

int fnSumaDivisores(int v){


int i, suma = 1;
for (i = 2 ; i < v; i++){
        if (v % i == 0)
    suma += i;  
    }
return suma;
}

char fnPerfecto (int numero){


if(fnSumaDivisores(numero) == numero){
return 'S'; 
    }
else{
    return 'N';
    }
}

char fnPalindrome(char *cadenita){


char aux [20];
strcpy (aux, cadenita);
    if (strcmpi (cadenita, strrev (aux))==0){
        return 'S'; 
    }
    else{
        return 'N'; 
    }
}

char fnAmigos(int a,int b){                     


    if(fnSumaDivisores(a)==b && fnSumaDivisores(b)==a){
        return 'A'; 
    }else{
        return 'E'; 
    }
}

int random (int topeBajo, int topeAlto){


    int num = (rand() % (topeAlto - topeBajo + 1)) + topeBajo;
    return num;
}

    
char fnArmstrong (int num){
    int cont, i,x,y,sum=0;
    i = num;
    cont = fnCifras(num);
    do{
        x = i%10;
        y = i/10;
        i = y;
        sum = sum + pow(x,cont);
    }while (y != 0);
    if(sum == num){
        return 'S'; 
    }
    else{
        return 'N' ;    
    }
}
    
int fnInvertir(long x){
int z = 0;
while(x > 0){
z = z * 10 + x % 10;
x = x / 10;
}
return z;
}

        
float bono(char nombre[100], char apellido[100],int nacimiento, int mes){
    int aux = 0;
    float acumulador = 0;
    
    if ((fnPalindrome(nombre) == 'S')  ||  (fnPalindrome(apellido) == 'S'))
{
        acumulador += 200;
    }
    
    if (fnCifras(nacimiento) == 1){
        if (fnPerfecto(nacimiento) == 'S') {
            acumulador += 50;
        }
    }
    
    if (fnCifras(nacimiento) == 2){
        
        aux += (nacimiento % 10);
        aux += (nacimiento / 10);
        
        if (fnPerfecto(aux) == 'S'){
            acumulador = acumulador + 50;
        }   
    }
    
    if (fnPrimo(mes)=='S'){
        acumulador=acumulador+30;
    }
    
    int aux1=random(200,10000000),aux2=random(200,10000000);
        
    if (fnAmigos(aux1,aux2)=='A'){
     acumulador=acumulador+500;
}

if ((fnArmstrong(aux1) == 'S' && fnArmstrong(aux2) == 'N') ||


(fnArmstrong(aux1) == 'N' && fnArmstrong(aux2) == 'S')){
    acumulador=acumulador+150;
    }
    return acumulador;
}

void main(){
    setlocale (LC_ALL, "");
    char nombre[100], apellido[100];
    int horaT, control=1, nacimiento, mes;
    float pagoH, bonos = 0, salario = 0, salarioT = 0, salarioReal = 0;
    while(control == 1){
        printf ("\tIntrouzca el nombre \n\t");
        scanf ("%s",&nombre);
        
        printf ("\tIntrouzca el apellido \n\t");
        scanf ("%s",&apellido);
        
        printf ("Indique su dia de nacimiento \n\t");
        scanf ("%d",&nacimiento);
        while (nacimiento > 31 || nacimiento < 1){
            printf ("\n\t\t¡ERROR! Vuelva a intentarlo\n");
            printf ("\n\tIndique su día de nacimiento\n");
            scanf (" %d", &nacimiento);
        }
        
        printf ("\n1.Enero      2.Febrero       3.Marzo     4.Abril\
n5.Mayo     6.Junio         7.Julio     8.Agosto\n9.Septiembre  10.Octubre   
   11.Noviembre    12.Diciembre\n\n");
        printf ("\nIngrese su mes de cumpleaños\n\t");
        scanf (" %d", &mes);
        
        while (mes > 12 || mes < 1){
            printf ("\n¡ERROR! Vuelva a intentarlo\n");
            printf ("\nIngrese su mes de cumpleaños\n\t");
            scanf (" %d", &mes);    
        }
        
        printf("\nIndique su salario por hora: ");
        scanf("%f", &pagoH);
        
        printf("\nIndique sus horas trabajadas: ");
        scanf("%d", &horaT);

    salario = (float)horaT * pagoH;


    bonos = bono(nombre,apellido,nacimiento,mes);
    salarioT = salario + bonos;
    
    if(fnInvertir(salarioT) > salarioT){
        salarioReal = fnInvertir(salarioT);
        }else{
            salarioReal = salarioT;
        }
        
        printf("\n");
        printf("\nNombre completo: %s %s", nombre, apellido);
        printf("\nSalario normal: %.2f", salario);
        printf("\nBonificacion: %.2f", bonos);
        printf("\nSalario total: %.2f", salarioT);
        printf("\nSalario real: %.2f", salarioReal);
        printf("\n");
        printf ("\n (0) para cerrar \t (1) para continuar \t");
        scanf ("%i",&control);
        system("cls");
    }
}

Archivos
RECOGER DATOS
#include <stdio.h>
#include <windows.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

void main(){
    FILE *si;
    
    si = fopen("datosBonif.txt","w");
    
    setlocale (LC_ALL, "");
    system ("color 30");
    char nombre[100], apellido[100],control=49;
    int horaT, nacimiento, mes, num1, num2;
    float pagoH, bonos = 0, salario = 0, salarioT = 0, salarioReal = 0,
acum1, acum2, acum3;
    while(control == 49){
        printf ("\tIntroduzca el Nombre\n\t");
        scanf ("%s",&nombre);
        
        printf ("\n\tIntroduzca el Apellido\n\t");
        scanf ("%s",&apellido);
        
        printf ("\n\tIndique su día de nacimiento \n\t");
        scanf ("%d",&nacimiento);
        while (nacimiento > 31 || nacimiento < 1){
            printf ("\n\n\n\t¡ERROR! Vuelva a intentarlo\n\n");
            printf ("\n\tIndique su día de nacimiento\n");
            scanf (" %d", &nacimiento);
        }
        
        printf ("\n1.Enero      2.Febrero       3.Marzo     4.Abril\
n5.Mayo     6.Junio         7.Julio     8.Agosto\n9.Septiembre  10.Octubre   
   11.Noviembre    12.Diciembre\n\n");
        printf ("\n\tIngrese su mes de cumpleaños\n\t");
        scanf (" %d", &mes);
        
        while (mes > 12 || mes < 1){
            printf ("\n¡ERROR! Vuelva a intentarlo\n\t");
            printf ("\n\tIngrese su mes de cumpleaños\n\t");
            scanf (" %d", &mes);    
        }
        
        printf("\n\tIndique su salario por hora:\n\t");
        scanf(" %f", &pagoH);
        
        printf("\n\tIndique sus horas trabajadas:\n\t");
        scanf(" %d", &horaT);

//NUMEROS RANDOMS
num1 = (rand() % (1000000 - 200 + 200)) + 200;
num2 = (rand() % (1000000 - 200 + 200)) + 200;

    system("pause");
    system("cls");
printf("\n\n*-Datos Registrados-*\n\n");
    printf("\nNombre y Apellido:\n%s",nombre, apellido);
    printf("\n\nHoras Trabajadas:\n%d",horaT);
    printf("\n\nSalario por Hora:\n%.2f",pagoH);
    printf("\n\nDía de nacimiento:\n%d",nacimiento);
    printf("\n\nMes de nacimiento:\n%d",mes);
    printf("\n\nNúmero Aleatorio nº1:\n%d",num1);
    printf("\n\nNúmero Aleatorio nº2:\n%d",num2);
    
    
    fprintf(si, "%s ",nombre);
    fprintf(si, "%s ",apellido);
    fprintf(si, "%d ",horaT);
    fprintf(si, "%.2f ",pagoH);
    fprintf(si, "%d ",nacimiento);
    fprintf(si, "%d ",mes);
    fprintf(si, "%d ",num1);
    

        printf("\n");
        printf ("\n (0) para cerrar \t (1) para continuar \t");
        fflush( stdin );
        scanf (" %c",&control);
        if (control==49){
            fprintf (si, "\n");
        }
        
        while (control!=48 && control!=49){
        printf ("¡ERROR! Vuelva a intentarlo");
        fflush( stdin );
        scanf (" %c",&control);
    }

        system("cls");
    }
    fclose(si);
}

SALIDA DE DATOS
#include <stdio.h>
#include <windows.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

void encabezado(){
    FILE *salida;
    salida = fopen("grupo1SalidaBonificaciones.txt","w");
    fprintf (salida, "UNIVERSIDAD UNIVERSIDAD TECNOLÓGICA DE PANAMÁ \n");
    fprintf (salida, "\tCENTRO REGIONAL DE CHIRIQUÍ\n\n");
    
    fprintf (salida, "\tMANEJO DE ARCHIVOS\n\n");
    fprintf (salida, "GRUPO No. 3, INTEGRADO POR:\n");
    fprintf (salida, "4-823-2320 Fuentes, Jazmin\n4-797-396 Guerra, Mickel\
n4-823-2220 Concepción, Adrian \n4-819-1590 González, Magdalena\n4-825-567
Wu, Cristhian\n");
    fprintf (salida, "\nProfesora: Cecilia G. de Beitia     Fecha: 15 de
noviembre de 2022\n");
    fprintf (salida, "Grupo: 2IL111             Asignatura: Herramientas de
Programación Aplicada I\n\n\n");
    fprintf (salida, "\tDETALLE DE SALARIOS Y BONIFICACIONES\n\n");

    fprintf(salida, "\nNOMBRE COMPLETO \t\tSALARIO NORMAL \t\tBONIFICACION \


t\tSALARIO TOTAL \t\tSALARIO REAL");
}

void imprimirDatos(char nombre[50], char apellido[50], float salario, float


bonos, float salarioT, float salarioReal){
    FILE *salida;
    salida = fopen("grupo1SalidaBonificaciones.txt","a");
    fprintf(salida, "\n%s %s \t\t\t%.2f \t\t\t%.2f \t\t\t%.2f \t\t\t%.2f",
nombre, apellido, salario, bonos, salarioT, salarioReal);
}

char fnPrimo(int numero){


int x;
if (numero == 1){
    return 'N';
    }
for(x= 2; x<numero; x++){
if( numero % x == 0){
        return 'N';     
        }
    }
return 'S';
}

int fnCifras(long numero){


int cantidad = 0;
while(numero > 0){
numero = numero / 10;
cantidad++;
}
return cantidad;
}

int fnSumaDivisores(int v){


int i, suma = 1;
for (i = 2 ; i < v; i++){
        if (v % i == 0)
    suma += i;  
    }
return suma;
}

char fnPerfecto (int numero){


if(fnSumaDivisores(numero) == numero){
return 'S'; 
    }
else{
    return 'N';
    }
}

char fnPalindrome(char *cadenita){


char aux [20];
strcpy (aux, cadenita);
    if (strcmpi (cadenita, strrev (aux))==0){
        return 'S'; 
    }
    else{
        return 'N'; 
    }
}

char fnAmigos(int a,int b){                     


    if(fnSumaDivisores(a)==b && fnSumaDivisores(b)==a){
        return 'A'; 
    }else{
        return 'E'; 
    }
}

int random (int topeBajo, int topeAlto){


    int num = (rand() % (topeAlto - topeBajo + 1)) + topeBajo;
    return num;
}

    
char fnArmstrong (int num){
    int cont, i,x,y,sum=0;
    i = num;
    cont = fnCifras(num);
    do{
        x = i%10;
        y = i/10;
        i = y;
        sum = sum + pow(x,cont);
    }while (y != 0);
    if(sum == num){
        return 'S'; 
    }
    else{
        return 'N' ;    
    }
}
    
int fnInvertir(long x){
int z = 0;
while(x > 0){
z = z * 10 + x % 10;
x = x / 10;
}
return z;
}

        
float bono(char nombre[100], char apellido[100],int nacimiento, int mes){
    int aux = 0;
    float acumulador = 0;
    
    if ((fnPalindrome(nombre) == 'S')  ||  (fnPalindrome(apellido) == 'S'))
{
        acumulador += 200;
    }
    
    if (fnCifras(nacimiento) == 1){
        if (fnPerfecto(nacimiento) == 'S') {
            acumulador += 50;
        }
    }
    
    if (fnCifras(nacimiento) == 2){
        
        aux += (nacimiento % 10);
        aux += (nacimiento / 10);
        
        if (fnPerfecto(aux) == 'S'){
            acumulador = acumulador + 50;
        }   
    }
    
    if (fnPrimo(mes)=='S'){
        acumulador=acumulador+30;
    }
    
    int aux1=random(200,10000000),aux2=random(200,10000000);
        
    if (fnAmigos(aux1,aux2)=='A'){
     acumulador=acumulador+500;
}

if ((fnArmstrong(aux1) == 'S' && fnArmstrong(aux2) == 'N') ||


(fnArmstrong(aux1) == 'N' && fnArmstrong(aux2) == 'S')){
    acumulador=acumulador+150;
    }
    return acumulador;
}

void main(){
    FILE *si;
    FILE *salida;
    
    si = fopen("datosBonif.txt","r");
    salida = fopen("grupo1SalidaBonificaciones.txt","w");
    fclose(salida);
    
    setlocale (LC_ALL, "");
    char nombre[100], apellido[100], control=49;
    int horaT, nacimiento, mes, num1, num2;
    float pagoH, bonos = 0, salario = 0, salarioT = 0, salarioReal = 0,
acum1, acum2, acum3;
    
        while(!feof(si)){
            fscanf(si,"%s %s %d %f %d %d %d %d",&nombre, &apellido, &horaT,
&pagoH, &nacimiento, &mes, &num1, &num2);
            salario = (float)horaT * pagoH;
         bonos = bono(nombre,apellido,nacimiento,mes);
         salarioT = salario + bonos;
             
         if(fnInvertir(salarioT) > salarioT){
             salarioReal = fnInvertir(salarioT);
            }else{
                    salarioReal = salarioT;
            }
        
        encabezado();
        imprimirDatos(nombre, apellido, salario, bonos, salarioT,
salarioReal);
        acum1=acum1+bonos;
        acum2=acum2+salarioT;
        acum3=acum3+salarioReal;    
    

        printf("\n");
            
        printf("\nNombre Completo: %s", nombre);
        printf(" %s", apellido);
        printf("\nSalario Normal: %.2f", salario);
        printf("\nBonificación: %.2f", bonos);
        printf("\nSalario Total: %.2f", salarioT);
        printf("\nSalario Real: %.2f", salarioReal);
        printf("\n");
        printf("\nTOTALES");
        printf("\nBonificación: %.2f", acum1);
        printf("\nSalario Total: %.2f", acum2);
        printf("\nSalario Real: %.2f", acum3);
        }
            
        printf("\n");
        printf ("\n (0) para cerrar \t (1) para continuar \t");
        fflush( stdin );
        scanf (" %c",&control);
        
        while (control!=48 && control!=49){
        printf ("¡ERROR! Vuelva a intentarlo");
        fflush( stdin );
        scanf (" %c",&control);
    }
        system("cls");
        fclose(salida);
}

Juego de la vida

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

void main(){
    setlocale(LC_ALL, "");
char matriz_0[10][10], matriz_1[10][10];
int x,y,z;
int lectura, acumulador, control;
for(x=0;x<10;x++){
for(y=0;y<10;y++){
matriz_0[x][y]=' ';
matriz_1[x][y]=' ';
}
}

matriz_1[0][0]='+';matriz_1[0][9]='+';matriz_1[9][0]='+';matriz_1[9]
[9]='+';
for(x=1,y=8;x<9;x++,y--){
matriz_1[0][x]='-';
matriz_1[9][x]='-';
matriz_1[x][0]='|';
matriz_1[x][9]='|';
matriz_0[x][x]='*';
matriz_0[x][y]='*';
matriz_1[x][x]='*';
matriz_1[x][y]='*';
}
printf("A parte de las diagonales, ¿Desea agregar otra celda viva?\n 1
para si, 0 para no\n");
scanf("%i",&control);
while(control==1){
printf("\nfila: ");
scanf("%i",&x);
printf("\ncolumna: ");
scanf("%i",&y);
matriz_0[x][y]='*';
printf("¿Quiere agregar otra celda viva?: 1 para si, 0 para no\n");
scanf("%i",&control);
}

control=1;
while(control==1){
for(x=1;x<9;x++){
for(y=1;y<9;y++){
acumulador=0;
if(matriz_0[x-1][y-1]=='*')
acumulador++;
if(matriz_0[x-1][y]=='*')
acumulador++;
if(matriz_0[x-1][y+1]=='*')
acumulador++;
if(matriz_0[x][y-1]=='*')
acumulador++;
if(matriz_0[x][y+1]=='*')
acumulador++;
if(matriz_0[x+1][y-1]=='*')
acumulador++;
if(matriz_0[x+1][y]=='*')
acumulador++;
if(matriz_0[x+1][y+1]=='*')
acumulador++;
if(matriz_0[x][y]=='*' && (acumulador<2 || acumulador>3))
matriz_1[x][y]=' ';
if(matriz_0[x][y]==' ' && acumulador==3)
matriz_1[x][y]='*';
}
}
for(x=0;x<10;x++){
for(y=0;y<10;y++){
printf("%c ",matriz_1[x][y]);
}
printf("\n");
}
for(x=1;x<9;x++){
for(y=1;y<9;y++){
matriz_0[x][y]=matriz_1[x][y];
}
}
printf("¿Desea ver una interacción más?: 1 para si, 0 para no\n");
scanf("%i",&control);
system("cls");
}
}

Operaciones con matrices

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int i , j, k;
int m, n;
int x, y;
int z, t;

int main(){
printf("\n\n");

  printf( " \n Matriz A FILAS : ");


 scanf("%d",&m);
 printf( " Matriz A COLUMNAS : ");
 scanf("%d",&n);
 printf("\n");

  int A[m][n];

  srand(clock());

for (i = 0; i < m ; i++){


    for (j = 0; j < n; j++){

      A[i][j]= rand() %10;


      printf(" A[%d][%d] = %d ", i+1, j+1, A[i][j]);     
  }
  printf("\n");
  }
 printf( " \n Matriz B FILAS : ");
 scanf("%d",&x);
 printf( " Matriz B COLUMNAS : ");
 scanf("%d",&y);
 printf("\n");

  int B[x][y];

for (i = 0; i < x ; i++){


    for (j = 0; j < y; j++){

      B[i][j]= rand() %20;


      printf(" B[%d][%d] = %d ", i+1, j+1, B[i][j]);     
  }
  printf("\n");
  }
  printf("\n Multiplicacion\n");
  if( n == x){
    int C[z = m][t = y];
  for (i = 0; i < z ; i++){
      for (j = 0; j < t; j++){

        C[i][j]=0;
    for(k=0;k<n;k++)
    C[i][j]=C[i][j]+(A[i][k]*B[k][j]);  
      }
  }
  for (i = 0; i < z ; i++){
      for (j = 0; j < t; j++)
        printf(" C[%d][%d] = %d ", i+1, j+1, C[i][j]);     

  printf("\n");}
  }
  else
    printf("\n Las matrices no se pueden Multiplicar \n");

  printf("\n Suma\n");
 if(m == n && x == y && m == x ){
   int D[n][n];
   for (i = 0; i < n ; i++){
      for (j = 0; j < n; j++){

        D[i][j]= A[i][j] + B[i][j];


        printf(" D[%d][%d] = %d ", i+1, j+1, D[i][j]);     
    }
    printf("\n");
    }
  }
  else
 printf("\n Las matrices no se pueden sumar\n");

printf("\n\n");
system("pause");
return 0;
}
PARCIALES
Parcial 1
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
/* run this program using the console pauser or add your own getch,
system("pause") or input loop */

void main()
{
    setlocale (LC_ALL, "");
int opcion;
printf("Introduzca la opción a escoger: \n1. Para Estadística \n2. Para
suma de números múltiplos de 4 \n3. Para finalizar \n");
scanf("%d",&opcion);
switch (opcion)
{
case 1: fnEstadistica (); break;
case 2: fnMultiplos (); break;
case 3: break;
}
}

void fnEstadistica ()
{
int x=0, sumTotal=0, posTotal=0, n=0;
printf("Ingrese sus 10 numeros:\n");
while (x!=10)
{
scanf("%d",&n);
if(n%2==0)
{
sumTotal=sumTotal+n;
}
if (n>0)
{
posTotal=posTotal+1;
}
x=x+1;
}
printf("La suma de números pares leídos es: %d\n", sumTotal);
printf("El total de números positivos leídos es: %d\n", posTotal);
}

void fnMultiplos ()
{
printf("Función de Múltiplos\n");
int x=0, sumTotal=0;
for (x=18; x<=125; x=x+1)
{
if(x%4==0)
{
sumTotal=sumTotal+x;
}

}
printf("La suma de números múltiplos de 4 (de 18 a 125) es:%d\n",
sumTotal);

Parcial 2
Problema 1
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h>
#include <windows.h>

COORD coord={0,0};
void gotoxy (int x, int y)
{
    coord.X=x;
    coord.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

int fnMayorPromedio(float promedio[], int a){


    int x, posicion;
    float aux = 0;
    for(x = 0; x < a; x++){
        if(aux < promedio[x]){
            aux = promedio[x];
            posicion = x;
        }
    }
    return posicion;
}

int fnMenorPromedio(float promedio[], int a){


    int x, posicion;
    float aux = promedio[0];
    for(x = 0; x < a; x++){
        if(aux > promedio[x]){
            aux = promedio[x];
            posicion = x;
        }
    }
    return posicion;
}

char fnLetras(float promedio){


    char x;
    if(promedio <= 60){
        x = 'F';
    }
    if(promedio >= 61 && promedio <= 70){
        x = 'D';
    }
    if(promedio >= 71 && promedio <= 80){
        x = 'C';
    }
    if(promedio >= 81 && promedio <= 90){
        x = 'B';
    }
    if(promedio >= 91 && promedio <= 100){
        x = 'A';
    }
    return x;
}

void main(){
    
    setlocale(LC_ALL, "");
    srand (time(NULL));
    char nombre[20][50], notaFinal[20];
    int x, a, posicionMayor, posicionMenor;
    float promedio[20], promedioParcial = 0, promedioProyecto = 0;
    
    //Son 20 pero para no poner 20 nombres...no
    for(x = 0; x < 20; x++){
        int parciales[3] = {0}, proyectos[20] = {0}, semestral = 0,
asistencia = 5;
        
        printf("\nIndique el Nombre del estudiante N°%d: ", x+1);
        scanf(" %s", &nombre[x]);
        
        //Notas parciales
        int z, sumaParciales = 0;
        for(z = 0; z < 3; z++){
            parciales[z] = rand() % 101+1;
            sumaParciales += parciales[z];
        }

        //Promedio parciales
        promedioParcial = (float)(sumaParciales / 3) * 0.3;
        
        //Notas Proyectos
        int y, sumaProyectos = 0;
        for(y = 0; y < 20; y++){
            proyectos[y] = rand() % 101+1;
            sumaProyectos += proyectos[y];
        }
        promedioProyecto = (float)(sumaProyectos / 20) * 0.25;
        
        //Examen Semestral
        semestral = (rand() % 101+1) * 0.4;
        
        //Promedio
        promedio[x] = promedioParcial + promedioProyecto + semestral +
asistencia;
        
        //Nota Final
        notaFinal[x] = fnLetras(promedio[x]);
    
    
    }
    
    gotoxy(3, 10);
    printf("\
n_____________________________________________________________");
    gotoxy(3, 12);
    printf("\n\tNombre \t\tPromedio \tNota en Letras\n");
    
    //Imprimir nombres y notas
    
    for(a = 0; a < 20; a++){
        printf("\n%d.\t%s \t\t%f \t%c", a+1, nombre[a], promedio[a],
notaFinal[a]);     
    }
    
    posicionMayor = fnMayorPromedio(promedio, 20);
    posicionMenor = fnMenorPromedio(promedio, 20);
    
    printf("\nEstudiante de mayor promedio: %d", posicionMayor+1);
    printf("\nEstudiante de menor promedio: %d", posicionMenor+1);
    }

    
    
Problema nº2
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
char fnFeliz(long long numero){
char confirmacion='S';
int i=10, f, restante, acumulador;
while(acumulador!=1){
acumulador=0;
while(numero>0){
restante=numero%10;
acumulador=acumulador+(restante*restante);
numero=numero/10;
}
numero=acumulador;
if(acumulador==4){
if(i==8){
acumulador=1;
confirmacion='N';
}
i=0;
}
i++;
}
return confirmacion;
}

    char primo(long long numero){


int x;
if (numero == 1){
    return 'N';
    }
for(x= 2; x<((numero/2)+1); x++){
    
if( numero % x == 0){
        return 'N';     
        }
    }
return 'S';
}

    void main(){
        
        int x=0;
    
        long long vector [20],numero=1;
        vector [19]=0;
        while (vector[19]==0){
            if (primo(numero)=='S' && fnFeliz(numero)=='S'){
                vector[x]=numero;
                x++;
            }
            numero ++;
        
            
            
    }
    for (x=0;x<20;x++)
    printf ("\t Para el indice %d, el valor es de: %Ld \n",x,vector [x]);   
}

Problema 3
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <locale.h>
#include <string.h>

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


int temporal = *a;
*a = *b;
*b = temporal;
}

void intercambiarChar(char *a[], char *b[]) {


char temporal[20];
memcpy(temporal, a, 20);
memcpy(a, b, 20);
memcpy(b, temporal, 20);
}

void qs(int lista[],int limite_izq,int limite_der)


    {
    
     int izq,der,temporal,pivote;
        izq=limite_izq;
     der = limite_der;
     pivote = lista[(izq+der)/2];
        do{
     while(lista[izq]<pivote && izq<limite_der)izq++;
     while(pivote<lista[der] && der > limite_izq)der--;
     if(izq <=der)
     {
     temporal= lista[izq];
     lista[izq]=lista[der];
     lista[der]=temporal;
     izq++;
     der--;  
     }
     }while(izq<=der);
     if(limite_izq<der){qs(lista,limite_izq,der);}
     if(limite_der>izq){qs(lista,izq,limite_der);}
}

void quicksort(int lista[],int n){


     qs(lista,0,n-1);
    }

int main(){
    setlocale(LC_ALL, "");
int tamano, x;
printf("Introduzca el tamaño de la lista\n");
scanf(" %d",&tamano);
    char chLista[tamano];
    int lista[tamano];
    
     for (x=0;x<tamano;x++){
     printf("\nIntroduzca el dato en Cadena %d\n",(x+1));
     fflush(stdin);
     scanf(" %c",&chLista[x]);
     lista[x]=chLista[x];    
}

        printf("\n\nDatos en Entero\n");
     for (x=0;x<tamano;x++){
         
     printf("\nIntroduzca el Dato en Entero %d\n",(x+1));
     scanf(" %d",&lista[x]);
     }

    
    printf("\n");
     quicksort(lista,tamano);
     int i;
     printf("Lista Ordenada\n");
     for (i=0; i<tamano; i++) {
     printf("\n %c", chLista[i]);
                printf(" %d", lista[i]);
     }
     return 0;
}

Parcial 3 (Teórico)
Parcial 3 (Practico)

Problema 1
#include <time.h>
#include <stdio.h>
void Funci(int Matriz[], int *Mayor, int *Menor, int *promedio){
int x, valmenor, valmayor, acumulador=0;
*Mayor=0;
*Menor=0;
*promedio=0;
valmayor=Matriz[0];
valmenor=Matriz[0];
acumulador=Matriz[0];
for(x=1;x<50;x++){
if(valmayor<Matriz[x]){
*Mayor=x;
valmayor=Matriz[x];
}
if(valmenor>Matriz[x]){
*Menor=x;
valmenor=Matriz[x];
}
acumulador=acumulador+Matriz[x];
}
*promedio=acumulador/50;
}

int main(){
int x, Vect_0[50], Mayor, Menor, Promedio;
srand(time(NULL));
for(x=0;x<50;x++){
Vect_0[x]=rand()%105+45;
}
Funci(Vect_0, &Mayor, &Menor, &Promedio);
printf("el elemento mayor esta en la posicion %d, y vale %d\n", Mayor,
Vect_0[Mayor]);
printf("el elemento menor esta en la posicion %d, y vale %d\n", Menor,
Vect_0[Menor]);
printf("el promedio de todos los datos es %d", Promedio);
return 0;
}
Problema 2

#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
#include <math.h>
#include <string.h>
#include <wchar.h>
#include <conio.h>
#include <stdio.h>

int main(int argc, char** argv)


{
    setlocale(LC_ALL, "");
     FILE *archivo;
    char nombre[10][200],Descrip[10][500];
    int articRevis[10],PosName[10],x,i,j;
    float precioRevis[10];
    
    archivo = fopen("deportes.txt","w");
    
        for (x=0; x<10; x++)
        {
            printf("Ingrese el nombre del artículo deportivo.\n");
            scanf(" %[^\n]",&nombre[x]);
            printf("Ingrese la cantidad de revistas existentes del
articulo.\n");
            scanf(" %d",&articRevis[x]);
            printf("Ingrese el precio por revistas.\n");
            scanf(" %f",&precioRevis[x]);
            printf("Escriba una descripcion para la revista.\n");
            scanf(" %[^\n]",&Descrip[x]);
    
            system("cls");
        }
    
        for (x=0; x<10; x++)
        {
            fprintf(archivo, "%s\n",nombre[x]);
            fprintf(archivo, "%d\n",articRevis[x]);
            fprintf(archivo, "%.2f\n",precioRevis[x]);
            fprintf(archivo, "%s\n\n",Descrip[x]);
        }
     return 0;
}
CONSIDERACIONES FINALES

Pienso que este portafolio nos puede ser de ayuda en el futuro a la hora de
realizar trabajos y poder recordar ciertas cosas olvidadas.

También podría gustarte