Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca FUNDAMENTOS DE LA PROGRAMACIÓN SOLUCIONARIO Capítulo 1 1. Determine si las siguientes afirmaciones son verdaderas o falsas. Responda con V (Verdadero) o F (Falso). a. V b. F c. F d. F e. F f. F g. F h. F 2. Escriba las acciones que permitan hacer las siguientes tareas: declare tres variables, una tipo texto con identificador nombre, una tipo entero con identificador año, y la última de tipo real con identificador longitud. Luego agregue las acciones que permitan solicitar y leer valores del usuario. Finalmente que se impriman como salida las variables. Variables nombre : Texto año : Entero longitud : Real Solicitar Nombre, Año, Distancia Leer nombre, año, longitud Imprimir nombre, año, longitud 3. Dado que y = ax3 + 7 ¿cuál de las siguientes expresiones es la correcta? (Suponga que no conoce otras operaciones aritméticas a más de las básicas) Respuesta correcta e. 4. Convierta las siguientes expresiones aritméticas a sus equivalentes en pseudocódigo a. A = ((B*D) + (2*F))/(E + (2*B)) b. Z = 2 * ((A + B) – (2 * C)) Capítulo 2 1. Responda con verdadero (V) o falso (F) a las siguientes preguntas: a. b. c. d. ( ( ( ( V) V) F) V) Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca e. ( F ) f. ( V ) 2. Elaborar un algoritmo que permita calcular la solución de una ecuación cuadrática general ax2 + bx + c = 0. Se debe ingresar a, b, c. Y Se debe presentar el resultado de las soluciones x1, x2. La Algoritmo FORMULA GENERAL ECUACION CUADRÁTICA Clase Secuenciación4. 1. Método Principal a. Declaraciones i. a, b, c, x1,x2: Real; b. Imprimir encabezados c. Solicitar el valor de a,b,c d. Leer el valor de a,b,c e. IF (b^2-4*a*c)<0 THEN 1. Imprimir La raiz es imaginaria f. ELSE 1. Presentar el valor de la raiz X1, X2 g. ENDIF 2. Fin del método principal Fin de la clase Código Java: 3. Ingrese una cadena e insertar un texto desde una posición dada. Algoritmo INSERTAR TEXTO Clase Secuenciación5. Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 1. Método Principal a. Declaraciones 1. cadena1, cadena2 : Cadena 2. posInsertar: Entero b. Solicitar cadena1 c. Leer cadena1 d. Solicitar cadena2 e. Leer cadena2 f. Solicitar la posición a insertar g. Leer posInsertar h. Asignar cadena1= cadena1.subcadena(0,posInsertar) + cadena2+ cadena1.subcadena(posInsertar,longitud(cadena1) ) i. Imprimir la cadena1 modificada 2. Fin del método principal Fin de la clase Código Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 4. Calcular la posición del baricentro. Ingresando la posición en el plano cartesiano (x,y) de los puntos A, B y C. Algoritmo CALCULAR BARICENTRO Clase Secuenciación6. 1. Método Principal a. Declaraciones 1. ax, ay, bx, by, cx, cy: Enteros 2. gx, gy: reales b. Solicitar el valor de A(x,y) c. Leer ax, ay d. Solicitar el valor de B(x,y) e. Leer bx, by f. Solicitar el valor de C(x,y) g. Leer cx, cy h. Calcular gx=(ax+bx+cx)/3 i. Calcular gy=(ay+by+cy)/3 j. Imprimir El valor de G(x,y) 2. Fin del método principal Fin de la clase Código Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 3. Construya un algoritmo que al ingresar un numero entero imprima el día de la semana que le corresponde. Por ejemplo ingrese 1 debe imprimir Lunes. Algoritmo IMPRIMIR DIA DE LA SEMANA Clase Secuenciación7. 1. Método Principal a. Declaraciones dia : Entero nomDia: Cadena b. Solicitar el día c. Leer dia d. SWITCH (letra) es: 1: Asignar nomDia="Lunes" 2: Asignar nomDia ="Martes" 3: Asignar nomDia ="Miercoles" 4: Asignar nomDia ="Jueves" 5: Asignar nomDia ="Viernes" 6: Asignar nomDia ="Sabado" 7: Asignar nomDia ="Domingo" e. ENDSWITCH f. Imprimir El nombre del dia, NomDia 2. Fin del método principal Fin de la clase Código Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 5. Construir un algoritmo para ordenar tres números en forma descendente. Algoritmo ORDENAR TRES NUMEROS Clase Secuenciación8. 1. Método Principal a. Declaraciones a, b, c: Entero b. Solicitar a,b,c c. Leer a,b,c d. IF a>b THEN 1. IF a>c THEN: a. IF b>c THEN 1. Imprimir El orden es : a,b,c b. ELSE 1. Imprimir El orden es : a,c,b c. ENDIF 2. ELSE: a. Imprimir El orden es : c,a,b 3. ENDIF e. ELSE 1. IF b>c THEN: a. IF a>c THEN: 1. Imprimir El orden es : b,a,c b. ELSE 1. Imprimir El orden es : b,c,a c. ENDIF 2. ELSE a. Imprimir El orden es : c,b,a 3. ENDIF f. ENDIF 2. Fin del método principal Fin de la clase Código Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Capítulo 3 1. Responda a las siguientes preguntas con V (verdadero) o con F (falso). ( V ) ( V ) ( F ) ( F ) ( F ) ( V ) a. b. c. d. e. f. 2. Realizar un programa que cuente las cadena de textos. vocales cuando se ingresa una Algoritmo CUENTA VOCALES Clase Repetición3. 1. Método Principal a. Declaraciones entrada : cadena contador, posición: entero b. c. d. e. f. Solicitar la cadena de texto Leer entrada contador=0 posición=0 WHILE posición<Entrada.Longitud 1. SWITCH (Entrada.Caracteren(posición) a. ‘a’,’e’,’i’,’o’,’u’: Asignar contador=contador+1; 2. ENDSWITCH 3. Imprimir la cadena ingresada tiene vocales igual , contador g. ENDWHILE 2. Fin del método principal Fin de la clase Código Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 3. Construya un algoritmo que ingresada cualquier un día, mes y año devuelva el día (Lunes, martes, Miércoles, etc.) que corresponde la fecha. Algoritmo FORMATEAR HORA EN SEGUNDO Clase Repetición4. a. Método Principal a. Declaraciones 1. Dia, mes, año :entero 2. Avdia: entero b. Inicializar dia=0, mes=0,anio=0, avdia=0 c. Inicializar diax=0; bs=’s’ d. DO 1. Solicitar fecha 2. Leer dia, mes , año 3. Validar que las fechas sean correctas incluyendo años, meses, días e. WHILE(día>31 ó mes>12 ó año>0) f. IF (fecha) THEN 1. IF ano>2001 THEN a. IF anio>2002 THEN 1. FOR j=2002;j<anio;j++ i. FOR i=1;i<=12;i++ 1. IF (i=1) ó (i=3) ó (i=5) ó (i=7) (i=8)ó(i=10) ó (i=12) THEN a. diax=diax+31 2. ELSE a. IF (i=4) ó(i=6) ó(i=9) ó(i=11) THEN 1. diax+=30 b. ENDIF c. IF ((j%4=0) y (i=2)) THEN 1. Asignar diax+=29 d. ELSE 1. diax+=28 e. ENDIF 3. ENDIF ii. ENDFOR 2. ENDFOR b. ENDIF c. FOR i=1;i<mes;i++ 1. IF ((i=1) ó (i=3) ó(i=5) ó(i=7) ó(i=8) ó(i=10) ó(i=12)) THEN a. Asignar diax+=31 2. ELSE a. IF (i=4) ó(i=6) ó(i=9) ó(i=11) THEN 1. Asignar diax+=30 b.ENDIF c. IF anio%4=0)&&(i=2) THEN 1. Asignar diax+=29 d. ELSE 1. diax+=28 e. ENDIF 3. ENDIF d. ENDFO e. diax+=28+dia f. avdia=diax%7 g. SWITCH(avdia) 0: Imprimir El día es lunes dia, mes, anio 1: Imprimir El día es martes ,dia, mes, anio 2: Imprimir El día es miércoles dia, mes, anio 3: Imprimir El día es jueves dia, mes, anio 4: Imprimir El día es viernes dia, mes, anio 5: Imprimir El día es sabado dia, mes, anio 6: Imprimir El día es domingo dia, mes, anio Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca b. Fin del método principal Fin de la clase Código en Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 4. Construya un algoritmo que permita encontrar los n primeros números primos Algoritmo ENCONTRAR N PRIMOS Clase Repetición5. 1. Método Principal a. Declaraciones n, primo, contador, i, j : Entero b. Solicitar la cantidad de números primos c. Leer n d. Asignar primo=1 e. Inicializar i=1 f. WHILE( primo<=n) 1. Asignar contador=0; 2. FOR j=1;j<=i;j++ 1. IF i%j==0 THEN a. contador++ 2. ENDIF 3. ENDFOR 4. IF (contador=2) THEN 1. Imprimir el primo i 2. Primo++ 5. ENDIF 6. i++ g. ENDWHILE 2. Fin del método principal Fin de la clase Código en Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 5. Ingresar una palabra y determinar si esta es un palíndromo. (ejemplos Ana, arenera, arepera, reconocer, salas, somos, sometemos, entre otras.); Algoritmo DETECTAR PALÍNDROMO Clase Repetición6 1. Método Principal a. Declaraciones palabra : cadena i : entero estado : booleano b. Solicitar la palabra c. Leer palabra d. estado = verdadero e. FOR i=0; i<palabra.longitud; i++ 1. IF palabra.subCaracter(i)!=palabra.subCaracter(longitud(pa labra)-i-1)) THEN a.estado=false; 2. ENDIF f. ENDFOR g. if (estado ==verdadero) THEN 1.Imprimir la palabra es un palíndromo h. ELSE 1. Imprimir la palabra no es palíndromo i. ENDIF 2. Fin del método principal Fin de la clase Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Código en java: 6. Construya un algoritmo que reciba como entrada un cierto valor n y genere como salida el valor de la serie: 2, 5, 7, 10, 12, 15, 17, . . . . ., 1800. Algoritmo SERIE NUMERICA Clase Repetición7. 1. Método Principal a. Declaraciones cantTerms, valorSuma, serie, i :Entero b. Solicitar cantidad de Términos c. Leer cantTerms d. serie=0 e. FOR i=0; i<cantTerms; i++ 1. IF i%2==0 THEN a. valorSuma=2 2. ELSE a. Asignar valoSuma=3 3. ENDIF 4. Calcular serie=serie+valorSuma f. ENDFOR g. Presenta la serie 2. Fin del método principal Fin de la clase Código en java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 7. Realizar un algoritmo que permita ingresar una frase y la descomponga esta en sus palabras imprimiéndolas al revés. Ejem. CIUDAD GUAYAQUIL Î DADUIC LIUQAYAUG Algoritmo PALABRA AL REVES Clase Repetición8. 1. Método Principal a. Declaraciones Frase : cadena inicioPalabra i, j:Entero b. Solicitar la frase c. Leer la frase d. inicioPalabra=0 e. FOR i=0; i<longitud(frase); i++ 1. IF frase.Subcaracter(i)==’ ‘ ó i==longitud(frase)-1 THEN a. FOR j=i hasta j>=inicioPalabra; j— Imprimir frase.subCaracter(i) b.ENDFOR c. inicioPalabra=i+1 2. ENDIF f. ENDFOR 2. Fin del método principal Fin de la clase Código en Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Capítulo 4 1. Trate de determinar si las siguientes expresiones son verdaderas o falsas. Para aquellas que son verdaderas marquelas con V y para las falsas con F. a. ( V ) b. ( F ) c. ( F ) d. ( V ) e. ( V ) f. ( F ) 2. Elaborar un algoritmo que agregue a una matriz cuadrada la matriz unidad; Algoritmo AGREGAR MATRIZ UNIDAD Clase Arreglos5. 1. Método Principal a. Declaraciones n,i,j : entero matriz , matrizUnidad : arreglo[][] entero b. Solicitar el orden de la matriz c. Leer n; d. Inicializar matriz[n][n]; e. Inicializar matrizUnidad[n][2*n] f. Solictar valores de elementos de matriz g. Leer matriz[][] h. MatrizUnidad[][]=matriz[][] i. FOR i=0; i<n; i++ 1. FOR j=n; j<2*n; j++ Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca a. matrizUnidad[i][j]= 1 2. ENDFOR j. ENDFOR k. Imprimir encabezado l. FOR i=0; i<n; i++ 1. FOR j=0; j<2*n; j++ a. Imprimir MatrizUnidad[i][j] 2. ENDFOR m. ENDFOR 2. Fin del método principal Fin de la clase Código en Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 3. Escriba una aplicación en Java que lea una frase y muestre los contadores del número de vocales dentro de la frase. Algoritmo CONTAR VOCALES Clase Arreglos6. 1. Método Principal a. Declaraciones vocales : carácter numVocales: arreglo[5 ] entero contador, i, j : entero frase: cadena b. Solicitar la frase c. Leer frase d. FOR i=0; i< 5hacer i++ 1. contador=0 2. FOR j=0; j<frase.longitud(); j++ a. IF frase.subCadena(j)==vocales[i] THEN 1. contador++ b. ENDIF 3. ENDFOR 4. numVocales[i]=contador e. ENDFOR f. FOR i=0; i< 5; i++ 1. Imprimir La vocal[i] esta en la frase numVocales[i] g. ENDFOR 2. Fin del método principal Fin de la clase Código en Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 4. En las elecciones para alcalde de EL PUEBLITO se han presentado tres candidatos (A,B,C). el pueblito está dividido en 5 zonas de votación. El reporte de votos de las zonas se recibe en orden: primero la zona 1, la 2, etc. Elabore una aplicación que: o Forme una matriz de 5 filas y 3 columnas que contenga, en cada fila, los votos reportados por las zonas para cada uno de los tres candidatos. o Encuentre el total de votos obtenidos por cada candidato y el porcentaje que este representa. Algoritmo ZONAS Y CANDIDATOS Clase Arreglos7. 1. Método Principal a. Declaraciones totales: arreglo[3 ] entero zonas : arreglos[3][5] entero candidatos: arreglos[3] cadena i, j : entero totalVotos: real b. Inicializar totalVotos=0; c. FOR i=0; i<3; i++ 1. Solicitar Nombre del candidato 2. Leer Candidato[i] 3. FOR j=0; j<5; j++ a. Solicitar los votos reportados de la zona j b. Leer Zona[i][j] c. Totales[i]=totales[i]+zonas[i][j] 4. ENDFOR 5. totalVotos=totalVotos+totales[i] d. ENDFOR e. FOR i=0; i<3; i++ 1. FOR j=0; j<5; j++ a. Imprimir Resultados de las zonas 2. ENDFOR 3. Imprimir Totales Parciales de las zonas y porcentajes f. ENDFOR g. Imprimir Totales Generales 2. Fin del método principal Fin de la clase Código en Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 5. Elabore una aplicación que llene una matriz cuadrada, la magnitud y los datos los ingresa el usuario, luego averigüe si es simétrica, es decir, si todos los pares de elementos equidistantes perpendicularmente de la diagonal principal son iguales. Algoritmo MATRIZ SIMETRICA Clase Arreglos8 . 1. Método Principal a. Declaraciones n,i,j: entero Matriz : arreglo[] entero Simetrica : booleano b. Solicitar el orden de la matriz n c. Leer n d. Inicializar matriz[n][n] e. Inicializar simetrica=verdadero f. FOR i=0; i<n; i++ 1. FOR j=0; j<n; j++ a. Solicitar el valor de los elementos b. Leer matriz[i][j] 2. ENDFOR g. ENDFOR h. FOR i=0; i<n; i++ 1. FOR j=0; j<n; j++ a. IF matriz[i][j]!=matriz[j][i] THEN 1. simetrica= false b. Solicitar el valor de los elementos c. Leer matriz[i][j] 2. ENDFOR Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca i. ENDFOR j. IF simetrica==verdadero THEN 1. Imprimir la matriz es simétrica k. ELSE 1. Imprimir la matriz no es simétrica l. ENDIF m. Presentar matriz[][] 2. Fin del método principal Fin de la clase Código en Java: Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Capítulo 5 1. Determine si las siguientes afirmaciones son verdaderas o falsas. Responda a. ( b. ( c. ( d. ( e. ( f. ( con V (Verdadero) o F (Falso). F ) F ) F ) V ) V ) F ) 2. Escriba un método que reciba un arreglo de enteros y un valor entero x. Este debe regresa el número de veces que se repite el valor de x en el arreglo. Algoritmo ENCONTRAR X EN UN MATRIZ Clase Métodos3. 1. Método Principal a. Declaraciones m,n, cont, x : Entero matriz :Arreglo[][] Entero b. Solicitar el orden de la matriz c. Leer m, n d. Inicializar matriz[m][n] e. Matriz=ingresarMatriz(m,n) f. Solicitar el valor de x g. Leer x h. cont=contarX(matriz,x,m,n) i. Presentar cont Fin del método principal 2. Método IngresarMatriz(m,n entero): arreglo [][] entero a. Declaraciones E : arreglo [m][n] b. Solicitar el orden de la matriz c. FOR i=0; i< m; i++ 1.FOR j=0; j<n; j++ a. Solicitar el valor de los elementos b. Leer E[i][j] 2. Fin FOR d. Fin FOR e. return E Fin de Método 3. Método contarX(matriz: arreglo[][]; x, m, n entero): Entero a. Declaraciones E : arreglo [m][n] b. Solicitar el orden de la matriz c. FOR i=0; i< m; i++ 1. FOR j=0; j<n; j++ a. IF (x==Matriz[i][j]) THEN: cont++ 2. ENDFOR d. ENDFOR Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca e. return cont Fin de Método Fin de la clase 3. Elaborar un algoritmo que permita leer una frase u oración e imprima cuantas veces se utilizó cada letra del alfabeto. Utilizar un método que reciba como parámetro la frase y la posición en la que se debe obtener el carácter, y que obtenga un carácter en cada llamada. Algoritmo CONTADOR DE LETRAS Clase Métodos. 1. Método Principal a. Declaraciones frase : cadena alfabeto : arreglo[] Carácter numletras: arreglo[27] Entero Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca posición , i, j : Entero Inicializar alfabeto={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p’,'q','r', 's','t', 'u','v','w' ,'x', 'y','z', ' '} b. Solictar frase c. Leer frase; d. Hacer frase minúscula e. posición=0 f. WHILE posicion<alfabeto.longitud 1. num_letras[posicion]=0; 2. for i=0; i<frase.longitud(); i++ a.IF alfabeto[posicion]==devolverCaracter(frase,i) THEN 1. num_letras[posicion]++; b. ENDIF 3. ENDFOR 4. posicion++; g. ENDWHILE h. Presentar alfabeto[][] y num_letras[][] Fin Método principal 2. Método devolverCaracter (frase: Cadena, posición: Entero): Caracter a. Declaraciones caracter : Carácter b. carácter=frase.subCadena(posicion); c. return carácter Fin Método devolverCaracter Fin de la clase Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 4. Elaborar un algoritmo que permita leer una frase u oración y que imprima la palabra mas larga, y la más corta y la posición donde inicia cada una de ellas. Utilizar un método que obtenga cada palabra. Algoritmo PALABRA MÁS LARGA Clase Métodos. 1. Método Principal a. Declaraciones frase, temp : cadena palabras : arreglo[] Cadena numletras: arreglo[27] Entero posPalabras,numPalabras,posición,numLetras ,contador i, j : Entero b. numLetras=0,posición=0 c. Solicitar la frase d. Leer Frase e. numPalabras=contarPalabras(frase) f. Inicializar palabras[numPalabras] g. palabras=devolverPalabras(frase,numPalabras) h. Inicializar posPalabras[numPalabras] i. posPalabras=identifiarPosicion(frase,numPalabras) j. FOR i=0;i<palabras.length;i++ 1. contador=0 2. temp= palabras[i] 3. FOR j=0; j<temp.length(); j++ a. contador++ 4. ENDFOR 5. IF num_letras<contador THEN a. numletras=contador b. posicion=i 6. ENDIF k. Fin FOR l. Imprimir encabezado m. FOR i=0; i<palabras.length; i++ 1. Imprimir palabras[i]); n. ENDFOR o. Presentar palabra mas larga palabras[posicion],pos_palabras[posicion] Fin del método principal 2. Método devolverPalabras (frase: Cadena, numPalabras: Entero): arreglo[] Cadena a. Declaraciones palabras : arreglo[numPalabras] Cadena contador,pInicial,pFinal,i,j, contador: Entero b. contador=0, pInicial=0,pFinal=0 c. FOR i=0; i<longitud(frase); i++ 1. IF frase.charAt(i)==' ' THEN 1. pFinal=i; 2. palabras[contador]=frase.subCadena(pInicial, pFinal); 3. pInicial=i+1; 4. contador++; 2. ENDIF d. ENDFOR e. palabras[contador]=frase.subcadena(p_inicial, longitud(frase)); f. return palabras; Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Fin de Método 3. Método contarPalabras(frase: Cadena): Entero a. Declaraciones c: Entero b. FOR i=0; i< longitud(frase); i++ 1. IF x==Matriz[i][j] THEN a. cont++ 2. ENDIF c. ENDFOR d. return cont Fin de Método 4. Método identificarPosicion(frase: Cadenam numPalabras: Entero): arreglo[] Entero a. Declaraciones contador, i: Entero posición: arreglo[numPalabras] Entero b. FOR i=0; i< longitud(frase); i++ 1. IF (frase.subCaracter(i)==' ') THEN a. posicion[contador]=i+1; b. contador++; 2. ENDIF c. ENDFOR d. return posicion Fin de Método Fin de la clase Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 5. Elaborar un algoritmo que permita leer una cantidad de tipo Real, que le inserte comas cada tres cifras y las imprima. Algoritmo INSERTAR COMAS EN NUMERO Clase Métodos6. 1. Método Principal a. Declaraciones cantidad: Entero cadena: Cadena b. Solicitar el número a formatear c. Leer cantidad d. Cadena=insertarComas(cantidad); e. Presentar “La cantidad formateada con comas es :” cadena Fin del método principal 2. Método insertarComas (cantidad: Entero): Cadena a. Declaraciones contador, i: Entero cadena, tresCifras,cadenaComas: Cadena posición: arreglo[numPalabras] Entero b. cadena=Cambiar a cadena cantidad c. posición= longitud(candena) d. numComas=longitud(cadena)/3 e. IF longitud(cadena)%3!=0 THEN Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 1. numComas=numComas+1; ENDIF f. FOR i=0; i<numComas; i++ 1. IF (posicion>3) THEN a. tresCifras=cadena.substring(posicion3, posicion); b. cadenaComas=","+tresCifras+cadenaComas; c. posicion=posicion-3 2. ELSE a. tresCifras=cadena.substring(0, posicion); b. cadenaComas=tresCifras+cadenaComas; Fin IF Fin FOR g. Return cadenaComas; Fin de Método Fin de la clase 6. Elaborar un método que devuelve el rango (diferencia entre el valor máximo y el mínimo) de los elementos de Arreglo. Algoritmo RANGO MAX-MIN Clase Métodos7. Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 1. Método Principal a. Declaraciones n, mayor, menor, rango: Entero vector: arreglo[] Entero b. Solicitar numero de elementos del Vector c. Leer n d. Inicializar vector[n] e. vector = ingresarVector (n) f. mayor=encontarMayor(vector) g. menor=encontarMenor(vector, mayor) h. rango=mayor-menor i. Imprimir el Rango del vector, Rango Fin del método principal 2. Método ingresarVector(n entero): arreglo [] Entero a. Declaraciones orden: Entero E: arreglo [n] Entero Orden=longitud(E) b. FOR i=0; i< orden; i++ 1. Solicitar el valor de los elementos 2. Leer E[i] ENDFOR c. return E Fin de Método ingresarVector 3. Método encontrarMayor(E :arreglo[] entero): Entero a. Declaraciones mayor: Entero mayor=0 b. FOR i=0; i< longitud(E); i++ c. IFmayor<E[i] THEN 1. mayor =E[i]; ENDIF ENDFOR c. return mayor Fin de Método encontrarMayor 4. Método encontrarMenor(E :arreglo[] entero, mayor:Entero): Entero a. Declaraciones menor: Entero b. menor=mayor c. FOR i=0; i< E.length; i++ 1. IF menor>E[i] THEN a. menor =E[i]; ENDIF Fin FOR d. return menor Fin de Método encontrarMenor Fin de la Clase Fin Algoritmo Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Capítulo 6 1. Determine si las siguientes afirmaciones son verdaderas o falsas. Responda con V (Verdadero) o F (Falso). a. ( F ) b. ( F ) c. ( V ) d. ( V ) e. ( V ) f. ( F ) 2. Construya una clase persona y agregue algunos atributos como nombre, apellidos, edad, sexo, dirección, teléfono, etc. Además agregue métodos a las clase que permitan asignar y obtener valores de cada uno de los atributos. Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 3. Realice un programa que permita la impresión de tiempo en horas:minutos:segundo utilizando objetos utilizando objetos. Debe crear una clase hora, que tenga u atributo segundos y un método que permita trasformar los segundos a horas: minutos: segundos Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 4. Construya una clase matriz, cuyos atributos sean la matriz y cuyos métodos sea las operaciones Suma, resta. Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 5. Construya un a clase cadena, con atributos como Numero de palabras, numero de letras, numero de vocales. Además los métodos de esta clase deben actualizar los atributos. Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca 6. Construir una clase numero, que tenga como atributos su valor decimal, valor binario, valor hexadecimal, octal. Esta clase debe permitir convertir su valor a octal, binario, Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/). Escuela de Ciencias de la Computación – UTPL Fundamentos de la Programación Autores: Ing. Jorge López, Ing. Greyson Alberca hexadecimal. Esta obra ha sido licenciada con Creative Commons Ecuador 3.0 de Reconocimiento - No comercial – Compartir igual (http://creativecommons.org/licenses/by-nc-sa/3.0/ec/).