-
Ejercicio 0102r01.-Construir un programa que pida las dimensiones de un rectángulo y calcule su área.
#include<stdio.h>
int main(int argc, char * argv) {
float base, altura;
float area;
printf("\n\nÁrea de un rectángulo\n\n");
printf("Escriba la base, por favor: ");
scanf("%f", &base);
printf("Escriba la altura, por favor: ");
scanf("%f", &altura);
area = base * altura;
printf("\n\nUn rectángulo de base %f y altura %f tiene un área de %f\n",
base,
altura,
area);
printf("\n\nFin del programa\n\n");
return 0;
}
-
Ejercicio 0102r02.-Construir un programa que pida el radio de una esfera y calcule su área y su volumen.
/*
Superficie = 4*pi*r^2
Volumen = 4/3*pi*r^3
*/
#include<stdio.h>
int main(int argc, char * argv) {
float radio, superficie, volumen;
float pi = 3.1415926535;
printf("\n\nÁrea y volumen de una esfera\n\n");
printf("Escriba el radio, por favor: ");
scanf("%f", &radio);
superficie = 4.0*pi*radio*radio;
volumen = 4.0/3.0*pi*radio*radio*radio;
printf("\n\nUna esfera de radio %f tiene una superficie de %f y un volumen de %f\n\n", radio, superficie, volumen);
return 0;
}
-
Ejercicio 0102r03.-Construir un programa que pida las dimensiones de un prisma y calcule la superficie del mismo (suma de superficies de sus caras).
#include<stdio.h>
int main(int argc, char * argv[]) {
/* Declaración de variables */
float anchura, altura, profundidad;
float sup_base, sup_frontal, sup_lateral,sup_total;
/*Lectura de datos*/
printf("\n\nSuperficie total de un prisma\n\n");
printf("Por favor, deme la anchura :");
scanf("%f", &anchura);
printf("Por favor, deme la altura :");
scanf("%f", &altura);
printf("Por favor, deme la profundidad :");
scanf("%f", &profundidad);
/*Cálculo*/
sup_base = anchura * profundidad;
sup_frontal = anchura * altura;
sup_lateral = profundidad * altura;
sup_total = 2*(sup_base + sup_frontal + sup_lateral);
/*Resultados*/
printf("\n\nCaracterísticas del prisma :\n\n");
printf(" Anchura : %f\n", anchura);
printf(" Altura : %f\n", altura);
printf(" Profundidad : %f\n\n", profundidad);
printf(" Superficie de la base : %f\n", sup_base);
printf(" Superficie frontal : %f\n", sup_frontal);
printf(" Superficie lateral : %f\n\n", sup_lateral);
printf("***Superficie total : %f\n\n", sup_total);
}
-
Ejercicio 0102r04.-Un camión transporta T kilogramos de baldosas; se sabe que cada baldosa pesa B kilogramos. Las baldosas se van a utilizar para recubrir una superficie rectangular. Se pide construir un programa que indique el número de baldosas que habría en un lado del mayor cuadrado que se pueda recubrir con ésas baldosas, sin romperlas.
#include<stdio.h>
#include<math.h>
/*
El problema es que no se pueden romper baldosas. Esto exige calcular
el número de baldosas del lado del cuadrado máximo que se puede
recubrir, y que no es otro que la raíz cuadrada del cociente de la
carga del camión por el peso de una baldosas, esto es, la raíz
cuadrada del número de baldosas. Ese número no va a ser entero
en general; si lo fuera, se podría construir un cuadrado de
dimensiones máximas para la carga. Sólo falta calcular la parte
entera del cociente, y ése será el tamaño del cuadrado que se
puede recubrir sin romper baldosas.
*/
int main(int argc, char * argv[]) {
float t, b;
int lado;
printf("\n\nNúmero de baldosas.\n\n");
printf("Escriba el nº de kilogramos que transporta el camión: ");
scanf("%f", &t);
printf("Escriba el peso de una baldosa en kilogramos : ");
scanf("%f", &b);
lado = (int)sqrt(t/b);
printf("El lado del cuadrado es %d.\n\n", lado);
return 0;
}
-
Ejercicio 0102r05.-Se dispone de dos matrices 2x2, cuya suma se quiere calcular. Se pide construir un programa que pida los datos oportunos y calcule el resultado deseado, mostrándolo después en pantalla.
#include<stdio.h>
int main(int argc, char * argv[])
{
float a11, a12, a21, a22;
float b11, b12, b21, b22;
float c11, c12, c21, c22;
/* Lectura de datos */
printf("\n\nSuma de matrices\n\n");
printf("Escriba una matriz 2x2 por filas (a11, a12, a21 y a22):");
scanf("%f %f %f %f", &a11, &a12, &a21, &a22);
printf("Escriba otra matriz 2x2 por filas (b11, b12, b21 y b22):");
scanf("%f %f %f %f", &b11, &b12, &b21, &b22);
/* Cálculo */
c11 = a11 + b11;
c12 = a12 + b12;
c21 = a21 + b21;
c22 = a22 + b22;
/* Impresión de resultados */
printf("\n\nLa primera matriz es:\n\n");
printf("|%f %f|\n|%f %f|", a11, a12, a21, a22);
printf("\n\nLa segunda matriz es matriz es:\n\n");
printf("|%f %f|\n|%f %f|", b11, b12, b21, b22);
printf("\n\nLa matriz suma es:\n\n");
printf("|%f %f|\n|%f %f|", c11, c12, c21, c22);
printf("\n\nFin del programa.\n\n");
return 0;
}
-
Ejercicio 0102r06.-Repetir el ejercicio anterior, calculando esta vez el producto de las matrices leídas.
#include<stdio.h>
int main(int argc, char * argv[])
{
float a11, a12, a21, a22;
float b11, b12, b21, b22;
float c11, c12, c21, c22;
/* Lectura de datos */
printf("\n\nProducto de matrices\n\n");
printf("Escriba una matriz 2x2 por filas (a11, a12, a21 y a22):");
scanf("%f %f %f %f", &a11, &a12, &a21, &a22);
printf("Escriba otra matriz 2x2 por filas (b11, b12, b21 y b22):");
scanf("%f %f %f %f", &b11, &b12, &b21, &b22);
/* Cálculo */
c11 = a11*b11 + a12*b21;
c12 = a11*b12 + a12*b22;
c21 = a21*b11 + a22*b21;
c22 = a21*b12 + a22*b22;
/* Impresión de resultados */
printf("\n\nLa primera matriz es:\n\n");
printf("|%f %f|\n|%f %f|", a11, a12, a21, a22);
printf("\n\nLa segunda matriz es:\n\n");
printf("|%f %f|\n|%f %f|", b11, b12, b21, b22);
printf("\n\nLa matriz producto es:\n\n");
printf("|%f %f|\n|%f %f|", c11, c12, c21, c22);
printf("\n\nFin del programa.\n\n");
return 0;
}
-
Ejercicio 0102r07.-En una clase de 10 alumnos, se dispone de las notas correspondientes a tres evaluaciones. Se pide calcular la nota media de cada alumno individual para las tres evaluaciones, y la media de la clase en cada evaluación.
#include<stdio.h>
/* Este problema se puede resolver empleando 10x3 variables
para almacenar las calificaciones. Esto exigiría unas
declaraciones de variables como las siguientes:
float a11, a12, a13;
float a21, a22, a23;
float a31, a32, a33;
float a41, a42, a43;
float a51, a52, a53;
float a61, a62, a63;
float a71, a72, a73;
float a81, a82, a83;
float a91, a92, a93;
float a101, a102, a103;
en donde el primer número oscila entre 1 y 10
y denota el alumno, y el segundo número oscila
entre 1 y 3, y denota la evaluación. Afortunadamente,
C ofrece estructuras matriciales, que se estudiarán
en el Tema 6, y que permiten abreviar notablemente
el programa, al emplear una sola variable de
diez filas y tres columnas, en lugar de utilizar
treinta variables diferentes.
*/
#define ALUMNOS 10
#define EVALUACIONES 3
int main(int argc, char * argv[])
{
float notas[ALUMNOS][EVALUACIONES];
float media_alumno[ALUMNOS];
float media_evaluacion[EVALUACIONES];
int i, j;
float temp;
/* Lectura de datos */
printf("\n\nInforme de calificaciones.\n\n");
for(i=0;i<ALUMNOS;i++)
{
printf("Escriba las notas de las tres evaluaciones del alumno %d: ",i);
scanf("%f %f %f", ¬as[i][0],¬as[i][1],¬as[i][2]);
}
/* Cálculo de medias de cada alumno */
for(i=0;i<ALUMNOS;i++)
media_alumno[i] = (notas[i][0]+notas[i][1]+notas[i][2])/EVALUACIONES;
/* Cálculo de medias de evaluación */
for(i=0;i<EVALUACIONES;i++)
{
temp = 0.0;
for(j=0;j<ALUMNOS;j++)
temp = temp + notas[j][i];
media_evaluacion[i] = temp/ALUMNOS;
}
/* Impresión de resultados */
printf("\n\nTabla de resultados\n\n");
for(i=0;i<ALUMNOS;i++)
{
printf("Alumno %d : %f %f %f %f\n", i,
notas[i][0],
notas[i][1],
notas[i][2],
media_alumno[i]);
}
printf("Evaluación %f %f %f\n", media_evaluacion[0],
media_evaluacion[1],
media_evaluacion[2]);
printf("\n\nFin del programa.\n\n");
return 0;
}