Está en la página 1de 9

UNIVERSIDAD NACIONAL DE TRUJILLO

FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS


ESCUELA DE INFORMATICA

LABORATORIO 2

ESTRUCTURA DE DATOS

DOCENTE:

• ING. CRUZ FLORIÁN, IRIS AUREA

ALUMNO:

• ASUNCION VELASQUEZ, LUIS ENRIQUE

CICLO: II

TRUJILLO - PERU

2022
I. CREA TUS PROPIAS FUNCIONES DE CADENAS:

1) Dada una cadena, Hallar su longitud (considerando que la cadena también

puede tener espacios)

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
int longitud(char cadena[])
{
int contador=0;
while (cadena[contador] != '\0')
contador++;
return(contador);
}
int main()
{
char cadena[30];
cout<<"\tEscriba una palabra: ";
cin>>cadena;
cout<<"\tLa longitud de la cadena es de: "<<longitud(cadena)<<" letras";
getch();
}
2) Dados: una cadena, una posición menor que dicha cadena y un carácter.

Insertar el carácter en dicha posición de la cadena.

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
int longitud(char cadena[])
{
int contador=0;
while (cadena[contador] != '\0')
contador++;
return(contador);
}
int cambiar(char cad1[],char cad2[], int pos)
{
int m;
m=longitud(cad1);
for(int i=0;i<=m;i++)
{
if(i+1==pos)
{
for(int i=m+1; i>=pos; i--)
{
cad1[i]=cad1[i-1];
}
cad1[i]=cad2[0];
}
}
cout<<"La nueva palabra es: ";
for(int i=0; i<m+1; i++)
{
cout<<cad1[i];
}
}
int main()
{
char p1[10],p2[1];
int pos=0;
cout<<"Ingrese una palabra: ";
gets(p1);
cout<<"Ingrese una posicion donde desea agregar un caracter: ";
cin>>pos;
cout<<"Ingrese un caracter: ";
cin>>p2[0];
cambiar(p1,p2,pos);
getch();
}
3) Dadas dos cadenas. Comparar si las dos cadenas son exactamente iguales. Esta

función devolverá un valor de acuerdo al resultado de la comparación:

0 si las dos cadenas son exactamente iguales

1 si la cadena1 es mayor a la cadena2

-1 si la cadena1 es menor que la cadena2

#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
int longitud(char cadena[])
{
int contador=0;
while (cadena[contador] != '\0')
contador++;
return(contador);
}
int comprobar(char c1[], char c2[])
{
int n1,n2;
int m=2;
n1=longitud(c1);
n2=longitud(c2);
if(strcmp(c1,c2) == 0)
{
m=0;
}
else
{
if(n1<n2)
{
m=-1;
}
else
{
if(n1>n2)
{
m=1;
}
}
}
return(m);
}
int main()
{
char p1[10],p2[10];
int m;
cout<<"Ingrese una palabra: ";
gets(p1);
cout<<"Ingrese otra palabra: ";
gets(p2);
m=comprobar(p1,p2);
if(m==0)
{
cout<<"La cadena ("<<p1<<") es igual que la cadena ("<<p2<<")";
}
else
{
if(m==-1)
{
cout<<"La cadena ("<<p1<<") es menor que la cadena ("<<p2<<")";
}
else
{
if(m==1)
{
cout<<"La cadena ("<<p1<<") es mayor que la cadena
("<<p2<<")";
}
else
{
cout<<"La cadena ("<<p1<<") es diferente que la cadena
("<<p2<<")";
}
}
}
getch();
}
II. RESUELVE LOS PROBLEMAS CON ARREGLOS:

4. 10 alumnos del primer ciclo de la carrera de Informática toman inicialmente 6

materias lo que quiere decir que al final del semestre tendrá 6 notas cada

alumno. Escribir un programa que pida las 6 notas de los 10 alumnos y luego

devuelva el promedio de todas las notas. (Usar arreglo bidimensional)

#include <iostream> CODIGO:


#include<conio.h>
using namespace std;
int main()
{
float A[10][6], prom[10], sum=0;
for(int i=0; i<10; i++)
{
cout<<"Alumno "<<i+1<<":"<<endl;
for(int j=0;j<6;j++)
{
cout<<"Ingrese Nota "<<j+1<<": ";
cin>>A[i][j];
while(A[i][j]>20 or A[i][j]<0)//comprueba nota
{
cout<<"Error. La nota debe ser de 0-20\n";
cout<<"Ingrese Nota "<<j+1<<": ";
cin>>A[i][j];
}
sum+=A[i][j];
prom[i]=sum/6;
if(j==5)
{
sum=0;
}
}
}
system("cls");
cout<<" ALUMNO\t\t"<<"NOTAS\t"<<"\t PROMEDIOS\n";
cout<<"---------\t"<<"-------------------\t"<<"-----------\n";
for(int i=0; i<10; i++)
{
cout<<"Alumno "<<i+1<<":"<<"\t";
for(int j=0; j<6; j++)
{
cout<<A[i][j]<<" ";
if(j==5)
{
cout<<"\t\t"<<prom[i]<<endl;
}
}
}
getch();
}
PRUEBAS:

5. Teniendo como base el problema anterior, ahora se considera 4 semestres, es

decir usarás un arreglo tridimensional como la figura:


a) Ingresar datos

b) Después de haber ingresado datos por teclado, se debe mostrar para cada semestre:

las notas de cada alumno y su promedio, como el siguiente reporte:


#include<iostream> CODIGO:
#include<conio.h>
using namespace std;
int main()
{
float A[10][6][4], prom[40], sum=0;
for(int k=0; k<4; k++)
{
cout<<"\nSemestre "<<k+1<<": \n";
for(int i=0; i<10; i++)
{
cout<<" Alumno "<<i+1<<": \n";
for(int j=0; j<6; j++)
{
cout<<" Ingrese Nota "<<j+1<<": ";
cin>>A[i][j][k];
while(A[i][j][k]>20 or A[i][j][k]<0)
{
cout<<"Error. La nota debe ser de 0-20\n";
cout<<"Ingrese Nota "<<j+1<<": ";
cin>>A[i][j][k];
}
sum+=A[i][j][k];
prom[i]=sum/6;
if(j==5)
{
sum=0;
}
}
}
}
system("cls");
for(int k=0; k<4;k++)
{
cout<<"\nSEMESTRE "<<k+1<<": \n";
cout<<" ALUMNOS\t\t"<<" NOTAS\t"<<"\t PROMEDIOS\n";
for(int i=0; i<10; i++)
{
cout<<"Alumno "<<i+1<<":"<<"\t";
for(int j=0; j<6; j++)
{
cout<<A[i][j][k]<<" ";
if(j==5)
{
cout<<"\t"<<prom[i]<<endl;
}
}
}
}
getch();
}

También podría gustarte