• No se han encontrado resultados

Arón Herrera Ponte C++

N/A
N/A
Protected

Academic year: 2021

Share "Arón Herrera Ponte C++"

Copied!
19
0
0

Texto completo

(1)
(2)

Prof. Arón Elías Herrera Ponte Pág. 2

Capítulo 1.

Estructuras Secuenciales

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.

En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma:

Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos:

• Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo.

El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de una estructura secuencial. Ahora veremos los componentes que pertenecen a ella:

Acción 1

Acción 2

Acción N INICIO

(3)

Prof. Arón Elías Herrera Ponte Pág. 3 Asignación

La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma:

• Simples: Consiste en pasar un valor constante a una variable (a 15)

• Contador: Consiste en usarla como un verificador del numero de veces que se

realiza un proceso (a a + 1)

• Acumulador: Consiste en usarla como un sumador en un proceso (a a + b)

• De trabajo: Donde puede recibir el resultado de una operación matemática que

involucre muchas variables (a c + b*2/4).

En general el formato a utilizar es el siguiente:

< Variable > <valor o expresión >

El símbolo debe leerse “asigne”.

Escritura o salida de datos

Consiste en mandar por un dispositivo de salida (por ejemplo: monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa así como sigue:

Pseudocódigo

ESCRIBIR(“MENSAJE CUALQUIERA”) ESCRIBIR( <variable> )

ESCRIBIR(“La variable es: ”, <variable>)

Lectura o entrada de datos

La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (por ejemplo: el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así:

Pseudocódigo LEER(<variable 1> ) LEER( <variable 2> ) LEER(<variable 3> )

DECLARACION DE VARIABLES Y CONSTANTES

La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es.

ENTERO : Contador ENTERO : Edad, I

CADENA_DE_CARACTERES : Direccion REAL : Salario_Basico

CARACTER : Opcion

(4)

Prof. Arón Elías Herrera Ponte Pág. 4 Salario_Basico es una variable de tipo real, Opcion es de tipo carácter y la variable Direccion está declarada como una variable alfanumérica de cadena de caracteres.

En el momento de declarar constantes debe indicarse usando la palabra CONSTANTE y colocarse su respectivo valor.

CONSTANTE Pi 3.14159

CONSTANTE Msg “Presione una tecla y continue” CONSTANTE ALTURA 40

Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables ni tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza declarar las variables. Sin embargo en este curso lo haremos para todos los algoritmos que realicemos, con esto logramos hacerlos más entendibles y organizados y de paso permite acostumbrarnos a declararlas ya que la mayoría de los lenguajes de programación (entre ellos el C++) requieren que necesariamente se declaren las variables que se van a usar en los programas.

Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre algoritmos:

Ejemplo 1: Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos.

Pseudocódigo:

VARIABLES ENTERO : Num1, Num2, Suma

ACCION Suman_de_numeros ESCRIBIR("Diga dos números:")

LEER(Num1, Num2)

Suma  Num1 + Num2 ESCRIBIR("La Suma es:", Suma) FIN _ACCION

(5)

Prof. Arón Elías Herrera Ponte Pág. 5

Pseudocódigo:

VARIABLES ENTERO : Base, Altura

ACCION Area_de_triangulo ESCRIBIR("Diga la Base:")

LEER(Base)

ESCRIBIR("Diga la Altura:") LEER(Altura)

ESCRIBIR("Área del triangulo:",

(6)

Prof. Arón Elías Herrera Ponte Pág. 6 Práctica Dirigida N° 1

Estructuras Secuenciales Problema 1:

Hacer un algoritmo que permita obtener el tiempo en segundos, si se ingresa el tiempo en horas, minutos y segundos. ( Ejm. 15 hrs 20 min 30 seg )

Pseudocódigo

VARIABLES ENTERO_LARGO : hora, minuto, segundo, R

ACCION Convertir_a_segundos ESCRIBIR("Ingrese las Horas :") LEER(hora)

ESCRIBIR("Ingrese los Minutos :") LEER(minuto)

ESCRIBIR("Ingrese los Segundos :") LEER(segundo) R  hora*3600 + minuto*60 + segundo

ESCRIBIR("La hora en segundos es :", R) FIN _ACCION

Diagrama de Flujo

INICIO

FIN

ENTERO_LARGO : hora, minuto, segundo, R "Ingrese las Horas:"

hora

minuto

segundo

"Ingrese los Minutos:"

"Ingrese los Segundos:"

(7)

Prof. Arón Elías Herrera Ponte Pág. 7 C++ #include <iostream.h> #include <conio.h> void main(){ clrscr();

long hora, minuto, segundo, R;

cout<<"Ingrese las Horas :"; cin>>hora; cout<<"Ingrese los Minutos :"; cin>>minuto; cout<<"Ingrese los Segundos :"; cin>>segundo; R = hora*3600 + minuto*60 + segundo;

cout<<"La hora en segundos es :"<<R; getch();

}

Problema 2:

Hacer un algoritmo que permita obtener la temperatura en grados Fahrenheit, si se ingresa una temperatura en grados Celsius.

Pseudocódigo

VARIABLES

REAL : temperatura, R ACCION Convertir_temperatura

ESCRIBIR("Ingrese la temperatura :") LEER(temperatura)

R  temperatura*9/5 + 32 ESCRIBIR("La temperatura en grados Fahrenheit es :", R , " F°")

FIN_ACCION C++ #include <iostream.h> #include <conio.h> void main(){ clrscr(); double temperatura, R;

cout<<"Ingrese la temperatura :"; cin>>temperatura; R = temperatura*9/5 + 32;

cout<<"La temperatura en grados Fahrenheit es :"<<R<<" F°"; getch();

(8)

Prof. Arón Elías Herrera Ponte Pág. 8 Diagrama de Flujo

Problema 3:

Hacer un algoritmo que permita obtener la suma de los ‘N’ primeros números naturales. Pseudocódigo

VARIABLES

ENTERO : n, R ACCION Hallar_suma

ESCRIBIR("Ingrese la cantidad de números :") LEER(n)

R  n*(n+1)/2 ESCRIBIR("La suma de los números es : ", R) FIN_ACCION C++ #include <iostream.h> #include <conio.h> void main(){ clrscr(); int n, R;

cout<<"Ingrese la cantidad de números:"; cin>>n; R=n*(n+1)/2;

cout<<"La suma de los "<<n<<" primeros números es:"<<R; getch(); } INICIO FIN "Ingrese la temperatura :" temperatura

"La temperatura en grados Fahrenheit es :", R , " F°"

REAL : temperatura, R

(9)

Prof. Arón Elías Herrera Ponte Pág. 9 Diagrama de Flujo

Problema 4:

Hacer un algoritmo que permita obtener el área de un triángulo, dado como datos el valor de 2 lados del  y el ángulo entre estos.

Pseudocódigo VARIABLES

REAL : L1, L2, Ang, R

ACCION Hallar_area_triangulo

ESCRIBIR("Ingrese el valor del lado del triangulo : ") LEER(L1)

ESCRIBIR("Ingrese el valor del lado del triangulo : ") LEER(L2)

ESCRIBIR("Ingrese el valor del ángulo en sexagesimal: ") LEER(Ang)

R  L1*L2*seno(Ang*PI/180)/2

ESCRIBIR("El área del triangulo es : ", R) FIN_ACCION C++ #include <iostream.h> #include <conio.h> #include <math.h> #define PI 3.14159 void main(){ clrscr(); double L1, L2, Ang, R; INICIO FIN "Ingrese la cantidad de números :" n

"La suma de los números es : ", R ENTERO : n, R

(10)

Prof. Arón Elías Herrera Ponte Pág. 10 cout<<"Ingrese el valor del lado del triangulo : "; cin>>L1;

cout<<"Ingrese el valor del lado del triangulo : "; cin>>L2; cout<<"Ingrese el valor del ángulo en sexagesimal: "; cin>>Ang; R = L1*L2*sin(Ang*PI/180)/2;

cout<<"El área del triangulo es : "<<R; getch();

}

Diagrama de Flujo

INICIO

FIN

"Ingrese el valor del lado del triangulo : "

"El área del triangulo es : ", R REAL : L1, L2, Ang, R

R  L1*L2*seno(Ang*PI/180)/2 L1

"Ingrese el valor del lado del triangulo : "

L2

"Ingrese el valor del ángulo en sexagesimal:

(11)

Prof. Arón Elías Herrera Ponte Pág. 11 Problema 5:

Hacer un algoritmo que permita obtener el monto final de una cuenta de ahorros, dado como datos un monto inicial (capital) y un tiempo T en años.

a) Para una tasa de interés anual R simple.

b) Para una tasa de interés anual R compuesto (capitalizable en años) Pseudocódigo

VARIABLES

REAL : capital,tasa, R ENTERO : tiempo ACCION Hallar_monto_total

ESCRIBIR("Ingrese el capital : ") LEER(capital)

ESCRIBIR("Ingrese el tiempo : ") LEER(tiempo)

ESCRIBIR("Ingrese la tasa de interés: ") LEER(tasa) R  capital*(1+tasa*tiempo/100)

ESCRIBIR("El Monto Final a Interés Simple es : ", R)

R  capital*potencia((1+tasa/100),tiempo)

ESCRIBIR("El Monto Final a Interés Compuesto es : ", R) FIN_ACCION C++ #include <iostream.h> #include <conio.h> #include <math.h> void main(){ double capital,tasa, R; int tiempo;

cout<<"Ingrese el capital : "; cin>>capital; cout<<"Ingrese el tiempo : "; cin>>tiempo; cout<<"Ingrese la tasa de interés: "; cin>>tasa; R = capital*(1+tasa*tiempo/100);

cout<<"\nEl Monto Final a Interés Simple es : "<<R; R = capital*pow((1+tasa/100),tiempo);

cout<<"\nEl Monto Final a Interés Compuesto es : "<<R; getch();

(12)

Prof. Arón Elías Herrera Ponte Pág. 12 Diagrama de Flujo

INICIO

FIN

"Ingrese el capital : "

"El Monto Final a Interés Simple es : ", R

REAL : capital, tasa, R ENTERO : tiempo R  capital*(1+tasa*tiempo/100) capital "Ingrese el tiempo : " tiempo "Ingrese la tasa de interés : " tasa

"El Monto Final a Interés Compuesto es : ", R

(13)

Prof. Arón Elías Herrera Ponte Pág. 13 Problema 6:

‘N’ postes de teléfono están situados uno detrás de otro a una distancia de ‘D’ metros entre sí. ¿Cuál es la distancia del tercer al último poste?

Pseudocódigo

Entre el poste 1 al ‘N’ se determinan espacios de ‘D’ metros cada uno; luego del 3er poste al ‘N’ se tiene = ( N – 3 ) D

VARIABLES ENTERO : N REAL : D, R

ACCION Hallar_distancia

ESCRIBIR("Ingrese el numero de postes : ") LEER(N) ESCRIBIR("Ingrese la distancia entre cada poste : ") LEER(D) R  ( N - 3 )*D

ESCRIBIR("La distancia entre el 3er y el último poste es: ", R, "m") FIN_ACCION C++ #include <iostream.h> #include <conio.h> void main(){ clrscr(); int N; double D, R;

cout<<"Ingrese el numero de postes : ";cin>>N; cout<<"Ingrese la distancia entre cada poste : ";cin>>D; R = ( N - 3 )* D;

cout<<"La distancia entre el 3er y el ultimo poste es : "<<R<<" m"; getch();

(14)

Prof. Arón Elías Herrera Ponte Pág. 14 Diagrama de Flujo

Problema 7:

El gerente de ventas de cierta compañía reduce su promedio de producción en N%. Si el promedio final fue T, entonces el promedio original fue.

Pseudocódigo Sean Po = Promedio original Pf = Promedio final Como el N% es = N*Po/100 y Pf = T Entonces T = Po – N*Po/100 Entonces Po = 100*T/(100-N) VARIABLES REAL : N, T, R ACCION Hallar_promedio_inicial

ESCRIBIR("Ingrese el promedio final : ") LEER(T) ESCRIBIR("Ingrese la tasa de reducción : ") LEER(N) R  100*T/(100 - N )

ESCRIBIR("El promedio inicial es : ", R) FIN_ACCION INICIO FIN "Ingrese el número de postes : " ENTERO : N REAL : D, R R  ( N - 3 )*D N "Ingrese la distancia entre cada poste: "

D

(15)

Prof. Arón Elías Herrera Ponte Pág. 15 C++ #include <iostream.h> #include <conio.h> void main(){ clrscr(); double N, T, R;

cout<<"Ingrese el promedio final : "; cin>>T; cout<<"Ingrese la tasa de reducción : "; cin>>N; R= 100*T/(100 - N);

cout<<"El promedio inicial es : "<<R; getch();

}

Diagrama de Flujo

Problema 8:

Una varilla de ‘a’ cm de longitud se corta en dos partes. La parte menor mide ¼ del total, luego con la parte mayor se repite el procedimiento. ¿Cuánto mide el pedazo más largo? Pseudocódigo INICIO FIN "Ingrese el promedio final : " REAL : N, T, R R  100*T/(100 - N ) T "Ingrese la tasa de reducción : " N

(16)

Prof. Arón Elías Herrera Ponte Pág. 16 El pedazo mas largo es : 3a/4 – 3a/16 = 9a/16

VARIABLES

REAL : a, R

ACCION Hallar_tamanio_restante

ESCRIBIR("Ingrese la longitud de la varilla : ") LEER(a) R  9*a/16

ESCRIBIR("El pedazo mas largo mide : ", R) FIN_ACCION C++ #include <iostream.h> #include <conio.h> void main(){ clrscr(); double a, R;

cout<<"Ingrese la longitud de la varilla :"; cin>>a; R = 9*a/16;

cout<<"El pedazo mas largo mide : "<<R<<" cm"; getch(); } Diagrama de Flujo INICIO FIN "Ingrese la longitud de la varilla : " REAL : a, R R  9*a/16 a

(17)

Prof. Arón Elías Herrera Ponte Pág. 17 Problema 9:

El ‘a’ por ciento de ‘P’ habitantes de un cierto país son hombres. Si el ‘b’ por ciento del número de mujeres saben leer y escribir, entonces el número de mujeres que no saben leer ni escribir es:

Pseudocódigo

El número de mujeres es igual a : P – ( a/100 )*P = ( 1 – a/100 )*P

El número de mujeres que saben leer y escribir es : b*( 1 – a/100 )*P/100

Luego el número de mujeres que no saben leer ni escribir es: = ( 1 – a/100 )*P – b*( 1 – a/100 )*P/100

= ( 1 – a/100 )*P*( 1 – b/100 ) VARIABLES

REAL : P, a, b, R

ACCION Hallar_cantidad_analfabetos

ESCRIBIR("Ingrese la cantidad de habitantes : ") LEER(P)

ESCRIBIR("Ingrese el porcentaje de habitantes hombres : ") LEER(a)

ESCRIBIR("Ingrese el porcentaje de habitantes mujeres que saben leer y escribir : ")

LEER(b)

R  ( 1 - a/100 )*( 1 - b/100 )*P

ESCRIBIR("El numero de mujeres que no saben leer ni escribir es : ",R)

FIN_ACCION C++ #include <iostream.h> #include <conio.h> void main(){ clrscr(); double P, a, b, R;

cout<<"Ingrese la cantidad de habitantes : "; cin>>P;

cout<<"Ingrese el porcentaje de habitantes hombres : "; cin>>a; cout<<"Ingrese el porcentaje de habitantes mujeres que saben leer y escribir : "; cin>>b;

R = ( 1 - a/100 )*( 1 - b/100 )*P;

cout<<"El numero de mujeres que no saben leer ni escribir es : "<<R; getch();

(18)

Prof. Arón Elías Herrera Ponte Pág. 18 Diagrama de Flujo

Problema 10:

Juan puede hacer un trabajo en ‘N’ días. Si Carlos es un X% más eficiente que Juan, ¿ En qué tiempo haría Carlos el mismo trabajo ?

Pseudocódigo

Juan en un día hará : 1/N

Carlos en un día hará: 1/N + X/(100*N) = (100 + X ) / 100*N En un día Carlos hará (100 + X ) / 100*N

Entonces, todo el trabajo lo hará en 100*N/( 100 + X ) VARIABLES

REAL : N, X, R

ACCION Hallar_tiempo_obra

ESCRIBIR("Ingrese el numero de días : ") LEER(N)

ESCRIBIR("Ingrese el porcentaje de eficiencia extra : ") LEER(X) R  100*N/( 100 + X )

ESCRIBIR("El tiempo que haría la obra es : ", R, "días") FIN_ACCION INICIO FIN "Ingrese la cantidad de habitantes: " REAL : P, a, b, R R  ( 1 - a/100 )*( 1 - b/100 )*P P

"El número de mujeres que no saben leer

ni escribir es : ", R

"Ingrese el porcentaje de habitantes hombres:

a

"Ingrese el porcentaje de habitantes mujeres que saben leer y escribir: "

(19)

Prof. Arón Elías Herrera Ponte Pág. 19 C++ #include <iostream.h> #include <conio.h> void main(){ clrscr(); double N, X, R;

cout<<"Ingrese el numero de días : "; cin>>N;

cout<<"Ingrese el porcentaje de eficiencia extra : "; cin>>X; R = 100*N/( 100 + X );

cout<<"El tiempo que haría la obra es : "<<R<<" días."; getch(); } Diagrama de Flujo INICIO FIN "Ingrese el numero de días: " REAL : N, X, R R  100*N/( 100 + X ) N

"El tiempo que haría la obra es : ", R, "días" "Ingrese el porcentaje

Referencias

Documento similar

Herrera en presentarse no sólo como único autor de los Dis- cursos sino como su único 'inventor'''&#34; (su expresión). ¿Por qué y de quién se defen- día Herrera con tanto

YP-IL-(i--�, iis'ca general de los relieves crc-Lacicus je Camporredondo en contacto con los materiales ne6genos de las &#34;Facies Gri j alba-Vi 1 lad ¡ego &#34;.(... yp

[r]

�� uccfvnn Iü d �sparia CONTROL DE MUESTRAS.. AÑO NOMBRE MILITAR

Documentación complementaria MAGNA hoja E.1:50.000. Herrera

A recepción estivo presidida polo reitor da Universidade de Santiago de Compostela, Don Juan José Casares Long, e nela tamén participaron o coordinador do Programa “A Pon- te entre

A Universidade de Santiago de Compostela un ano máis achégase ao Ensino Medio de Galicia a través do seu pro- grama estratéxico “A Ponte entre o Ensino Medio e a USC”, que

Por último, o coordinador do Programa «A Ponte», Luis Mª Hervella, presentou un resumo do programa e das accións que se tiñan pensado desenvolver no curso 2007-2008 nos