Bienvenidos a este nuevo capítulo de este Curso Gratis de Programación #12 Estructuras Algorítmicas: For (Para)
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
ESTRUCTURAS ALGORITMICAS
Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:
Estructuras Cíclicas
Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especifica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser
variable (estar en función de algún dato dentro del programa).
Concepto de estructura de repetición
Hasta ahora hemos trabajado, instrucciones de entrada, salida, expresiones y operadores, asignaciones, instrucciones secuenciales y de selección. Hay una gran variedad de situaciones que requieren que una o varias instrucciones se repitan varias veces, ya sean cálculos u otro tipo de instrucciones. Las instrucciones iterativas o de repetición, abren la posibilidad de realizar una secuencia de instrucciones más de una vez. En este capítulo estudiaremos las distintas formas que existen en pseudocódigo, para lograr la repetición de al menos una instrucción.
Concepto de bucle e iteración
Un bucle, es una sección de código que se repite. Es decir, cuando se termina de ejecutar la última instrucción del conjunto, el flujo de control retorna a la primera sentencia y comienza una nueva repetición de las sentencias que forman esa sección de código. Se denomina iteración al hecho de repetir la ejecución de una secuencia de acciones, la iteración se asocia a un número entero que indica el número de veces que se repite un trozo de código. Por ejemplo, si se desea sumar notas de alumnos, se necesitan dos sentencias, una para leer desde el teclado la nota, y otra que realice sumas parciales, es decir:
…….
Suma ⭠ 0 // se inicializa una sola vez
// sentencias que se repiten Leer ( nota)
Suma ⭠ suma + nota
Es necesario conocer alguna manera de detener la repetición, ya sea que se conozca el número de notas a procesar, para este ejemplo, o por medio de una expresión o condición que se va modificando dentro del bloque de sentencias que forman el bucle. De lo contrario la iteración no acabaría nunca.
Entonces una Iteración es…
Entonces una Iteración es el hecho de repetir la ejecución de una secuencia de acciones. permiten ejecutar una secuencia de instrucciones. cuando se termina de ejecutar la última instrucción del conjunto, el flujo de control retorna a la primera sentencia y comienza una nueva repetición.
Los bucles van a servir para poder repetir ciertas sentencias de código, bien un número determinado de veces, bien mientras se cumpla una condición. Los ordenadores son buenos haciendo tareas repetitivas: siguen exactamente las instrucciones dadas y lo hacen muy rápidamente.
Pero imagina que tuvieras que escribir las mismas instrucciones para cada repetición. Cuánto tiempo perderías, ¿no?. Además, cada nueva repetición aumentarías las posibilidades de cometer un fallo al escribir. Y lo que es peor, imagina que luego quieres cambiar algo del código que se repite, tendrías que hacerlo cada vez que lo has escrito. Imagina que tienes que controlar un robot y tiene que andar en línea recta una serie de pasos.
Ejemplos
Podrías crear un código como el siguiente:
Andar paso
Andar paso
Andar paso
Andar paso
Eso haría que el robot anduviera 4 pasos. ¿Y si tiene que andar 10 pasos, repites 10 veces la misma línea? No es necesario, porque para eso tenemos las estructuras repetitivas. Así, podríamos escribir:
Repite 10 veces
Andar paso
Eso es genial, porque me evita tener que escribir un montón de código. Pero, ¿y si tiene que andar hasta llegar a una pared? No sabemos los pasos que tiene que andar. En ese caso existen estructuras repetitivas que permiten repetir tu código mientras una condición se cumpla.
Mientras no llegue a la pared
Andar paso
También podríamos expresarlo de otra forma, en la que nos aseguramos que al menos se anda un paso.
Repetir
Andar paso
Mientras no llegue a la pared
La diferencia entre el bucle ‘mientras’ y el bucle ‘repetir mientras’ es básicamente esa: en el ‘mientras’, si el robot está pegado a la pared no andaría, porque al comprobar si ha llegado a la pared vería que sí y se pararía. Sin embargo en el bucle ‘repetir mientras’ siempre andaría un paso, ya que comprueba si ha llegado a la pared al final.
La vida diaria está llena de ejemplos en los que podríamos aplicar estructuras repetitivas:
- Repite ‘decir Hola’ hasta que alguien conteste (repetir-mientras)
- Repetir por siempre ‘inspirar y expirar’ (condición que nunca es falsa)
- Mientras haya ejercicios de programación ‘hacer siguiente ejercicio’ (mientras)
- Haz 10 repeticiones de abdominales (repetir con contador)
Básicamente tenemos 2 tipos de bucles o estructuras repetitivas, que han quedado reflejadas en los ejemplos anteriores.
Concepto de acumulador (Centinela)
Un acumulador es un campo de memoria dinámica cuyo valor se incrementa sucesivas veces en cantidades variables. Se utiliza en aquellos casos en que se desee obtener un total de un conjunto de cantidades, siendo preciso inicializarlo a cero. También puede utilizarse en aquellas situaciones en las que hay que obtener un total como producto de distintas cantidades, en este caso hay que inicializar la variable a 1. En el ejemplo de las notas de los alumnos de un curso, si se desease calcular el promedio de notas en ese curso, la variable suma, representa un acumulador:
Suma ⭠ 0 // se inicializa una sola vez
//sentencias que se repiten Leer (nota)
Suma ⭠ suma + nota
Tener presente que la variable acumulador suma, se inicializa a 0.
Ejemplos…
Si no sabemos cuántas filas tenemos que insertar en la tabla pero queremos parar cuando lleguemos al final de la página. En este caso es mejor usar un bucle con condición. Estas estructuras repiten el cuerpo del bucle mientras se cumpla la condición, a la que llamaremos centinela o condición centinela. Su estructura básica es la siguiente:
Mientras condición
Cuerpo
Fin Mientras
De esta forma se repetirán las instrucciones del cuerpo mientras la condición sea cierta, por ejemplo: mientras no se alcance el final de la fila inserta filas en la tabla. Otro ejemplo:
Mientras haya celdas en blanco
pintar celda “azul”
pintar celda “rojo”
pintar celda “verde”
Fin Mientras
En los bucles mientras el ordenador comprueba si la condición se satisface, en cuyo caso ejecuta las tareas del cuerpo. Esto continuará así hasta que no se satisfaga la condición, parando entonces la ejecución de esas tareas. Es por esto muy importante tener muy claro que en algún momento tienes que hacer que la condición no se cumpla; de lo contrario el bucle se repetirá sin fin.
La variante hacer-mientras o repetir-mientras lo que hace es pasar la condición al final, de forma que el cuerpo se va a ejecutar siempre al menos una vez.
Repetir
pintar celda “azul”
pintar celda “rojo”
pintar celda “verde”
Mientras haya celdas en blanco
Concepto de contador
Un contador es un campo de memoria dinámica cuyo valor se incrementa en una cantidad fija, positiva o negativa, y generalmente asociado a un bucle. En general un contador se utiliza:
- Para contar el número de veces que es necesario repetir una acción (variable de control de un bucle)
- Para contar un suceso en particular solicitado por los requerimientos del problema (asociado a un bucle o independientemente).
Un contador toma un valor inicial (0, en la mayoría de los casos) antes de comenzar su función, y cada vez que se presenta el suceso a contar, se incrementa su valor (1 en la mayoría de los casos). Tanto el acumulador como el contador, son variables que realizan funciones específicas dentro de un programa.
Por un lado tenemos los bucles con contador, que repiten las instrucciones que contiene el cuerpo de la estructura un número determinado de veces. Su estructura básica es la siguiente:
Repetir n veces
Cuerpo
Fin Repetir
Considera el cuerpo del bucle como el conjunto de instrucciones que quieres que se repitan.
También es posible que lo encuentres en el siguiente formato:
Para i desde 1 hasta 10 con paso 1
Cuerpo
Fin Para
Cuando un ordenador recibe este tipo de estructuras establece un contador a 0 y ejecuta las instrucciones del cuerpo. Después de cada iteración, es decir, después de ejecutar el cuerpo del bucle, aumenta el contador. El proceso se repite hasta que el contador llegue a l número indicado, en cuyo caso termina. Por todo esto es bueno utilizar los bucles con contador cuando sabemos a priori el número de veces que queremos realizar una tarea: imprimir 3 copias de un documento, insertar 8 filas en una tabla, etc. Mira un ejemplo:
Repetir 10 veces
pintar celda “azul”
pintar celda “rojo”
pintar celda “verde”
Fin Repetir
Estructuras para-cada
Existe otra forma más de dar instrucciones de repetición a un ordenador. Podríamos definir por ejemplo una secuencia de colores en una lista y decirle al ordenador que repita una serie de instrucciones para cada uno de los elementos de esa lista. Finalmente, hay una variante de este tipo de bucles que sirve cuando tenemos una lista con un número determinado de elementos y queremos hacer algo con cada uno de esos elementos, por ejemplo, «para cada producto de la lista de la compra suma su precio».
Para cada color en lista_de_colores
pintar celda color
Fin Para
esta forma es más corta que las anteriores porque los colores con los que debemos pintar están ya en la lista. Se hace uso de la variable color que va cambiando a cada iteración del bucle, cogiendo de forma secuencial los valores de la lista.
Los bucles se usan mucho en programación porque ahorran tiempo, reducen errores y son más fáciles de leer. Es importante que te familiarices con cada uno de los tipos de bucles que se usan. Hacerlo hará de ti mejor programador:
- Un bucle es una estructura cuyas instrucciones (cuerpo) se escriben una vez pero pueden repetirse.
- Cada ejecución de esas instrucciones se denomina iteración.
- Los bucles para (bucles controlados por contador) se repiten un número determinado de veces.
- Las estructuras repetitivas mientras (bucles controlados por condición) se repiten hasta que su condición cambie.
- Los bucles for-each (bucles controlados por colección) se repiten para cada elemento de la colección.
Instrucciones de repetición while, do y for
Este tipo de instrucciones son también llamadas bucles, instrucciones de ciclo o de repetición, y pueden anidarse al igual que las instrucciones if. De acuerdo con Deitel y Deitel (2012):
Java cuenta con tres instrucciones de repetición (también llamadas instrucciones de ciclo) que permiten a los programas ejecutar instrucciones de forma repetida, siempre y cuando una condición (llamada la condición de continuación del ciclo) siga siendo verdadera. Las instrucciones de repetición son while, do-while y for […]. Las instrucciones while y for realizan la acción (o grupo de acciones) en sus cuerpos, cero o más veces; si, en un principio, la condición de continuación del ciclo es falsa, no se ejecutará la acción (o grupo de acciones). La instrucción do-while realiza la acción (o grupo de acciones) en su cuerpo, una o más veces. Las palabras if, else, switch, while, do y for son palabras clave en Java. (p. 106).
- En lo que respecta a la instrucción while, esta es una de las tres formas de aplicación de bucles o instrucciones de repetición, y es la única que permite hacer todo tipo de repeticiones, aun cuando existan otras dos formas. Su forma básica es:
while(expresión)
instrucción
siguiente instrucción.
Mientras que la expresión es true, se ejecuta instrucción, y luego se vuelve a evaluar expresión. Cuando el bucle termine, el bloque se devuelve a la siguiente instrucción.
- La instrucción for se utiliza, principalmente, para iteraciones simples. Su sintaxis es:
for (inicialización; comprobación; actualización)
instrucción
siguiente instrucción.
- La instrucción do es una estructura de bucle que garantiza que, al menos, se dará una ejecución y es la que se utiliza con menos frecuencia. Su sintaxis es:
do
instrucción
while(expresión)
siguiente instrucción.
FOR
En muchas ocasiones se conoce el número de veces que se desea que un bucle se repita. Se utiliza una variable como índice que se incrementa o decrementa en forma automática al finalizar cada ciclo. Para ejecutar el bucle, se evalúa una condición que debe ser verdadera. La condición más comúnmente usada es que el valor del índice sea menor o igual a un valor final. Si esto se cumple, entonces se ejecuta el bucle. Al finalizar, se incrementa o decrementa el índice y se vuelve a evaluar la condición. Cuando la condición es falsa, se ignora el bucle y se continúa con el resto del algoritmo.
Ejemplos…
desde v <- Vi hasta Vf <inc/dec> hacer
sentencia 1
sentencia 2
sentencia n
fin-desde
La variable v es una variable entera que debe ser declarada. Los valores vi y vf son los valores inicial y final que tomará la variable v. En el formato de esta estructura, hay que elegir entre incrementar o decrementar la variable de control v, ya que no pueden ocurrir al mismo tiempo ambas opciones. Si el incremento es por el valor 1, entonces se puede obviar la sentencia inc 1 en la estructura. Se pueden utilizar indistintamente las palabras reservadas desde/fin-desde y para/fin-para.
desde v <- 1 hasta 5 hacer
<sentencias>
fin-desde
En este caso, la variable v se inicializa en 1 y, luego de ejecutar todas las sentencias que están comprendidas dentro de la estructura (bucle), automáticamente se incrementa en 1. Después de ejecutar varias iteraciones, cuando el valor de la variable v alcanza el valor 6, no se realizan más iteraciones y se prosigue con la próxima instrucción que está a continuación de la sentencia fin-desde. El siguiente ejemplo tiene el mismo efecto:
desde v <- 5 hasta 9 hacer
<sentencias>
fin-desde
La variable de control v se inicializa en 5, el bucle se repite 5 veces hasta que v es igual a 10. En este punto, la condición de que v sea menor o igual a 9 es falsa y, en consecuencia, se finaliza la estructura desde.
desde v <- 1 hasta 5 inc 2 hacer
<sentencias>
fin-desde
la variable v se inicializa con el valor 1 y con la ejecución de cada bucle se incrementa en 2 unidades. El bucle se repite 3 veces para los valores 1, 3 y 5 de la variable v, y finaliza cuando esta tiene un valor mayor a 5. También se puede aplicar la misma lógica de repetición, pero decrementando la variable índice, como en el siguiente ejemplo:
desde v <- 10 hasta 2 dec 2 hacer
<sentencias>
fin-desde
Diagramas
la variable v se inicializa con el valor 10 y con la ejecución de cada bucle se decrementa en 2 unidades. Cuando v es menor que 2, entonces se finaliza la estructura repetitiva. El bucle se repite 5 veces para los valores 10, 8, 6, 4 y 2 de la variable v, y finaliza cuando esta tiene un valor menor a 2.
Existen distintas alternativas para representar el diagrama de flujo de la estructura repetitiva desde. Algunos autores simplifican la representación de esta estructura utilizando algún símbolo propio
Ejercicio 1
Permita ingresar N números por teclado y que muestre por pantalla el mayor y menor de ellos.
algoritmo mayor_ menor _ numero_para
var
entero: N, num, mayor, menor, i
inicio
mostrar("lngrese la cantidad de números con los que va trabajar")
leer(N)
mostrar("lngrese un número")
leer(num)
mayor <- num
menor <- num
para i <-2 hasta N hacer
mostrar("lngrese un número")
leer(num)
si mayor < num entonces
mayor <- num
fin-si
si menor > num entonces
menor <- num
fin-si
fin-para
mostrar("El mayor número ingresado es , mayor)
mostrar("El menor número ingresado es , menor)
fin
Ejercicio 2
Permita ingresar N números enteros por teclado y que muestre por pantalla los promedios de los números positivos y negativos.
algoritmo promedio_numeros_positivos_negativos
var
entero: N, cantidadpositivos, cantidadNegativos, sumaPositivos,
sumaNegativos, i
real: num
inicio
mostrar("lngrese Ia cantidad de números con 10s que va trabajar")
leer(N)
cantidadpositivos <-0
cantidadNegativos <-0
sumaPositivos <-0
sumaNegativos <-0
para i hasta N hacer
mostrar("lngrese un número")
leer(num)
si num > 0 entonces
cantidadpositivos <- cantidadpositivos + 1
sumaPositivos <- sumaPositivos + num
fin-si
si num < 0 entonces
cantidadNegativos <- cantidadNegativos + 1
sumaNegativos <- sumaNegativos + num
fin-si
fin-para
si cantidadpositivos > 0 entonces
mostrar("El promedio de 10s números positivos es ",
sumapositivos/cantidadpositivos)
sl-no
mostrar("No se han ingresado números positivos")
fin-si
si cantidadNegativos > 0 entonces
mostrar("El promedio de 10s números negativos es "
sumaNegativos/cantidadNegativos)
sl-no
mostrar("No se han ingresado números negativos")
fin-si
fin
Ejercicio 3
Permita ingresar N calificaciones de alumnos y mostrar la cantidad de alumnos aprobados.
algoritmo calificaciones_alumnos
var
entero: N, nota, cantidadAprobados, i
inicio
leer(N)
cantidadAprobados <- 0
desde i <- 1 hasta N hacer
leer(nota)
si nota >= 5 entonces
cantidadAprobados <- cantidadAprobados + 1
fin-si
fin-desde
mostrar(cantidadAprobados)
fin
EQUIVALENCIA ENTRE LAS ESTRUCTURAS REPETITIVAS
Dependiendo del problema para solucionar, es posible que alguna de las estructuras de repetición se adapte más fácilmente que otra, pero siempre es posible reemplazarla realizando algunas variaciones sencillas. si se deseara acumular en una variable la suma de los 10 primeros números enteros positivos que ingresa un usuario desde el teclado, podríamos tener los siguientes algoritmos:
Usando la estructura mientras:
suma <-0
Contador <- 1
mientras contador <-10 hacer
leer(dato)
suma <-suma + dato
contador <-contador + 1
fin-mientras
Usando la estructura repetir-hasta:
suma <-0
Contador <- 1
repetir
leer(dato)
Suma <- suma + dato
contador <- contador + 1
hasta-que contador > 10
Usando la estructura desde/para:
suma <-0
para contador 1 hasta 10 hacer
leer(dato)
Suma <- suma + dato
fin -para
Ejercicio 4
Se dispone de una lista de N números ingresados por teclado, se desea determinar y mostrar por pantalla el valor del número mayor que se haya ingresado. Una posible codificación podría ser:
Algoritmo DeterminaMayor Var
entero: N, cant real: dato, mayor
inicio leer (N)
leer ( dato) mayor ⭠ dato
desde cant ⭠ 2 hasta N hacer leer ( dato)
si mayor < dato entonces
mayor ⭠ dato
fin-si
fin-desde mostrar ( mayor)
fin
Ejercicio 5
Se dispone de una lista de N números ingresados por teclado, se desea determinar y mostrar por pantalla el valor del número mayor y del menor que se hayan ingresado al mismo tiempo.
Algoritmo DeterminaMayor_Menor Var
entero: N, cant
real: dato, mayor, menor
inicio leer (N)
leer ( dato) mayor ⭠ dato menor ⭠ dato
desde cant ⭠ 2 hasta N hacer leer ( dato)
si mayor < dato entonces
mayor ⭠ dato
fin-si
si menor > dato entonces
menor ⭠ dato
fin-si
fin-desde
mostrar ( mayor, menor)
fin
Ejercicio 6
Se leen desde el teclado 100 números, se desea determinar y mostrar por pantalla la media de los números positivos y la media de los números negativos que se hubiesen ingresado, al mismo tiempo.
Algoritmo DeterminaMedia_Positivos_Negativos Var
entero: cantP, cantN, total real: dato, sumaPos, sumaNeg
inicio
cantP ⭠ 0
cantN ⭠ 0
sumaPos ⭠ 0
sumaNeg ⭠ 0
desde total ⭠ 1 hasta 100 hacer
leer ( dato)
si dato > 0 entonces
cantP ⭠ cantP+1
sumaPos ⭠ sumaPos + dato
fin-si
si dato < 0 entonces
sumaNeg ⭠ sumaNeg + dato cantN ⭠ cantN + 1
fin-si
fin-desde
mostrar ( „la media de los valores negativos es: „,sumaNeg/cantN) mostrar ( „la media de los valores positivos es:‟, sumaPos/cantN)
fin
Ejercicio 7
leer las calificaciones de N alumnos de una clase de Informática. Y se desea contar la cantidad de alumnos aprobados (nota 5 o mayor a 5).
Una posible codificación puede ser:
Algoritmo DeterminaNumero_Aprobados Var
entero: N, cant, nota, cantApro
inicio
leer (N) // cantidad de alumnos cantApro ⭠ 0
desde cant ⭠ 1 hasta N hacer leer ( nota)
si nota > = 5 entonces cantAmayor ⭠ cantApro + 1
fin-si
fin-desde
mostrar ( cantApro)
fin
Ejercicio 8
Mostrar por pantalla solamente las letras mayúsculas ingresadas por teclado. Realizar 20 ingresos.
Una codificación puede ser:
Algoritmo MuestraMayúsculas Var
caracter: dato entero: cant
inicio cant ⭠ 0 repetir
leer ( dato)
si (dato > = „A‟ y dato < = „Z‟) o (dato > = „a‟ y dato < = „z‟) entonces mostrar ( dato)
fin-si
cant ⭠ cant +1
hasta-que cant > = 20
fin
Ejercicio 9
Realizar 50 ingresos de caracteres por teclado. Si el carácter ingresado, es una minúscula mostrarla por pantalla, si la letra es mayúscula convertirla a minúscula para luego mostrarla por pantalla. Una codificación puede ser:
Algoritmo MuestraMinúsculas Var
caracter: dato entero: cont
inicio cont ⭠ 0 repetir
leer ( dato)
si (dato > = „a‟ y dato < = „z‟) entonces mostrar ( dato)
fin-si
si (dato > = „A‟ y dato < = „Z‟) entonces dato ⭠ dato + 32
mostrar (dato) fin-si
cont ⭠ cont +1
hasta-que cant > = 50
fin
EXPLICACION:
Los caracteres se almacenan en memoria mediante una codificación en 0 y 1. A cada carácter le corresponde un número entero que se representa en código ASCII. La tabla ASCII, contiene números enteros con los que se corresponden las letras minúsculas, las mayúsculas, los números (de 0 a 9), los signos de puntuación, etc.
Las letras mayúsculas les corresponden números enteros consecutivos, la letra A mayúscula le corresponde el número 65, la letra B el 66, la letra C el 67 y así hasta llegar a la letra Z mayúscula. A las letras minúsculas, también les corresponden números enteros consecutivos. La letra a minúscula le corresponde el número 97, la letra b el 98, la letra c el 99 y así hasta llegar a la letra z minúscula.
Para la misma letra, mayúscula y minúscula, existe una constante igual a 32. Es decir entre la A y la letra a minúscula existen 32 posiciones de la tabla. Lo mismo ocurre para la letra B y b. Cuando la letra se coloca entre comillas simple, se está haciendo referencia al número entero que representa su codificación en ASCII. Por lo tanto no es necesario recordar la constante 32, basta con saber la siguiente relación
…… Var
entero: cont
. ………
cont ⭠ „a‟ – „A‟ // cont contiene 32 cont ⭠ „t‟ – „T‟ // cont contiene 32 y así para cualquier letra mayúscula y minúscula. Entonces, cuando la estructura selectiva si/si-no detecta en la expresión que el carácter ingresado es una letra mayúscula, entonces a su valor entero ASCII le suma 32 para convertirla en la misma letra pero en su forma minúscula. Todos los caracteres que no sean minúsculas o mayúsculas ( se convierten) se cuentan como ingreso válido para alcanzar la cifra 50.
Ejercicio 10
Ingresos de caracteres por teclado y mostrarlos por pantalla. El programa termina, con la primer vocal ( sea mayúscula sea minúscula) que se ingrese. Una codificación puede ser:
Algoritmo MuestraCaracter Var
caracter: dato
lógico: flag // bandera inicio
flag ß verdadero
mientras flag = verdadero hacer
leer ( dato)
según-sea dato hacer caso „a‟ : flag ß falso caso „A‟ : flag ß falso caso „e‟ : flag ß falso caso „E‟ : flag ß falso caso „i‟ : flag ß falso caso „I‟ : flag ß falso caso „o‟ : flag ß falso caso „O‟ : flag ß falso caso „u‟ : flag ß falso caso „U‟ : flag ß falso
fin-segun
si flag = verdadero entonces mostrar ( dato)
fin-si
fin-mientras
fin
Ejercicio 11
Ingresar 3 números desde el teclado, los números representan dimensiones de los lados de un triángulo. El programa mostrará por pantalla un mensaje indicando si el triángulo es equilátero ( 3 lados iguales), isósceles ( dos lados iguales) o escaleno (3 lados distintos). El programa termina cuando se introduzca la palabra salir.
Algoritmo Clasifica_triangulos Var
Real: lado1, lado2, lado3 Cadena: clave
inicio
clave ß XXX
mientras no (clave = „salir‟) hacer
leer ( lado1, lado2, lado3)
si (lado1 =lado2) y (lado2 = lado3) entonces mostrar ( „equilátero‟)
si-no
si ( lado1 < > lado2) y ( lado2 < > lado3) entonces mostrar („ escaleno‟)
si-no
mostrar ( „isósceles‟) fin-si
fin-si
mostrar ( „para terminar introduzca la palabra salir en minúscula‟) leer( clave)
fin-mientras
fin
Ejercicio 12
Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño
Estructurado de Algoritmos
Inicio
Sum=0
Leer Nom
Hacer para c = 1 a 7
Leer calif
Sum = sum + calif
Fin-para
prom = sum /7
Imprimir prom
Fin.
Ejercicio 13
Leer 10 números y obtener su cubo y su cuarta.
Inicio
Hacer para n = 1 a 10
Leer num
cubo = num * num * num
cuarta = cubo * num
Imprimir cubo, cuarta
Fin-para
Fin.
Ejercicio 14
Leer 10 números e imprimir solamente los números positivos
Inicio
Hacer para n = 1 a 10
Leer num
Si num > 0 entonces
Imprimir num
fin-si
Fin-para
Fin.
Ejercicio 15
Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos neutros.
Inicio
cn = 0
cp = 0
cneg = 0
Hacer para x = 1 a 20
Leer num
Si num = 0 entonces
cn = cn + 1
si no
Si num > 0 entonces
cp = cp + 1
si no
cneg = cneg + 1
Fin-si
Fin-si
Fin-para
Imprimir cn, cp, cneg
Fin.
Ejercicio 16
Leer 15 números negativos y convertirlos a positivos e imprimir dichos números.
Inicio
Hacer para x = 1 a 15
Leer num
pos = num * -1
Imprimir num, pos
Fin-para
Fin.
Ejercicio 17
Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un algoritmo para calcular la calificación media y la calificación mas baja de todo el grupo.
Inicio
sum = 0
baja = 9999
Hacer para a = 1 a 40
Leer calif
sum = sum + calif
Si calif < baja entonces
baja = calif
fin-si
Fin-para
media = sum / 2
Imprimir media, baja
fin
Ejercicio 18
Calcular e imprimir la tabla de multiplicar de un numero cualquiera. Imprimir el multiplicando, el multiplicador y el producto.
Inicio
Leer num
Hacer para X = 1 a 10
resul = num * x
Imprimir num, “ * “, X, “ = “, resul
Fin-para
fin.
Ejercicio 19
Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un día desde las 0:00:00 horas hasta las 23:59:59 horas
Inicio
Hacer para h = 1 a 23
Hacer para m = 1 a 59
Hacer para s = 1 a 59
Imprimir h, m, s
Fin-para
Fin-para
Fin-para
fin.
Problemas Propuestos
1) Una persona debe realizar un muestreo con 50 personas para determinar el promedio de peso de los niños, jóvenes, adultos y viejos que existen en su zona habitacional. Se determinan las categorías con base en la sig, tabla:
CATEGORIA Niños Jóvenes Adultos | EDAD 0 – 12 | 13 – 29 30 – 59 |
Viejos | 60 en adelante |
2) Al cerrar un expendio de naranjas, 15 clientes que aun no han pagado recibirán un 15% de descuento si compran más de 10 kilos. Determinar cuánto pagara cada cliente y cuanto percibirá la tienda por esas compras.
3) En un centro de verificación de automóviles se desea saber el promedio de puntos contaminantes de los primeros 25 automóviles que lleguen. Asimismo se desea saber los puntos contaminantes del carro que menos contamino y del que más contamino.
4) Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco kilómetros durante 10 días, para determinar si es apto para la prueba de 5 Kilómetros o debe buscar otra especialidad. Para considerarlo apto debe cumplir por lo menos una de las siguientes condiciones:
- – Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos.
- – Que al menos en una de las pruebas realice un tiempo mayor a 16 minutos.
- – Que su promedio de tiempos sea menor o igual a 15 minutos.
5) Un Zoólogo pretende determinar el porcentaje de animales que hay en las siguientes tres categorías de edades: de 0 a 1 año, de mas de 1 año y menos de 3 y de 3 o mas años. El zoológico todavía no esta seguro del animal que va a estudiar. Si se decide por elefantes solo tomara una muestra de 20 de ellos; si se decide por las jirafas, tomara 15 muestras, y si son chimpancés tomara 40.
No te detengas, sigue avanzando
Aquí tienes un propósito para este 2024 que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera!
Python Practicando. Desde 0 hasta Desarrollador en Python
Aprende Python, donde iniciamos desde 0, sin conocimientos previos hasta desarrollar aplicaciones con mucha practica!
Calificación: 4,6 de 5 (20.833 calificaciones) 249.493 estudiantes Creado por Alvaro Chirou • 1.800.000+ Enrollments Worldwide, Walter Coto || +450,000 Estudiantes Español.
Lo que aprenderás
- Ejercitar la lógica de programación
- Comprender cómo la vida cotidiana puede ser fácilitada o simulada con código
- Aprender programación desde cero
- Usar Visual Studio Code como Editor de Código
- Conocer y aprender el lenguaje de programación Python
- Ser un programador desde cero, sin conocimiento en otro lenguaje o con algo previo
- Mejorar las habilidades de programación, mejorar procesos y fácilitar la comprensión de código
- Preparar un entorno dónde programar en Python
- Operaciones aritméticas y jerarquía de Python
- Manejo de cadenas en Python
- Digitar datos por teclado con Python
- Mostrar Datos por Pantalla al usuario en Python
- Operadores Relacionales de Python
- Operadores Lógicos de Python
- Condicionales en Python
- Estructuras de Datos: Listas, Tuplas y Diccionarios
- Iteraciones y bucles repetitivos de Python
- Segmentar Código y hacerlo más eficaz con las Funciones en Python
- Gestionar posibles errores que puedan dar tus programas
- Programación Orientada a Objetos
- HTML y CSS
- Selenium Web Driver con Python
- Ejercitar todo lo Aprendido con Ejercicios
Este curso incluye:
- 25,5 horas de vídeo bajo demanda
- 21 artículos
- 148 recursos descargables
- Acceso en dispositivos móviles y TV
- Certificado de finalización
Python es Hoy uno de los lenguajes más utilizados por Excelencia.
Esto se debe por su simpleza al momento de Desarrollar aplicaciones.
Por su capacidad de procesamiento a altas velocidades con grandes volúmenes de información.
Es un increíble lenguaje con el cual si no sabes programar, podrás aprender.
Y si ya sabes desarrollar, te aconsejo aprenderlo ya que en el mercado cada vez se solicitan más desarrolladores en Python.
Aspirar al trabajo que desean, o mejorar sus ingresos con un aumento de salario.
Python se utiliza para muchisimas cosas como:
- Machine Learning
- Data Science
- Inteligencia Artificial.
- Y mucho más!
En este curso te acompañare en el proceso por el cual aprenderás las bases del lenguaje, para luego determinar qué camino quieres seguir.
Te invito que me acompañes a conocer este Gran Lenguaje!
Aprende con nuestros más de 100 cursos que tenemos disponibles para vos
¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?
Sobre los autores
Álvaro Chirou
Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes serguirme en mis redes:
Laprovittera Carlos
Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:
¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/como-iniciarse-en-ciberseguridad-y-hacking-en-2024/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.