Practicas Algoritmo 21-2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

1era practica calificada

P01 (6 puntos): Elaborar un programa que calcule si un número entero previamente ingresado


por teclado tiene raíz cuadrada exacta.   
#include <stdio.h>
#include <math.h>
main () {
   int r2,n;
   printf ("Ingrese un numero entero: ");
   scanf ("%i",&n);
   printf ("La raiz del numero ingresado es: %lf\n",sqrt(n));
   r2=sqrt(n);
   printf ((sqrt(n)==r2)?"El numero tiene raiz exacta\n":"El numero no tiene raiz exacta\
n");
   system ("PAUSE");
}

P02 (7 puntos): Elaborar un #include <stdio.h>


programa que solicite el main () {
ingreso por teclado de un    int i,num,num1,num2,max,min,uni,dec,cen,capi=0;
número entero de tres    do {
cifras abc y calcule cuantos       printf("Ingrese un numero entero mayor de tres digitos:
números capicúas existen ");
entre abc y cba (incluído los       scanf("%i",&num);
extremos). El programa    } while (num<100||num>999);
debe imprimir en pantalla    uni=num%10;
todos los números que    dec=(num/10)%10;
cumplen con dicha condición    cen=num/100;
y en otra fila imprimir    num1=num;
cuantos son.    num2=uni*100+dec*10+cen;
   max=(num1>=num2? num1:num2);
   min=(num1<=num2? num1:num2);
   printf("El mayor es: %i y el menor es: %i\n",max,min);
P03 (7 puntos): Elaborar un    for(i=min;i<=max;i++){
programa que solicite el       uni=i%10;
ingreso de los valores de los       cen=i/100;
tres lados de un triángulo       printf(uni==cen? "%i, ":"",i);
(reales) y los valida; si no       capi=(uni==cen? capi+1:capi);
corresponde a un triángulo    }
debe nuevamente solicitar el    printf("\nEl numero de capicuas es: %i\n",capi);
ingreso. El programa debe    system("PAUSE");
calcular los tres ángulos del }
triángulo e imprimirlos en
grados sexagesimales en pantalla con 2 decimales de aproximación. Para solucionar el
problema recuerde estas leyes o teoremas aplicado a los triángulos:
#include<stdio.h>
#include<math.h>
main(){
   double lado1,lado2,lado3,rad1,rad2,rad3,seg1,seg2,seg3;
   do{
      printf("Ingrese lado1:");
      scanf("%lf",&lado1);
      printf("Ingrese lado2:");
      scanf("%lf",&lado2);
      printf("Ingrese lado3:");
      scanf("%lf",&lado3);
   }while(lado1>=lado2+lado3||lado2>=lado1+lado3||
lado3>=lado1+lado2);
   rad1=acos((pow(lado1,2)+pow(lado2,2)-pow(lado3,2))/(2*lado1*lado2));
   rad2=acos((pow(lado1,2)+pow(lado3,2)-pow(lado2,2))/(2*lado1*lado3));
   rad3=acos((pow(lado3,2)+pow(lado2,2)-pow(lado1,2))/(2*lado3*lado2));
   seg1=rad1*180/M_PI;
   seg2=rad2*180/M_PI;
   seg3=rad3*180/M_PI;
   printf("El angulo opuesto a lado1 es: %.2lf grados sexag\n",seg3);
   printf("El angulo opuesto a lado2 es: %.2lf grados sexag\n",seg2);
   printf("El angulo opuesto a lado3 es: %.2lf grados sexag\n",seg1);
   system ("PAUSE");
}

2da practica calificada


P01: Elaborar un programa que calcula cuantos números primos de 3 cifras son capicúas. El
programa debe imprimir en una fila todos los números que cumplen con la condición,
separados por comas. En una siguiente linea imprimir cuantos números son.

P02: Elaborar un programa que calcule cuántos números primos de cuatro dígitos cumplen con
la condición de que la suma de sus dígitos sea un cuadrado perfecto. El programa imprime en
una fila todos los números primos que cumplen la condición y en una segunda fila el número
total.

P03: Elaborar un programa que solicite el ingreso por teclado el valor del lado de un cuadrado
"T" (valor entero mayor o igual a 2) y el valor de "N" (número entero mayor a cero). Con esos
dos valores debe imprimir en pantalla la siguiente secuencia de asteriscos.
3era practica calificada
PC3-1: En un concurso de conocimientos se almacena en un arreglo unidimensional, la primera
letra de los nombres de N participantes, y en otro arreglo, las calificaciones, entre "A" y "D"
(ambas incluidas), obtenidas por cada participante. Se pide mostrar el nombre del participante
que obtuvo la mayor calificación, y en caso de existir más de uno, mostrarlos todos.

PC3-2: Construya un programa que permita guardar, en un arreglo, los doce primeros números
primos mayores a 50, que escritos a la inversa sigan siendo primos, pero diferentes al primero.

PC3-3: Construir un programa que permita cargar en una función, un arreglo N números


enteros entre 1 y 94. En otra función, determine el primer número par que se encuentre en la
posición impar. En una tercera función debe imprimir el arreglo y el número que cumple la
condición antes mencionada.

4ta practica calificada

PC4-01: Construya un programa que en la función principal declare e inicialice un arreglo


unidimensional de N elementos numéricos randon con valores menores a 9. En una función se
debe de almacenar en en la primera fila de un arreglo bidimensional los datos del arreglo
unidimensional y en cada columna se almacenen tantos asteriscos como lo indique el número.
En otra función se deben imprimir ambos arreglos. 

PC4-02: Construya un programa que lea el número de fila y de columna de un arreglo


bidimensional, y luego lo cargue mediante random con caracteres alfabéticos entre d y t. En
una tercera funcion debe imprimir el arreglo original y el arreglo al revés por filas.

PC4-03: Construya un programa que cargue una matriz de N por M elementos, en una función
lea un dato entero menor a 10 y genere un segundo arreglo que contenga todos los elementos
del arreglo original de tal manera que sus filas estén desplazadas tantas veces como lo indique
el número leído.
Examen parcial

P01: Elaborar un programa que imprima en pantalla los "N" primeros números primos, que,
escrito a la inversa, sigan siendo primos, pero diferentes al primero. Ejemplos:
#include<stdio.h>
#include<math.h>
main(){
   int i=1,j,buscar,cifras,digi,num,inv,divi1,divi2,primos=0;
   do{
      printf("Ingrese cantidad de primos a buscar: ");
      scanf("%i",&buscar);
   } while (buscar<=0);
   while(primos!=buscar){
      divi1=0;
      for(j=2;j<i;j++){
         if(i%j==0){divi1++;}
   }
      if(divi1==0){
         //invertimos el numero
         num=i;
         cifras=log10(num)+1;
         inv=0;
         while(num>0){
            digi=num%10;
            inv=inv+digi*pow(10,cifras-1);
            cifras--;
            num=num/10;
         }
         if(i!=inv){ //El numero y el invertido deben ser diferentes
            divi2=0;
            for(j=2;j<inv;j++){
               if(inv%j==0){
                  divi2++;
               }
      }
            if(divi2==0){
               primos++;
               printf("%i, %i :%i\n",i,inv,primos);
      }
         }
   }
      i++;
   }
   printf("\nExisten %i primos que cumplen la condicion\
n",primos);
   system("PAUSE");
}

P02: Elaborar un programa, que solicite el ingreso de


un número entero mayor a cero y menor o igual a 88, y a
partir de dicho número, genere e imprima el primer número capicúa que se genera mediante el
algoritmo mostrado en los siguientes ejemplos:

Ejemplo 1: Ingresamos el número 69


69 + 96 = 165
165 + 561 = 726
726 + 627 = 1353
1353 + 3531 = 4884 (capicúa)
#include<stdio.h>
#include<math.h>
main(){
   int i=1,capi,cifras,digi,num,inv;
   do{
      printf("Ingrese un numero entero mayor a cero:
");
      scanf("%i",&num);
   } while (num<=0);
   do{
      cifras=log10(num)+1;
      i=num;
      inv=0;
      while(i>0){//invertimos el numero
         digi=i%10;
         inv=inv+digi*pow(10,cifras-1);
         cifras--;
         i=i/10;
   }
      capi=num+inv;
      printf("%i + %i = %i\n",num,inv,capi);
      cifras=log10(capi)+1;
      i=capi;
      inv=0;
      while(i>0){
         digi=i%10;
         inv=inv+digi*pow(10,cifras-1);
         cifras--;
         i=i/10;
   }
      num=capi;
   } while(capi!=inv);
   printf("\n");
   system("PAUSE");
}

P03: En una prueba de conocimientos, los alumnos que participan son evaluados en tres
pruebas. Las calificaciones de cada prueba van desde "A" hasta "D". Elaborar un programa
que:
Solicite el ingreso por teclado de la cantidad de alumnos que participan de la prueba.
Solicite, por cada alumno, los resultados obtenidos en cada una de las tres pruebas.
Imprime en pantalla el alumno que mayor calificación ha obtenido y sus respectivas
calificaciones. En caso de existir más de un estudiante con la misma mayor calificación, se debe
imprimir el último estudiante que lo obtuvo.
Ejemplo:
Ingrese el numero de alumno: 4
Alumno1: Prueba1=B, Prueba2=A, Prueba3=C
Alumno2: Prueba1=A, Prueba2=B, Prueba3=C
Alumno3: Prueba1=B, Prueba2=D, Prueba3=A
Alumno4: Prueba1=B, Prueba2=A, Prueba3=C
Mayor calificación:
Alumno4: Prueba1=B, Prueba2=A, Prueba3=C
#include <stdio.h>
main(){
   int num,i,mejor=68*3,alumno; //ASCII D = 68
   char p1,p2,p3,r1,r2,r3;
   do{
      printf ("Ingrese la cantidad de alumnos: ");
      scanf ("%i",&num);
   }while (num<0);
   fflush(stdin);
   for (i=1;i<=num;i++){
      printf ("Alumno%i (Calificacion A-D):\n",i);
      do{
         printf ("\tIngrese Prueba1 = ");
         scanf ("%c",&p1);
         fflush(stdin);
      }while (p1<'A'||p1>'D');
      do{
         printf ("\tIngrese Prueba2 = ");
         scanf ("%c",&p2);
         fflush(stdin);
      }while (p2<'A'||p2>'D');
      do{
         printf ("\tIngrese Prueba3 = ");
         scanf ("%c",&p3);
         fflush(stdin);
      }while (p3<'A'||p3>'D');
      if (p1+p2+p3<=mejor){
         mejor=p1+p2+p3;
         alumno=i;
         r1=p1; r2=p2; r3=p3;
   }
   }
   if (num!=0){
      printf ("Mayor calificacion:\n");
      printf ("Alumno%i: Prueba1=%c, Prueba2=%c, Prueba3=%c\
n",alumno,r1,r2,r3);
   }
   else
      printf ("Ningun alumno se presento a la prueba\n");
   system ("PAUSE");
}

Examen final

EF-01: Elaborar un programa que


solicite el ingreso de un número
entero mayor que cero y genere un
arreglo bidimensional con una
determinada secuencia de números
enteros. Ejemplo: Para N = 4
EF-02: Elabore un programa que solicite el ingreso por teclado del número de filas y columnas
de un primer arreglo bidimensional (números mayores a 0) y el ingreso de un número entero
positivo k mayor a cero.

Mediante una función genere los elementos del primer arreglo bidimensional con números
enteros random con valores comprendidos entre 1 y 30.
En otra función se debe almacenar en un segundo arreglo bidimensional (del cual usted por
programa deberá calcular el tamaño), los elementos de cada fila formados por la suma de los k
elementos adyacentes del arreglo original (empezando por la izquierda). Si quedan menos de k
elementos al final de cada fila, se suman los que quedan.
En otra función debe imprimir el primer y segundo arreglo bidimensional.
En otra función debe calcular el mayor y el menor elemento de cada fila del segundo arreglo
bidimensional.
Ejemplo:

Número de filas = 3
Número de columnas = 7
Valor de k = 2
El primer arreglo bidimensional es:
2 3 6 10 7 4 5

469 1 039

1 5 3 12 8 4 6

El segundo arreglo bidimensional es:


5 16 11 5

10 10 3 9

6 15 12 6

Mayor valor de la fila 0 es 16 y el menor valor es 5.


Mayor valor de la fila 1 es 10 y el menor valor es 3.
Mayor valor de la fila 2 es 15 y el menor valor es 6.

EF-03: Construya un programa que en la función principal declare dos arreglos: uno
unidimensional y otro bidimensional, cuyos tamaños deben ser ingresados por teclado.
En una segunda función los cargue con números random comprendidos entre 5 y 35 (incluido
los extremos).
Construya otra función que debe imprimir los dos arreglos y la palabra “VERDADERO “o “FALSO
“, dependiendo si los valores del arreglo unidimensional crecen y decrecen en forma alterna de
izquierda a derecha y para el caso del bidimensional dependiendo si la suma de los elementos
de cada columna crece y decrecen en forma intercalada.
7 10 5 12 2 6 VERDADERO

1 8 13

2 5 10 FALSO

37 4

También podría gustarte