Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Parciales
1. Parcial 1
2. Parcial 2
3. Parcial 3 (Teórico)
4. Parcial 3 (Practico)
Consideraciones finales
Actividades
int main()
{
printf("hola mundo");
getchar();
return 0;
}
Desarrollo de Problemas
Actividad 1
#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){
}
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);
else printf("Nombre:%s",nombre);
return 0;
}
{
int num1,cuadrado;
printf ("Introduzca un valor:\t");
scanf ("%d",&num1);
cuadrado= num1*num1;
int main ()
{
return 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.
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;
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);
#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”.
if (altura<=1.50)
{
printf ("\n\t Persona de estura baja");
{
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;
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()
while(x==0, x<=10)
scanf(" %f",&precioArt);
scanf(" %f",&cantArt);
totalSum=precioArt*cantArt;
itbms=0.07*totalSum;
totalArt=itbms+totalSum;
sumArt=sumArt+totalArt;
x=x+1;
#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)
prom = (a+b+c)/3;
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:
#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;
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;
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>
{
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;
}
#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);
}
*/
int fnSumaDivisores(int v)
{
int i, suma=1;
for (i=2; i < v; i++)
if (v%i==0)
suma += i;
return suma;
}
if(sum == 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);
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';
}
Bonificación
#include <stdio.h>
#include <windows.h>
#include <locale.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
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;
}
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);
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");
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;
}
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");
}
}
#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");
int A[m][n];
srand(clock());
int B[x][y];
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++){
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);
}
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;
}
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>
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>
Pienso que este portafolio nos puede ser de ayuda en el futuro a la hora de
realizar trabajos y poder recordar ciertas cosas olvidadas.