Вы находитесь на странице: 1из 8

Pr

actica No 01 de Estructura de datos


Integrantes:
Antonio Adolfo Vargas Vergaray
Braulio Renato Acosta Martnez
Dennis Steef Tovar Cabrera
Diego Augusto Otoya Paz
Manuel Jes
us de la Cruz Sotelo

1. Calcular el n
umero m
aximo de tres n
umeros ingresados.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

#include <iostream>
using namespace std;
int mayor(int a,int b) {
return (a>b)? a : b;
}
int mayor(int a,int b,int c) {
return mayor(mayor(a,b),c);
}
int main() {
int num1,num2,num3;
cout << "Introduzca los tres n
umeros: ";
cin >> num1 >> num2 >> num3;
cout << "El mayor de los n
umeros es: " << mayor(num1,num2,num3) << "!\n";
return 0;
}

2. Convierta temperaturas de grados Celsius a grados Fahrenheit y viceversa.


1 #include <iostream>
2 using namespace std;
3
4 int main() {
5
double temp=0.0,farn,cels;
6
char grd;
7
cout << "Ingrese la temperatura" << endl;
8
cin >> temp >> grd;
9
if(grd==C){
10
farn = 9*temp/5.0 + 32;
11
cout << "La temperatura en Fahrenheit es :" << farn;
12
}
13
else if(grd==F){
14
cels = 5*(temp-32)/9.0;
1

15
cout << "La temperatura en Celsius es :" << cels;
16
}
17
return 0;
18 }
3. Realizar un algoritmo que permita imprimir los n
umeros divisores de un n
umero N positivo que
esta en el rango de 10 a 100.
1
2
3
4
5
6
7
8
9
10
11
12
13

#include <iostream>
using namespace std;
int main() {
int n;
cout << "Ingrese el numero: ";
cin >> n;
cout << "Los divisores de " << n << " en el rango de 10 a 100 son: " << endl;
for(int i=10;i<=100;++i) {
if(!(n %i)) cout << i << endl;
}
return 0;
}

4. Realizar un programa que pregunte al usuario si desea ingresar datos (SI/NO), de ser la respuesta
SI debe pedir los siguientes datos: c
odigo, nombre, horas trabajadas, pagor por horas trabajadas y
descuento. Luego deber
a calcular el sueldo neto a pagar e imprimir, despues se debera preguntar si
desea hacer otro ingreso de datos (SI/NO). De ser la respuesta NO, terminara el algoritmo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

#include <iostream>
#include <cstdio>
using namespace std;
int main() {
bool rpt = true;
int hrs;
double pghrs,dsct,total;
string op,cod,nombre;
while(rpt) {
cout << "Desea ingresar datos al sistema (SI/NO)" << endl;
cin >> op;
if(op=="NO") {
rpt = false;
}
else {
cout << "Ingrese Codigo" << endl;
cin >> cod;
getchar();
cout << "Ingrese Nombre" << endl;
getline(cin,nombre);
cout << "Ingrese horas trabajadas" << endl;
cin >> hrs;
cout << "Ingrese pago por horas trabajadas" << endl;
cin >> pghrs;
cout << "Ingrese descuento" << endl;
cin >> dsct;
total = hrs*pghrs - dsct;
cout << nombre << " su Sueldo Neto es: " << total << endl;
}

31
}
32
return 0;
33 }
5. Una compa
na renta autos de tres clases: chicos, medianos y grandes. El alquiler por da de autos
es el siguiente:
A = auto chico, 15 $ por da
B = auto mediano, 20 $ por da
C = auto grande, 30 $ por da
Adem
as la compa
na cobra 20 centavos de $ por Km de recorrido en el auto chico, 30 centavos de
$ por Km de recorrido en el auto mediano y 40 centavos de $ por Km de recorrido en el auto grande.
Realizar el algoritmo que pida el tipo de auto alquilado y valide por si no se ha ingresado cualquiera
de los tres tipos de auto. El algoritmo debera mostrar un mensaje indicando que se ingrese bien el
tupo de auto. De haberse ingresado bien el tipo de auto, el programa debera pedir que se ingrese
el n
umero de das alquilado y luego los Km recorridos. Luego se debera imprimir automaticamente
el monto a pagar por alquiler.
Nota: las tazas de alquiler por Km deben ser definidas como constantes. La formula para calcular
el monto es:
TAZA TIPO DE AUTO DIA
MONTO =
TAZA KM RECORRIDO KM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

#include<iostream>
using namespace std;
const double tazaChico = 0.2;
const double tazaMediano = 0.3;
const double tazaGrande = 0.4;
int main() {
char tipo;
int diasAlquilados, kmRecorridos;
double monto;
cout << "Ingrese el tipo de auto alquilado (A,B o C):\n";
do {
cin >> tipo;
if (tipo != A && tipo != B && tipo != C) {
cout << "Ingrese solo los tipos ofrecidos (A,B o C)\n";
}
} while (tipo != A && tipo != B && tipo != C);
cout << "Ingrese el No de dias alquilados :\n";
cin >> diasAlquilados;
cout << "Ingrese el No de kilometros alquilados :\n";
cin >> kmRecorridos;
switch (tipo) {
case A: monto = 15 / tazaChico;
break;
case B: monto = 20 / tazaMediano;
break;
case C: monto = 30 / tazaGrande;
break;
}
monto = monto * diasAlquilados / kmRecorridos;
cout << "\nEl monto a pagar es: " << monto << " $" << endl;
return 0;
3

34 }
35
6. Realizar un algoritmo que permita ayudar a todos aquellos alumnos desaprobados en el promedio
final aumentando dos puntos a su promedio siempre y cuando hayan entregado su trabajo. De no
cumplirse con esta condici
on el promedio final debe permanecer igual.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

#include <iostream>
using namespace std;
#define aprob 10.5
int main() {
float nota;
int flag;
bool trabajo=false;
cout << "Ingrese nota promedio" << endl;
cin >> nota;
cout << "Entrego trabajo? (si= 1 no= otro) " << endl;
cin >> flag;
if(flag==1) trabajo=true;
if(nota<aprob && trabajo) nota+=2;
cout << "Su promedio es: " << nota << endl;
return 0;
}

7. Realizar un algoritmo para realizar que se repita una secuencia de n


umeros en el rango de 0 a 40.
8. Realizar un algoritmo que permita pedir el ingreso de 4 notas y valide para que las notas sean
mayores que 0 y menores o iguales que 20.
1 #include <iostream>
2 using namespace std;
3
4 int main() {
5
int notas[4];
6
cout << "Ingrese notas :\n";
7
for (int i = 0; i < 4; i++) {
8
cout << "Nota " << i + 1 << " : ";
9
do {
10
cin >> notas[i];
11
if (notas[i] < 1 || notas [i] > 20)
12
cout << "Error, las notas deben
que 20\n";
13
cout << "Nota " << i + 1 << " :
14
}
15
} while (notas[i] < 1 || notas [i] >
16
}
17
return 0;
18 }

{
ser mayores que cero y menores o iguales
";
20);

9. Realizar un algoritmo que pida el ingreso del n


umero de alumnos a promediar en una clase, luego
pida el nombre de los alumnos y sus promedios. Al final el algoritmo debe imprimir el promedio
general de la clase y el nombre y la nota del mejor alumno.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
int numAlum;
float nota,max=-9999,suma;
string nombre,aux;
cout << "Ingrese cantidad de alumnos: " << endl;
cin >> numAlum;
for(int i=1;i<=numAlum;i++) {
fflush(stdin);
cout << "Ingrese nombre del " << i << " Alumno" << endl;
getline(cin,nombre);
cout << "Ingrese su nota" << endl;
cin >> nota;
suma += nota;
if(nota>max) {
max=nota;
aux=nombre;
}
}
cout << "El promedio de la clase es: " << suma/numAlum << endl;
cout << "El alumno con mejor nota es: " << aux<< ", y obtuvo: " << max;
return 0;
}

10. Realizar un agoritmo que pida ingresar N n


umeros y que finalice cuando se ingrese uno negativo e
imprima el promedio de los ingresados.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include <iostream>
#include <cstdio>
using namespace std;
int main() {
/* Lo que hace este programa es leer n
umeros del teclado hasta
* encontrar un n
umero negativo, luego mostrar el promedio de
* los que se leyeron exitosamente.
*/
int suma = 0,num,cont = 0;
while(cin >> num and num>=0 and ++cont) suma += num;
printf("El promedio de los n
umeros ingresados es: %.3f.\n",float(suma/cont));
return 0;
}

11. Escribir un algoritmo que genere una tabla de multiplicar del uno al doce de un n
umero pedido. La
salida debe tener el siguiente formato
Tabla de Multiplicar del (n
umero)

1n=
2n=
3n=
..
.
12 n =

1
2
3
4
5
6
7
8
9
10
11

#include <iostream>
using namespace std;
int main() {
int n;
cout << "Ingrese el n
umero n: ";
cin >> n;
printf("Tabla de multiplicar del %d:\n",n);
for(int i=1;i<=12;++i) printf("\t %d x %d = %d\n",i,n,n*i);
return 0;
}

12. Escribir un algoritmo que permita almacenar el texto de un documento en un archivo, lo grabe y
salga cuando se digite la palabra "FIN".
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ofstream fs("archivo.txt");
string texto;
do {
getline(cin, texto, \n);
fs << texto << endl;
} while (texto != "FIN");
fs.close();
return 0;
}

13. Realizar un algoritmo para leer un archivo DOCUM1 ya creado. Leer el texto del archivo, caracter
por car
acter desde el primero hasta el u
ltimo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include <iostream>
#include <fstream>
using namespace std;
int main() {
FILE *fpr;
char c;
fpr = fopen("DOCUM1", "r");
while (feof(fpr) == 0){
c = fgetc(fpr);
cout << c;
}
return 0;
}

14. Realizar un algoritmo para leer un archivo DOCUM1 ya creado. Leer el texto del archivo, lnea por
lnea.
1 #include <fstream>
2
3 int main() {
4
std::fstream file("DOCUM1",std::fstream::in);
5
std::string cad;
6
while(getline(file,cad))
7
return 0;
8 }
15. Escribir un algoritmo que permita guardar datos de 10 alumnos de una clase en un archivo llamado
ALUMNOS. La informaci
on para cada alumno es como sigue:
C
odigo: String de 5 car
acteres
Nombre: String de 25 car
acteres
Nota: n
umero entero entre 0 y 20.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define n 10
using namespace std;
struct Alumno{
char codigo[5];
char nombre[25];
float nota;
};
int main(){
FILE *F;
Alumno alumnos;
F=fopen("Alumno.txt","a+");
if(F==NULL) {
cout<<"No se puede abrir el archivo"<<endl;
exit(1);
}
else {
for(int i=0;i<n;i++) {
fflush(stdin);
cout<<"Ingrese nombre"<<endl;
gets(alumnos.nombre);
cout<<"Ingrese codigo"<<endl;
gets(alumnos.codigo);
cout<<"Ingrese nota"<<endl;
cin>>alumnos.nota;
fwrite(&alumnos,sizeof(struct Alumno),1,F);
}
cout<<"Se guardo el archivo"<<endl;
}
fclose(F);
return 0;
7

40 }
16. Escribir un algoritmo que permita ingresar datos de un grupo de personas aficionadas al f
utbol a
un archivo llamado Deporte que tenga por estructura la siguiente:
C
odigo: String de 5 car
acteres
Nombre: String de 25 car
acteres
Edad: n
umero entero
Equipo: String de 15 car
acteres
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

#include <iostream>
#include <fstream>
using namespace std;
struct Deporte {
string codigo;
string nombre;
int edad;
string equipo;
Deporte(const string &cod,const string &nom,int ed,const string &eq) {
codigo = cod, nombre = nom;
edad = ed, equipo = eq;
}
void archivar(fstream &file) {
file << codigo << endl;
file << nombre << endl;
file << edad << endl;
file << equipo << endl;
}
};
int main() {
fstream archivo("Archivo.txt",fstream::out);
Deporte ejemplo("U",
"Universitario",
88,
"UNIVERSITARIO");
ejemplo.archivar(archivo);
return 0;
}

Вам также может понравиться