Introducción a C++ PDF

Title Introducción a C++
Course Informatica
Institution Universidad Nacional de Salta
Pages 24
File Size 2 MB
File Type PDF
Total Downloads 72
Total Views 124

Summary

introducción a programación con C++...


Description

TP.Nº 4: “Programación Estructurada en C++” Variables Simples – Asignacion Asignaciones es y Oper Operadores adores (aritméticos y lógicos) – Condicion Condiciones es y Ciclos (Listas, Contadores y Acumul Acumuladores adores – T Tra ra rabajo bajo con dígitos) – Instrucciones E/S

OBJETIVOS ESPECIFICOS Introducción a C++:  Repasar, fijar y dominar algoritmos para manipular variables simples y transformar su información a través de operadores aritméticos y lógicos, usando estructuras de control de bifurcación y repetición (conocer la conveniencia de aplicar “while” vs “for”).  Interiorizar las diferencias entre instrucciones de entrada / salida de datos, respecto a las equivalentes en SLE (de ser posible: también en C). Ejercicios Básicos – Operadores aritméticos y expresiones lógicas; Listas incondicionales (for) y condicionales (while), contadores y acumuladores, inicialización:

A.

(Instrucciones de entrada/salida) ¿Podría realizar el programa le pedía ingrese su nombre y la PC le respondía: saludándolo por su nombre?

B.

(incondicional + acumulador) Calcular la sumatoria de los primeros N números naturales.

1

C.

(for, con paso) Mostrar todos los números naturales impares que no sean menores a otro K dado.

D.

( teór./práct.) calcular y mostrar el promedio de enteros ingresados por el usuario hasta que se ingrese un 0 (cero). ¿Cuántos números procesó? y ¿cuántos era su sumatoria?

2

Ej.1: ( práct.) Traducir a C++ el Ej.8 del TP 3ii - Dado un número binario siempre puede encontrarse su equivalente en decimal a través de la suma ponderada de potencias de 2. Ej: (10010)₂ ≡ 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 18

3

AC= ¿Comprende la importancia aprender un método y luego desarrollar un algoritmo para ejecutarlo en la computadora?

Ej.2: ( práct.) Dado un número decimal siempre puede encontrarse su equivalente en binario a mediante divisiones sucesivas por 2 hasta que el dividendo sea menor que el divisor. El número binario se forma concatenando el último valor cociente y los restos, de las divisiones sucesivas, comenzando desde la última división.

1 8 0

2 9 2 1 4 2 0 2 0

2 1

18 ≡ (10010)2

4

AC=¿Comprende la importancia la utilización de ciclos para desarrollar un algoritmo del método citado?

Ej.3: Traducir a C++ el Ej.10 del TP 3ii - Dado un número entero positivo X, indicar si el mismo es capicúa. Ej: X = 35253 => Es Capicúa; AC= ¿Cuál es la clave para identificar si un número es capicúa?

Ej:

X = 23231 => No es Capicúa

5

Ej.4: Dado un número natural distinto de cero, indicar si el mismo es “pesado”. NOTA: un número es pesado si posee una cantidad de dígitos mayores o iguales a 5 superior a la cantidad de dígitos menores a 5. Ej: X = 56281 => X es Pesado X = 23971 => X no es Pesado AC= ¿Comprendió por qué en la condición se coloca “distinto de cero”?

6

Ej.5: Dado el algoritmo escrito en SLE, traducirlo a C++, compilarlo y ejecutarlo.

7

8

Ejercicios Bási cos – Listas, ciclos anidados, manipulación de dígitos: Básicos

E.

Dado un número entero descomponerlo mostrando sus dígitos individualmente. 9

F.

Dado un número entero determinar la cantidad de dígitos pares e impares que tiene.

G.

Se tienen los coeficientes a, b, c de un polinomio (ax 2+bx+c) y se desea calcular y mostrar las raíces reales del mismo o informar en caso de no poder realizar el cálculo.

10

Ej.6: Sea un intervalo [a; b], mostrar la suma de los dígitos de cada uno de los enteros contenidos en él. AC: ¿Observó que son 2 ciclos anidados, cuáles?

11

Ej.7: ( práct.) Dada una lista de números enteros que termina con un 0 (cero), ¿cuál es la sumatoria de todos los números agiles identificados? NOTA: un número se considera ágil si posee menor cantidad de dígitos pares que impares. Ej: X = 23415 => X es Ágil X = 24312 => X no es Ágil. AC= ¿Hay ciclos anidados en su resolución? ¿Cuáles?

12

Ej.8: Dada una lista de M números enteros, ¿qué cantidad de primos ingresó?, ¿cuál es su productoria? AC= ¿cuáles son los 2 ciclos anidados? ¿Cuáles serían si no se conoce de antemano cuántos números ingresará el usuario?

13

Ej.9: Traduzca a C++ y redacte los correspondientes enunciados. programa p1taej1 var V: numerico //1era Componente = Tipo vivienda L: numerico //2da Componente = Longitud tirante maxLTA: numerico //Longitud máxima tirante vivienda tipo A contTB: numerico //Cantidad tirantes vivienda tipo B contP: numerico //Contador pares (V,L) inicio cls() //Ingreso de datos imprimir("Ingrese 1er par (V,L):\n"); imprimir("Tipo Vivienda V?: [Tipo_A=par, Tipo_B=impar, Fin=0] "); imprimir("Longitud tirante [Fin=0]: ");

leer(V); leer(L);

//Procesamiento contP = 0 //Inicializo contador pares (V,L) contTB = 0 //Inicializo contador tirantes viviendas tipo B mientras(V0 and L0) { contP = contP + 1 //Cuento pares (V,L) ingresados si(V % 2 == 0) //Viviendas tipo A { si(contP == 1) { maxLTA = L //Inicializo longmax tirante vivienda tipo A sino si(L>maxLTA) //si la longitud del tirante es Mayor q la máx { maxLTA = L //Actualizolongmax tirante tipo A } } sino //Vivienda tipo B contTB = contTB + 1 //Cuento tirantes vivienda tipo B } imprimir("\nIngrese siguiente par (V,L):\n"); imprimir("Tipo Vivienda V?: [Tipo_A=par, Tipo_B=impar, Fin=0] "); imprimir("Longitud tirante [Fin=0]: "); }

leer(V); leer(L);

//Salida: muestro resolutados imprimir("\nLongitud Max tirante vivienda Tipo A: ", maxLTA) imprimir("\nCantidad tirantes vivienda Tipo B: ", contTB) fin

14

Ej.10: Traduzca a C++ y redacte los correspondientes enunciados. programa p1taej2 var su: numerico //Sueldo n: numerico //Cantidad de sueldos i: numerico //Indice cont100: numerico //Cantidad billetes $100 cont50: numerico //Cantidad billetes $50 cont20: numerico //Cantidad billetes $20 cont10: numerico //Cantidad billetes $10 inicio cls() //Ingreso de datos imprimir("Ingrese cantidad Sueldos: "); leer(n) //Procesamiento desde i = 1 hasta n { imprimir("\nIngrese Sueldo ", i, "[Multiplo 10]: "); leer(su); cont100 = 0 //Inicializo contador billetes $100 cont50 = 0 //Inicializo contador billetes $50 cont20 = 0 //Inicializo contador billetes $20 cont10 = 0 //Inicializo contador billetes $10 mientras(su > 0) //mientras que tenga algo por pagar, descompongo { si(su >= 100) / / De t e r mi n oc a n t i d a db i l l e t e s$ 1 0 0 { cont100 = cont100 + 1 / / Cu e n t ob i l l e t e s$ 1 0 0 su = su - 100 / / Di s mi n u y os u e l d oe n$ 1 0 0 sino si(su >= 50) / / De t e r mi n oc a n t i d a db i l l e t e s$ 5 0 { cont50 = cont50 + 1 / / Cu e n t ob i l l e t e s$ 5 0

15

su = su - 50

/ / Di s mi n u y os u e l d oe n$ 5 0

sino

}

}

si(su >= 20) / / De t e r mi n o c a n t i d a db i l l e t e s$ 2 0 { cont20 = cont20 + 1 / / Cu e n t ob i l l e t e s$ 2 0 su = su - 20 / / Di s mi n u y os u e l d oe n$ 2 0 sino / / De t e r mi n oc a n t i d a db i l l e t e s$ 1 0 cont10 = cont10 + 1 / / Cu e n t o$ 1 0 su = su - 10 / / Di s mi n u y oe n$ 1 0 } / / b i l l e t e s2 0 } / / b i l l e t e s5 0 } / / b i l l e t e s1 0 0 / / mi e n t r a sqh a y as u e l d oqd e s c o mp o n e r

//Salida imprimir("\nCantidad billetes imprimir("\nCantidad billetes imprimir("\nCantidad billetes imprimir("\nCantidad billetes / / p a r av a l o r e sd e s d e . . . h a s t a( s u e l d o 1h a s t as u e l d o N)

$100: ", cont100) $50: ", cont50) $20: ", cont20) $10: ", cont10)

Fin

16

Ej.11: Dada una lista de números de tamaño desconocido que termina con un cero (0); calcular el factorial de los números y mostrarlo, solo cuando la sumatoria de sus dígitos sea impar. Factorial de 5: 5! = 1*2*3*4*5 = 120 AC= ¿Qué ciclo conviene utilizar si debemos calcular el factorial de un determinado número?

17

Ej.12: Dada una lista de N números, calcular y mostrar la cantidad de números optimistas ingresados y además del promedio de aquellos que no lo sean. NOTA: un número se considera optimista cuando la sumatoria de sus dígitos es mayor o igual a 5, debiendo ésta ser como máximo 9 (es decir estar comprendida entre 0 y 9). En el caso de ser superior, se debe sumar los dígitos de la cifra resultante hasta que la sumatoria cumpla con la condición mencionada. Ej: X = 1268 -> ∑díg = 1+2+6+8 = 17 -> ∑díg = 1+7 = 8 => X es Optimista X = 4861 -> ∑díg = 4+8+6+1 = 19 -> ∑díg = 1+9 = 10 -> ∑díg = 1+0 = 1 => X no es Optimista

18

19

Ej.13: Dado un conjunto de pares de números (N1, N2) que termina con el ingreso del par (0,0), mostrar la cantidad de pares doblemente multiplados, además de la cantidad total de los pares ingresados. 20

NOTA: un par de números es multiplado cuando los componentes del par son múltiplos entre sí. Son doblemente multiplados si además de ser multiplado, las sumatorias de los dígitos de cada componente del par también son múltiplos entre sí. Ej: (N1, N2) = (12, 24) -> Como 12 y 24 son múltiplos entre sí => (N1, N2) es par multiplado, pero como ∑N1díg = 1+2 = 3 y ∑N2díg = 2+4 = 6 -> ∑N1díg y ∑N2díg son múltiplos entre sí => (N1, N2) es par doblemente multiplado (N1, N2) = (15, 25) -> Como 15 y 25 son múltiplos entre sí => (N1, N2) es par multiplado, pero como ∑N1díg = 1+5 = 6 y ∑N2díg = 2+5 = 7 -> ∑N1díg y ∑N2díg no son múltiplos entre sí => (N1, N2) no es par doblemente multiplado (N1, N2) = (12, 25) -> Como 12 y 25 no son múltiplos entre sí => (N1, N2) no es par multiplado => no es par doblemente multiplado

AC= ¿Cuántos y cuáles ciclos deberá implementar? ¿Cómo debería procesar a los componentes del par de números?

21

22

CONVERSION DE PSEUDOCODIGO SLE A LENGUAJE C Tabla de Correspondencias PSEUDOCODIGO SLE //La primera línea de todo programa programa NombredelPrograma inicio fin a,b: numerico c,d: cadena a = b i = i + 1 i = i - 1 +, -,*, /, %, ^ si (expresión lógica) { sentencia } si (expresión lógica) { sentencia sino sentencia } mientras (expresión lógica) { sentencia } desde i=1 hasta 9 { sentencia } desde i=9 hasta 1 paso -1 { sentencia } imprimir("El valor de n es", n) leer(n) a and b a or b not a a > b a < b a == b a >= b a...


Similar Free PDFs