Primera semana lenguaje C

Anuncio
████████████████████████████████████████████████████████
███████████
Actividad presencial en laboratorio de la Primera Semana
████████████████████████████████████████████████████████
███████████
Cargar el compilador del Turbo C++
Como primer programa a trabajar en Turbo C++: Cargue, lea observando todos los detalle y
luego compile y corra el siguiente programa: Cpp\BALADA.cpp
Estudiar cuatro enunciados dados a continuación. Para cada uno hay al menos una solución,
efectuada por compañeros suyos de semestres anteriores. Cambie las versiones en lo que crea
pertinente. Entregue al profesor sus versiones al final de la clase.
NOTA: Todas las actividades a evaluar en el laboratorio de computo serán realizadas por
máximo dos estudiantes y durante todo el semestre.
1. Digite las coordenadas rectangulares de dos puntos (x1, y1) y (x2,y2), obtenga la pendiente m, la
ecuación de la línea recta que los une, el ángulo que forma la recta con el eje X, el intercepto con el
eje Y, y la distancia D entre ellos:
y2 - y1
y - y1 = --------- · (x - x1);
x2 - x1
y - y1 = m· (x - x1)
despejando la expresión anterior obtenemos la ecuación de la recta: y = m·x – m·x1 + y1 en la
cual – m·x1 + y1 es el intercepto de la recta con el eje y, notación muy utilizada es y = m-x + b. Es
decir que b = y1– m·x1
Observar que si el término b es positivo el signo + no aparecerá en pantalla, de lo contrario, es
decir si es negativo, sí aparecerá. La falta del + dará mala presentación a la expresión de la línea
recta. Remediar esta situación utilizando una instrucción selectiva.
La distancia entre los dos puntos se calcula con:
D = ( (x2 – x1)² + (y2 - y1)² ) ½
El ángulo de inclinación de la recta sobre el eje X es el arco cuya tangente es igual a la pendiente:
ángulo = atan( pendiente ) //atan pertenece al archivo a incluir <math.h>.
Cpp\pendiente.CPP
Cpp\PENDI.CPP
2. Consultando la tabla de caracteres ASCII, escribir un programa que presente en pantalla el
siguiente cuadro:
1
Cpp\CUADRO.CPP
Para poder obtener cada carácter debe simultáneamente tener presionadas la tecla de ALT(alternate) y
en el teclado numérico digitar el código ASCII correspondiente:
32
40 (
42 *
50 2
52 4
60 <
62 >
70 F
72 H
80 P
82 R
90 Z
92 \
100 d
102 f
m 110
112 p
w 120
122 z
ü 130
132 ä
ï 140
142 Ä
ò 150
152 _
¦ 160
162 ó
® 170
172 ¼
│ 180
182 Â
¢ 190
192 └
à 200
202 ╩
Ð 210
212 ÈÈ
█ 220
33 !
41 )
43 +
51 3
53 5
61 =
63 ?
71 G
73 I
81 Q
83 S
91 [
93 ]
101 e
103 g
n 111
113 q
x 121
123 {
é 131
133 à
î 141
143 Å
û 151
153 Ö
á 161
163 ú
¬ 171
173 ¡
┤ 181
183 À
¥ 191
193 ┴
╚ 201
203 ╦
Ê 211
213 i
▄ 221
34 "
35 #
36 $
37 %
38 &
39 '
44 ,
45 -
46 .
47 /
48 0
49 1
54 6
55 7
56 8
57 9
58 :
59 ;
64 @
65 A
66 B
67 C
68 D
69 E
74 J
75 K
76 L
77 M
78 N
79 O
84 T
85 U
86 V
87 W
88 X
89 Y
94 ^
95 _
96 `
97 a
98 b
99 c
104 h
o
114 r
y
124 |
â
134 å
ì
144 É
ù
154 Ü
í
164 ñ
½
174 «
Á
184 ©
┐
194 ┬
╔
204 ╠
╙
214 Í
¦
105 i
106 j
107 k
108 l
109
115 s
116 t
117 u
118 v
119
125 }
126 ~
127
128 Ç
129
135 ç
136 ê
137 ë
138 è
139
145 æ
146 Æ
147 ô
148 ö
149
155 o
156 ú
157 ¥
158 _
159
165 Ñ
166 ª
167 º
168 ¿
169
175 »
176 ░
177 ▒
178 ▓
179
185 ╣
186 ║
187 ╗
188 ╝
189
195 ├
196 ─
197 ┼
198 ã
199
205 ═
206 ╬
207 ¤
208 ð
209
215 Î
216 Ï
217 ┘
218 ┌
219
2
222 Ì
223 _ 224
Õ 230 µ 231 þ
232 Þ
233 Ú 234
´ 240 - 241 ±
242 _
243 ¾ 244
¨ 250 · 251 ¹
252 ³
253 ² 254
Ó
225 ß
226 Ô
227 Ò
228 õ
229
Û
235 Ù
236 ý
237 Ý
238 ¯
239
¶
245 §
246 ÷
247 ¸
248 ÷
249
_
255
3. Solucione un sistema de ecuaciones lineales, compuesto de tres ecuaciones y tres incógnitas, por
el método de Cramer. Lea inicialmente los coeficientes (a, b, c, d, e, f, g, h, i, j, k, l) y calcule los
valores de las incógnitas X, Y, Z. El sistema general a solucionar, recuerde que son tres rectas en el
espacio, es el siguiente:
a ·X + b·Y + c·Z = d
e ·X + f ·Y + g·Z = h
i ·X + j ·Y + k·Z = l
Método de Cramer: calcule inicialmente el determinante del sistema dado, y luego los
determinantes particulares para cada variable, así:
a b c
S = e f g
i j k
d b c
X = h f g
l j k
a d c
Y = e h g
i l k
a b d
Z = e f h
i j l
finalmente calcule cada valor de las tres variables como la división entre el determinante
particular de cada variable y el determinante del sistema, así:
X
X = ---S
Y
Y = ---S
Z
Z = ---S
Cpp\KRAMER.CPP
Cpp\ECUACION.CPP
4. Una Compañía al recibir el pago de las facturas pendientes, a cada uno de sus cliente, efectúa los
siguientes pasos:
1. Inicia leyendo por teclado el nombre del cliente, número de cédula de ciudadanía, el total de
la factura y el número del día(0-31) en que está cancelando.
2. Si el cliente paga dentro de los diez primeros días, de cada mes, se le descuenta sobre la
factura un 3% y hasta un máximo (de descuento) de $20,000, por pronto pago. Debe aparecer
en pantalla un aviso que diga: "CANCELANDO ANTICIPADAMENTE".
3. Si paga dentro de los diez días(11-20) siguientes paga el total de la factura. Debe aparecer en
pantalla un aviso que diga: "CANCELANDO AL DÍA".
3
4. Si paga dentro de los últimos días(21-31) se le cobra un recargo sobre la factura del 3.5% y
unos gastos administrativos por cobranza a morosos de $5,000. En este caso debe aparecer un
aviso de advertencia en pantalla que diga: "CANCELANDO TARDÍAMENTE".
5. Se deben efectuar los cálculos necesarios para mostrar en pantalla los resultados pedidos a
continuación: el nombre del cliente con su cédula de identidad, valor original de la factura, el
descuento o recargos, y el neto a cancelar en efectivo.
Cpp\FACTURA.CPP
Cpp\FacturaS4.CPP Cpp\EMPRESA.CPP
████████████████████████████████████████████████████████
███████████
Actividad Independiente de la Primera Semana
████████████████████████████████████████████████████████
███████████



Estudie en detalle los siguientes 9 programas, hágalos correr y verifique que los entendió.
No pretenda aprenderse nada de memoria, poco a poco, con muchas horas de dedicación
lo irá aprendiendo, en contexto.
En la clase siguiente deben entregar por escrito –al profesor- preguntas sobre lo no
entendido, para su explicación debida.
Para la siguiente clase de laboratorio realizar programas para los tres enunciados, escrito
al final de este archivo. Deben entregar en disquete y en grupos de dos estudiantes el
siguiente sábado.
████████████████████████████████████████████████████████
████████████
Estudie en detalle los siguientes 9 programas, hágalos correr y verifique que los entendió, escriba
preguntas sobre los mismos.
1.
// Programa Cout02.CPP
#include <iostream.h>
void main(){
int N=0;
cout << "\n ...OBSERVA TODOS LOS CARACTERES....\n";
cout << "---------------------------------------------------------------\n";
cout << "\nLa variable N es igual a " << N << ". Ella es un entero\n";
cout << "\n\n\nArriba hay tres lineas en blanco\n";
4
cout << "\n1+ 2 + 3 = " << 1+2+3 << "\n";
N++;
cout << "La variable N ahora se incremento en uno = " << N << "\n\n";
cout << "Digite <Entrar> para terminar. El cursor esta aqui a la derecha";
}
2.
// Programa Cout03.CPP
#include <iostream.h>
void main(){
int a, b;
cout<<"Digite dos números enteros separados por al menos un espacio:\n";
cin >> a >> b;
// simule este error: dele a "b" un valor de cero
cout << "\nDivisión entera = " << a / b;
cout << "\nDivisión real = " << (float) a / b;
//ensaye a borrar el reforzador
cout << "\nResiduo división= " << a % b;
}
3. El siguiente algoritmo encuentra la distribución de como un cajero de un banco tiene que distribuir
una dada cantidad de dinero en la menor cantidad de billetes y monedas. Solo funciona para
cantidades enteras.
//Programa Cpp\Distribuir.cpp
#include <iostream.h>
#include <iomanip.h>
// Distribuir.CPP
void main(){
long int cantidad, saldo,
b20000, b10000, b5000, b2000, // billetes
m1000, m500, m200, m100, m50, m20, m10, m5, m2, m1; //monedas
cout << "Cantidad a repartir: ";
cin >> cantidad;
b20000 = cantidad / 20000;
saldo = cantidad % 20000;
5
b10000 = saldo / 10000;
saldo = saldo % 10000;
b5000 = saldo / 5000 ;
saldo = saldo % 5000;
b2000 = saldo / 2000;
saldo = saldo % 2000;
m1000 = saldo / 1000;
saldo = saldo % 1000;
m500 = saldo / 500;
saldo = saldo % 500;
m200 = saldo / 200;
saldo = saldo % 200;
m100 = saldo / 100;
saldo = saldo % 100;
m50 = saldo / 50;
saldo = saldo % 50;
m20 = saldo / 20;
saldo = saldo % 20;
m10 = saldo / 10;
saldo = saldo % 10;
m5 = saldo / 5;
saldo = saldo % 5;
m2 = saldo / 2;
m1 = saldo % 2;
cout << "\n──────────────────────────────────";
cout << "\nDENOMINACION CANTIDAD TOTAL($)";
cout << "\n──────────────────────────────────";
cout << "\n$20,000 " << "\t" << b20000 << "\t" << setw(10) << 20000*b20000;
cout << "\n$10,000 " << "\t" << b10000 << "\t" << setw(10) << 10000*b10000;
cout << "\n$ 5,000 " << "\t" << b5000 << "\t" << setw(10) << 5000*b5000;
cout << "\n$ 2,000 " << "\t" << b2000 << "\t" << setw(10)<< 2000*b2000;
cout << "\n$ 1,000 " << "\t" << m1000 << "\t" << setw(10)<< 1000*m1000;
cout << "\n$ 500 " << "\t" << m500 << "\t" << setw(10)<< 500*m500;
cout << "\n$ 200 " << "\t" << m200 << "\t" << setw(10)<< 200*m200;
cout << "\n$ 100 " << "\t" << m100 << "\t" << setw(10)<< 100*m100;
cout << "\n$ 50 " << "\t" << m50 << "\t" << setw(10)<< 50*m50;
cout << "\n$ 20 " << "\t" << m20 << "\t" << setw(10) << 20*m20;
cout << "\n$ 10 " << "\t" << m10 << "\t" << setw(10)<< 10*m10;
cout << "\n$ 5 " << "\t" << m5 << "\t" << setw(10)<< 5*m5;
cout << "\n$ 2 " << "\t" << m2 << "\t" << setw(10)<< 2*m2;
cout << "\n$ 1 " << "\t" << m1 << "\t" << setw(10)<< m1;
cout << "\n──────────────────────────────────\n";
cout.width(34); cout.fill('$'); cout << cantidad;
cout << "\n──────────────────────────────────";
6
cout << "\n\n\n Digite cualquier tecla para terminar";
getch();
}
4. El siguiente algoritmo presenta un error de lógica, el compilador no detectará ningún error. Por
favor corríjalo
//Programa Cpp\IF_000.CPP
#include <iostream.h>
//IF_000.CPP
void main(){
int numero;
cout << "Digite un número: ";
cin >> numero;
if (numero > 100);
// punto y coma da a entender que el if termina
cout << "Se digitó un número mayor a 100";
}
5. Este programa tiene un error de tipo lógico en las llaves { } del if. El compilador no dará ningún
error. Explique este error y corrija el programa.
//Programa Cpp\IF_001.CPP
#include <iostream.h>
//IF_001.CPP
void main(){
int numero;
cout << "Digite un número menor o igual a 100: ";
cin >> numero;
if (numero > 100)
numero = numero + 10;
cout << "Se digitó un número mayor a 100 \n";
cout << "y a continuación se incrementa en 10 para dar " << numero;
}
6. Este programa presenta un error de sintaxis en la instrucción else, debido a la falta de delimitadores
{ }. Corríjalo. El compilador no lo dejará ejecutar. Corríjalo, por favor.
//Programa Cpp\If0Error.cpp
#include <iostream.h>
//IF0ERROR.CPP
void main(){
int numero;
7
cout << "Digite un número: ";
cin >> numero;
if (numero > 100)
cout << "Se digitó un número mayor a 100 \n";
numero = numero + 10;
cout << "y a continuación se incrementa en 10 para dar " ;
else{
cout << "Se digitó un número menor o igual a 100 \n";
numero = numero - 10;
cout << "y a continuación se decrementa en 10 para dar " ;
}
cout << numero;
}
7. El siguiente programa permite leer la hora, minutos y segundos en un instante de tiempo; y a
continuación presenta la hora un segundo después. La hora aparecerá en el formato HH:MM:SS,
debiendo aparecer los seis dígitos aún cuando sean ceros. Efectúe pruebas de escritorio, para la hora
actual y para las 12:59:59
//Programa Cpp\HrMinSeg.cpp
#include <iostream.h>
//HrMinSeg.CPP
void main(){
int hora, minuto, segundo;
cout << "Digite hora(1-12): ";
cin >> hora;
cout << "Digite minutos (0-59): ";
cin >> minuto;
cout << "Digite segundos (0-59): ";
cin >> segundo;
segundo = segundo + 1;
if (segundo == 60){
segundo = 0;
minuto = minuto + 1;
if (minuto == 60){
minuto = 0;
hora = hora + 1;
if (hora == 13)
hora = 1;
}
8
}
if ( hora < 10)
cout << "0" << hora << ":";
else
cout << hora << ":";
if (minuto < 10)
cout << "0" << minuto << ":";
else
cout << minuto << ":";
if (segundo < 10)
cout << "0" << segundo;
else
cout << segundo;
}
8. Este programa emplea funciones matemáticas del archivo de cabecera "math.h"
//Programa Cpp\CoutIn06.cpp
#include <iostream.h>
#include <math.h>
#include <values.h> // MAXINT
//COUTIN06.CPP
void main(){
int a;
float x,y;
cout <<"▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄";
cout << "\nFUNCIONES VARIAS INCORPORADAS EN <MATH.H>\n";
cout <<"▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀";
cout << "\nNúmero para calcularle la raíz cuadrada: "; cin >> x;
cout << "Raíz cuadrada de " << x << " = " << sqrt(x);
cout<<"\n\nA continuación ejemplo de exponenciación: \n";
cout << "Digite un número como base: ";
cin >> x;
cout << "Digite el exponente: ";
cin >> y;
cout<<"
" <<x << " ^ " <<y << " = "<< pow(x,y);
cout << "\n\n
x ";
cout << "\nDigite un valor real x para obtener e : ";
cin >> x;
cout << " " << x << "\ne = " << exp(x);
cout << "\n\nEl número e = " << exp(1);
cout << "\n\nDigite un número real: ";
cin >> x;
9
cout<<"▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄";
cout << "\nFUNCIONES VARIAS INCORPORADAS EN <MATH.H>\n";
cout<<"▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀";
cout << "\nNúmero real: " << x;
cout << "\nLogaritmo natural = " << log(x);
cout << "\nLogaritmo decimal = " << log10(x);
cout << "\n\nRecuerde el máximo entero es " << MAXINT;
cout << "\n\nDigite un entero negativo: ";
cin >> a;
cout << "su valor absoluto es " << abs(a);
cout << "\n\nDigite un real negativo: ";
cin >> x;
cout << "su valor absoluto es " << fabs(x);
cout << "\n\nDigite un número con decimales: ";
cin >> x;
cout<<"Mayor entero, menor que " <<x << " = " <<floor(x);
cout<<"\nMenor entero, mayor que "<< x << " = "<<ceil(x);
cout << "\n\nHipotenusa de un triángulo rectángulo: ";
cout << "\nDigite un cateto: ";
cin >> x;
cout << "\Digite el otro cateto: ";
cin >> y;
cout << "\nLa hipotenusa es " << hypot(x, y);
}
9. El siguiente programa emplea funciones trigonométricas contenidas en el archivo de cabecera
"math.h"
//Programa Cpp\COUT003.CPP
#include <iostream.h>
#include <conio.h>
#include <math.h>
//COUT003.CPP
void main(){
double angulo = 0.0; //real de doble precisión, 8 bytes = 64 bits
cout << "Pi = " << M_PI;
cout.precision(7);
// se formatean los números con 7 decimales
cout.setf(ios::fixed);
// se utiliza notación fija en números
cout << "\n\nSeno ( " << angulo <<"° ) = " << sin(angulo * M_PI/180);
angulo += 30.0;
cout << "\nCoseno (" << angulo <<"° ) = " << cos(angulo * M_PI/180);
angulo += 30.0;
cout << "\nTangente (" << angulo << "° ) = "
<< sin(angulo*M_PI/180) / cos(angulo*M_PI/180);
angulo += 30.0;
10
cout << "\nCotangente(" << angulo << "° ) = "
<< cos(angulo*M_PI/180)/sin(angulo*M_PI/180);
angulo -= 30.0;
cout << "\nSecante (" << angulo << "°) = " << 1/cos(angulo* M_PI/180);
angulo -= 30.0;
cout << "\nCosecante (" << angulo << "°) = " << 1/sin(angulo * M_PI/180);
cout << "\nPi = " << M_PI;
cout.precision(1);
// se formatean los números con 1 decimal
cout.setf(ios::scientific);
// se utiliza notación científica
cout << "\nPi = " << M_PI;
cout << "\n\n Digite cualquier tecla y terminar...";
getch();
}
Programas a desarrollar:
1. Realice un programa que lea los coeficientes de una ecuación cuadrática del tipo aX2 + bX +c y a
continuación presente las raíces correspondientes, si es que existen en los reales, en caso de que
no exista, mostrar en pantalla el comentario: “Raíces imaginarias”. Adicionalmente si las dos
raíces son iguales manifestarlo por pantalla.
2. Desarrolle un algoritmo el cual determine si un triángulo es equilátero, isósceles o escaleno por
medio de la lectura desde teclado de sus ángulos interiores, valide previamente que la suma sea
180°.
3. Efectúe un algoritmo, teniendo en cuenta la sintaxis vista en este curso, para el siguiente
enunciado: En un campeonato de fútbol se enfrentan 3 equipos, por el sistema de todos contra
todos. Con tal motivo se realizan tres juegos. Los datos de entrada serán los goles de cada uno de
los dos equipos que se enfrentan en cada uno de los tres partidos. En cada partido si los dos
equipos empatan en goles cada uno obtiene un punto. Si un equipo gana, tendrá una puntuación
de 3; el equipo que perdió tendrá un puntaje de 0. Muestre los puntos obtenidos por cada uno de
los equipos al final del campeonato. Muestre los goles acumulados por cada uno de los equipos
al final del campeonato. Muestre la clasificación general del campeonato, observe que es posible
que ocurran empates en puntos al final. Muestre al equipo que más goles obtuvo durante el
campeonato, observe que es posible empates.
11
Descargar