Está en la página 1de 5

Universidad Nacional Autónoma de Nicaragua, León.

Facultad Ciencias y Tecnología. Departamento de Computación


Laboratorio de Lógica de Programación
Guía # 11 (virtual) | Tema: Tipos Estructurados de Datos

Laboratorio de Programación Estructurada

Guía # 11 – Virtual
Video conferencia

Tipos Estructurados de Datos

Temas:
 Arreglos bidimensionales
 Cadenas de caracteres

Temporización:
Tiempo de desarrollo de la Práctica: 1 Sesión virtual
Fecha de realización de la Práctica: 16/06/2022.

Lic. Luis Ernesto Díaz Beteta


Universidad Nacional Autónoma de Nicaragua, León.
Facultad Ciencias y Tecnología. Departamento de Computación
Laboratorio de Lógica de Programación
Guía # 11 (virtual) | Tema: Tipos Estructurados de Datos

Ejercicio 1
En una estación meteorológica registramos la temperatura (en grados centígrados)
cada hora durante una semana. Almacenamos el resultado en una matriz de 7 × 24
(cada fila de la matriz contiene las 24 mediciones de un día).

Diseña un programa que lea los datos por teclado y muestre:


 .
 La máxima y .
 La temperatura media de la semana.
 .

Para dar solución al problema, implementaremos las siguientes funciones:


LeerTemperaturas, permite leer los datos ingresados por el usuario
ImprimirTemperaturas, muestra en pantalla los valores registrados en el array
TemperaturaMayorPorDia, recorre un vector correspondiente a las horas del dia
TemperaturaMenorPorDia, recorre un vector correspondiente a las horas del dia
TemperaturaMediaPorDia, calcula la media, según los registros del dia
TemperaturaMediaPorSemana, calcula la media de todos los registros

A continuación se presenta parte de la solución al problema propuesto, complete con el


código faltante.

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

#define DIAS 7
#define HORAS 24

void LeerTemperaturas( int a[][HORAS] ){


int i, j;
for(i=0; i<DIAS; i++) {
system("cls");
printf("-> Dia %d \n", i+1);
for( j=0; j<HORAS; j++ ){
printf("\tHora %d: ?", j+1);
__________________________
}
}
}

void ImprimirTemperaturas( int a[][HORAS] ){


int i, j;
for(i=0; i<DIAS; i++) {
printf("Dia %d, temperaturas - ", i+1);
for( j=0; j<HORAS; j++ )
Lic. Luis Ernesto Díaz Beteta
Universidad Nacional Autónoma de Nicaragua, León.
Facultad Ciencias y Tecnología. Departamento de Computación
Laboratorio de Lógica de Programación
Guía # 11 (virtual) | Tema: Tipos Estructurados de Datos

printf("%d ", a[i][j]);

putchar('\n');
}
}

int TemperaturaMayorPorDia( int a[] ){


int mayor, i;
mayor = _____________;
for(i=1; i<HORAS; i++) {
if( ___________ )
________________;
}
return mayor;
}

int TemperaturaMenorPorDia( int a[] ){


int menor, i;
menor = a[0];
for(i=1; i<HORAS; i++) {
if( ___________ )
______________;
}
return menor;
}

double TemperaturaMediaPorDia( int a[] ){


int suma, i;
suma = _________;
for(i=0; i<HORAS; i++)
________________________;

return suma / _______________ ;


}

double TemperaturaMediaPorSemana( int a[][HORAS] ){


int i;
double suma = 0, tem;

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


tem = TemperaturaMediaPorDia( ________ );
___________________;
}
return suma / _______________;
}

Lic. Luis Ernesto Díaz Beteta


Universidad Nacional Autónoma de Nicaragua, León.
Facultad Ciencias y Tecnología. Departamento de Computación
Laboratorio de Lógica de Programación
Guía # 11 (virtual) | Tema: Tipos Estructurados de Datos

int main(int argc, char *argv[]) {


int matriz[DIAS][HORAS] = {0};
int i, ma, me;
double tem;

LeerTemperaturas( matriz );
ImprimirTemperaturas( matriz );

for( i=0; i<DIAS; i++ )


{
ma = TemperaturaMayorPorDia( matriz[i] );
me = TemperaturaMenorPorDia( matriz[i] );
printf("\nTemperatura max %d, min: %d, dia %d", ma, me, i+1 );
}

for( i=0; i<DIAS; i++ )


{
tem = TemperaturaMediaPorDia( matriz[i] );
printf("\nTemperatura media del dia %d es: %f",i+1, tem );
}

tem = TemperaturaMediaPorSemana( matriz );


printf("\n\nTemperatura media de la semana %f", tem );

return 0;
}

Ejercicio 2
El siguiente programa cuenta la cantidad de caracteres que posee una cadena.
#include <stdio.h>
#define longitud 100

int main( ) {
char cadena[longitud] = {"Esta es una cadena"};
int i, len=0;

for (i = 0; cadena[i] != '\0' ; i++)


len++;

printf("\nLa cadena: %s, posee %d caracteres", cadena, len);


return 0;
}

Lic. Luis Ernesto Díaz Beteta


Universidad Nacional Autónoma de Nicaragua, León.
Facultad Ciencias y Tecnología. Departamento de Computación
Laboratorio de Lógica de Programación
Guía # 11 (virtual) | Tema: Tipos Estructurados de Datos

Utilizando el código anterior como guía creer un programa que permita copiar el
cometido de una cadena en otra cadena.

#include <stdio.h>
#define longitud 100

void copiar( char original[], char copia[] ){


int i;
for (i = 0; __________________ ; i++)
____________________________;

copia[i]=__________;
}

int main( ) {
char original[longitud] = {"Esta es una cadena"};
char copia[longitud];

copiar( original, copia );

printf("\nCadena original: %s", original);


printf("\nCopia: %s", copia);

return 0;
}

Lic. Luis Ernesto Díaz Beteta

También podría gustarte