16
Dpto. de ATC - Página 1 de 16 Fundamentos de Informática E.U.P. Universidad de Sevilla Introducción a la Algorítmica Introducción a la Algorítmica Transparencias correspondientes a las clases impartidas por los Transparencias correspondientes a las clases impartidas por los profesores: profesores: Lourdes Miró Lourdes Miró Amarante Amarante Ignacio García Vargas Ignacio García Vargas Un algoritmo algoritmo es un conjunto de acciones que determinan determinan la secuencia de los pasos a seguir para resolver un problema específico. Otras definiciones: Conjunto de reglas para resolver un problema. Una forma de describir la solución de un problema. Los pasos de un algoritmo deben estar definidos con precisión precisión, no deben existir ambigüedades que den origen a elegir una decisión equivocada. CONCEPTO DE ALGORITMO (1) CONCEPTO DE ALGORITMO (2) Un algoritmo es un proceso que a partir de unos datos de entrada genera unos datos de salida llamados resultados. ALGORITMO ALGORITMO DATOS DE ENTRADA DATOS DE ENTRADA PROCESAMIENTO PROCESAMIENTO RESULTADOS RESULTADOS ARCHIVO ARCHIVO PANTALLA PANTALLA TECLADO TECLADO ARCHIVO ARCHIVO DATO es cualquier objeto manipulable por el ordenador Se distinguen dos clases de datos: VARIABLES: Objeto cuyo valor cambia durante la ejecución de un programa. CONSTANTES: Objeto cuyo valor NO cambia durante la ejecución de un programa. DATOS: VARIABLES Y CONSTANTES

Introducción a la Algorítmica - icaro.eii.us.esicaro.eii.us.es/descargas/transparencias_introduccion_a_la... · Los pasos de un algoritmo deben estar definidos con ... DIAGRAMAS

Embed Size (px)

Citation preview

Dpto. de ATC - Página 1 de 16

Fundamentos de InformáticaE.U.P. Universidad de Sevilla

Introducción a la AlgorítmicaIntroducción a la AlgorítmicaTransparencias correspondientes a las clases impartidas por los Transparencias correspondientes a las clases impartidas por los profesores:profesores:

Lourdes Miró Lourdes Miró AmaranteAmaranteIgnacio García VargasIgnacio García Vargas

� Un algoritmoalgoritmo es un conjunto de acciones que determinandeterminan la secuencia de los pasos a seguir para resolver un problema específico.

� Otras definiciones:� Conjunto de reglas para resolver un problema.� Una forma de describir la solución de un problema.

� Los pasos de un algoritmo deben estar definidos con precisiónprecisión, no deben existir ambigüedades que den origen a elegir una decisión equivocada.

CONCEPTO DE ALGORITMO (1)

CONCEPTO DE ALGORITMO (2)

� Un algoritmo es un proceso que a partir de unos datos de entrada genera unos datos de salidallamados resultados.

ALGORITMOALGORITMO

DATOS DE ENTRADADATOS DE ENTRADA PROCESAMIENTOPROCESAMIENTO RESULTADOSRESULTADOS

ARCHIVOARCHIVOPANTALLAPANTALLATECLADOTECLADO ARCHIVOARCHIVO

� DATO es cualquier objeto manipulable por el ordenador

� Se distinguen dos clases de datos:

� VARIABLES: Objeto cuyo valor cambia durante la ejecución de un programa.

� CONSTANTES: Objeto cuyo valor NO cambia durante la ejecución de un programa.

DATOS: VARIABLES Y CONSTANTES

Dpto. de ATC - Página 2 de 16

TIPOS DE DATOS

� Los valores que pueden tomar las variables y las constantes pertenecen a un TIPO (tipo de dato). Por ejemplo:� Numérico: enteros, reales, etc.� Carácter: contienen texto

� Por ejemplo, una variable que contenga el nombre de una persona.

� Booleano: está compuesto por dos valores (VERDADERO, FALSO)

� Conjunto de elementos homogéneo: todos los elementos que lo componen son del mismo tipo de dato.

� Conjunto de elementos ordenado: los elementos siguen un orden y se distinguen por la posición que ocupan.

� Cada elemento del vector se representa por el nombredel vector y un índice, que indica la posición que ocupa el elemento dentro del vector.

TIPOS DE DATOS: VECTORES

VECTORES: EJEMPLO

� Supongamos que tenemos un vector de números reales llamado temperaturas que contiene las temperaturas de cada hora del día.

9,920,11411,311,910,5

24...54321

temperaturas

índices

temperaturas[2] temperaturas[4]

REPRESENTACIÓN DE ALGORITMOS

Existen dos herramientas de programación, usadas como lenguajes algorítmicos, para representar un algoritmo:

�DIAGRAMAS DE FLUJO

�PSEUDOCODIGO

Dpto. de ATC - Página 3 de 16

PSEUDO CÓDIGO

�Es una mezcla de lenguaje de programación y español ( o cualquier otro idioma).

�Es un conjunto pequeño y completo de sentencias que especifica los pasos de un algoritmo.

ESTRUCTURA GENERAL

ALGORITMO nombreVARIABLES

declaración de las variables utilizadasINICIO

sentenciasFIN

EJEMPLO DE DECLARACIÓN DE VARIABLES

nombre ES TEXTOimporte ES REALtiene_tarjeta ES BOOLEANOnumero_cliente ES ENTEROprecios ES VECTOR DE REALES

� Los nombres de las variables no deben contener espacios.

SENTENCIAS SIMPLES

� Lectura de datos del teclado � LEE importe

� Escritura de datos en pantalla� ESCRIBE importe

� Expresiones aritméticas� Asignaciones

� importe ← precio * 1.13� total ← total + (precio + 3) * 2.5� factorial ← valor * factorial� x ← x + 1

� Expresiones lógicas (valores booleanos)� (factorial > 34 Y factorial < 54000) O contador < 32

Dpto. de ATC - Página 4 de 16

PROGRAMACIÓN ESTRUCTURADA

�Un programa se escribe utilizando los siguientes tipos de estructuras de control de secuencia:

�Secuencial: Una acción se ejecuta una tras otra, es decir,

una instrucción sigue a otra en secuencia.

� Selectiva: Se evalúa la condición y en función del resultado

se ejecuta un conjunto de instrucciones u otro. Hay tres tipos de

selectivas (simple, doble o múltiple).

� Repetitiva: Contienen un bucle (conjunto de instrucciones que

se repiten un número finito de veces). Cada repetición del bucle se llama

iteración. Todo bucle tiene que llevar asociada una condición, que

determina si el bucle se repite o no.

ESTRUCTURA SECUENCIAL

Sentencia 1Sentencia 2...Sentencia N

�Se caracteriza porque las acciones se ejecutan una tras otra, es decir una sentencia sigue a otra en secuencia.

EJEMPLO DE ESTRUCTURA SECUENCIAL (Enunciado)

Problema 1Problema 1.

Escriba un algoritmo con seudo-código tal que, dadas tres variables que contienen la longitud de los lados de un triángulo a, b y c, calcule su área S aplicando las siguientes ecuaciones:

p = (a + b + c)/2

������ �������� −−−=

El valor de las variables a, b y c debe leerse del teclado.

EJEMPLO DE ESTRUCTURA SECUENCIAL (Solución problema 1)

ALGORITMO Problema1

VARIABLES

a, b, c, p, s SON REALES

INICIO

LEE a

LEE b

LEE c

p ← (a + b + c) / 2

s ← raiz( p * (p-a) * (p-b) * (p-c) )

ESCRIBE “a = “, a, “b = “, b , “c = “, c

ESCRIBE “p = “, p, “s = “, s

FIN

Dpto. de ATC - Página 5 de 16

ESTRUCTURA SELECTIVA (SIMPLE)

� Se evalúa la condición,� si es verdadera, se ejecutan las sentencias; � en caso contrario, se salta dicho grupo de sentencias.

SI condición ENTONCESsentencias

FINSI

EJEMPLO DE ESTRUCTURA SELECTIVA SIMPLE (Enunciado)

Problema 2Problema 2.

Construya un algoritmo en pseudo código tal que, dados los valores enteros P y Q, que deben leerse del teclado, determine si los mismos satisfacen la siguiente expresión:

En caso afirmativo debe escribir por pantalla los valores de P y Q.

���� ��� <−+ ���

Problema 2Problema 2

EJEMPLO DE ESTRUCTURA SELECTIVA SIMPLE (Solución)

ALGORITMO Problema2VARIABLES

p, q SON ENTEROSINICIO

LEER p

LEER q

SI (P^3 + Q^4 – 2 * P^2 < 680) ENTONCESESCRIBE “Los valores de P y Q son:”ESCRIBE “P = “, P, “Q = “, Q

FINSIFIN

ESTRUCTURA SELECTIVA (DOBLE)

�Se evalúa la condición� Si es verdadera: se ejecutan las sentencias 1.� Si es falsa: se ejecutan las sentencias 2.

SI condición ENTONCESsentencias 1

SINOsentencias 2

FINSI

Dpto. de ATC - Página 6 de 16

EJEMPLO DE ESTRUCTURA SELECTIVA DOBLE

ALGORITMO ejemplo

VARIABLES

ex1, ex2, ex3, cal SON REALES

INICIO

LEER ex1, ex2, ex3

cal ← (ex1 + ex2 + ex3) / 3

SI cal >= 7.5 ENTONCES

ESCRIBE “aprobado”

SINO

ESCRIBE “no aprobado”

FINSI

FIN

ESTRUCTURA SELECTIVA MULTIPLE

SI condición1 ENTONCESsentencias1

SINO SI condición2 ENTONCES

sentencias2SINO

sentencias3FINSI

FINSI

Problema 3Problema 3.

Elabore un algoritmo en pseudo código que lea del teclado una temperatura en grados Centígrados, calcule los grados Fahrenheit y escriba por pantalla el deporte que es apropiado practicar a esa temperatura, teniendo en cuenta la siguiente tabla:

��������� ������������ �����������������

��������� ����������� ����������� ����!�"#� $���������� ������%&'� $(��������� �$��������� � �$(�

EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE (Enunciado)

��

� +⋅= ��

Para convertir grados Centígrados (variable c) a Fahrenheit (variable f) se utiliza la siguiente ecuación:

ALGORITMO Problema3VARIABLES

cent, fah SON REALESINICIO

LEER centfah ←←←← (9 / 5) * cent + 32SI fah > 85 ENTONCES

ESCRIBE “Natacion”SINO

SI fah > 70 ENTONCES ESCRIBE “Tenis”

SINOSI fah > 35 ENTONCES

ESCRIBE “Golf”SINO

SI fah > 32 ENTONCES ESCRIBE “Esqui”

SINO ESCRIBE “Marcha”

FINSIFINSI

FINSIFINSI

FIN

EJEMPLO DE ESTRUCTURA SELECTIVA MULTIPLE (Solución)

Dpto. de ATC - Página 7 de 16

ESTRUCTURAS REPETITIVAS: VARIABLES ESPECIALES

� Contadores: � Son variables que se utilizan para contar.� Normalmente su valor se incrementa o decrementa en 1.

� Ejemplos:contador ← contador + 1indice ← indice - 1

� Acumuladores:� Se utilizan para almacenar el resultado de sumas sucesivas.� Su valor se incrementa en cantidades variables.

� Ejemplos:total ← total + valor

EJEMPLO DE CONTADOR Y ACUMULADOR

1. ALGORITMO ejemplo contador

2. VARIABLES

3. c ES ENTERO

4. INICIO

5. c �

�� c� c + 1

7. c � c + 1

8. FIN

1. ALGORITMO ejemplo acumulador

2. VARIABLES

3. c, v SON ENTEROS

4. INICIO

5. c � �

�� ����

�� c� c + v

8. LEE v

9. c � c + v

10.FIN

ESTRUCTURA REPETITIVA MIENTRAS

� La condición del bucle se evalúa al principio, antes ejecutar las sentenciasdel bucle,

�Si es verdadera, se ejecutan las sentencias del bucle y después se vuelve a preguntar por la condición. �En el momento en el que la condición es falsa se sale del bucle.

�Como la condición es evaluada, la primera vez, antes de entrar en el bucle, puede que el bucle se ejecute 0 veces.

�Para finalizar un bucle, el valor de la condición debe ser modificado en las sentencias que componen el bucle.

MIENTRAS condición HACER

sentencias

FIN MIENTRAS

ESTRUCTURA REPETITIVA MIENTRAS: EJEMPLO

ALGORITMO ejmplo

VARIABLES

c ES ENTERO

INICIO

c ← 1

MIENTRAS c < 3 HACER

c ← c + 1

FIN MIENTRAS

ESCRIBIR c

FIN

Dpto. de ATC - Página 8 de 16

EJERCICIOS ESTR. REPETITIVA MIENTRAS

� Problema 4Escriba un algoritmo que lea del teclado un número entero y que compruebe si es menor que 5. Si no lo es, debe volver a leer un nuevo número tantas veces como sea necesario, hasta que el usuario escriba un valor correcto (un número menor que 5). Finalmente debe escribir por pantalla el valor leído.

EJERCICIOS ESTR. REPETITIVA MIENTRAS (solución problema 4)

ALGORITMO problema4

VARIABLES

num ES ENTERO

INICIO

ESCRIBE “Teclee un número menor que 5”

LEE num

MIENTRAS num >= 5 HACER

ESCRIBE “Teclee un número menor que 5”

LEE num

FIN MIENTRAS

ESCRIBE “El número leído es “, num

FIN

EJERCICIOS ESTR. REPETITIVA MIENTRAS

� Problema 5Modifique el algoritmo del problema 4 para que, en vez de comprobar que el número es menor que 5, compruebe que se encuentre en el rango (5,15).

EJERCICIOS ESTR. REPETITIVA MIENTRAS (solución problema 5)

ALGORITMO problema5

VARIABLES

num ES ENTERO

INICIO

ESCRIBE “Teclee un número entre 5 y 15 (no incluidos)”

LEE num

MIENTRAS num <= 5 O num >= 15 HACER

ESCRIBE “Teclee un número entre 5 y 15 (no incluidos)”

LEE num

FIN MIENTRAS

ESCRIBE “El número leído es “, num

FIN

Dpto. de ATC - Página 9 de 16

EJERCICIOS ESTR. REPETITIVA MIENTRAS

� Problema 6Modifique el algoritmo del problema 5 para que cuente las veces que se ha leído un número del teclado y escriba en pantalla el resultado de la cuenta.

EJERCICIOS ESTR. REPETITIVA MIENTRAS (solución problema 6)

ALGORITMO problema6

VARIABLES

num, veces SON ENTEROS

INICIO

ESCRIBE “Teclee un número entre 5 y 15 (no incluidos)”

LEE num

veces ← 1

MIENTRAS num <= 5 O num >= 15 HACER

ESCRIBE “El número es incorrecto, inténtelo de nuevo.”

LEE num

veces ← veces + 1

FIN MIENTRAS

ESCRIBE “El número leído es “, num

ESCRIBE “El número de intentos ha sido “, veces

FIN

EJERCICIOS ESTR. REPETITIVA MIENTRAS

� Problema 7Modifique el algoritmo del problema 6 para que se realicen 10 lecturas del teclado como máximo.

EJERCICIOS ESTR. REPETITIVA MIENTRAS (solución problema 7)

ALGORITMO problema7

VARIABLES

num, veces SON ENTEROS

INICIO

ESCRIBE “Teclee un número entre 5 y 15 (no incluidos)”

LEE num

veces ← 1

MIENTRAS (num <= 5 O num >= 15) Y veces < 10 HACER

ESCRIBE “El número es incorrecto, inténtelo de nuevo.”

LEE num

veces ← veces + 1

FIN MIENTRAS

ESCRIBE “El número leído es “, num

ESCRIBE “El número de intentos ha sido “, veces

FIN

Dpto. de ATC - Página 10 de 16

EJERCICIOS ESTR. REPETITIVA MIENTRAS

� Problema 8Escriba un algoritmo que, dado un vector de 100 enteros, escribatodos sus elementos por pantalla. Supongamos que el primer elemento del vector tiene índice 1.

Supongamos que el contenido del vector nos viene dado y que el algoritmo no necesita leerlo.

� Ejemplo de declaración de vectores:importes ES VECTOR DE REALES (INDICES 1 A 3)

EJERCICIOS ESTR. REPETITIVA MIENTRAS (solución problema 8)

ALGORITMO problema8

VARIABLES

v ES VECTOR DE 100 ENTEROS (INDICES 1 A 100)

total, i SON ENTEROS

INICIO

i ← 1

MIENTRAS i <= 100 HACER

ESCRIBE “El elemento “, i, “ vale ”, v[i]

i ← i+1

FIN MIENTRAS

FIN

EJERCICIOS ESTR. REPETITIVA MIENTRAS

� Problema 9Escriba un algoritmo que, dado un vector de 100 enteros, sume todos sus elementos y escriba por pantalla el resultado. Supongamos que el primer elemento del vector tiene índice 1.

Supongamos que el contenido del vector nos viene dado y que el algoritmo no necesita leerlo.

EJERCICIOS ESTR. REPETITIVA MIENTRAS (solución problema 9)

ALGORITMO problema9

VARIABLES

v ES VECTOR DE 100 ENTEROS (INDICES 1 A 100)

total, i SON ENTEROS

INICIO

i ← 1

total ← 0

MIENTRAS i <= 100 HACER

total ← total + v[i]

i ← i+1

FIN MIENTRAS

ESCRIBE total

FIN

Dpto. de ATC - Página 11 de 16

EJERCICIOS ESTR. REPETITIVA MIENTRAS

� Problema 10Escriba un algoritmo que, dado un vector de 100 enteros, cuente el número de elementos cuyo valor se encuentra en el rango [10, 50) y que escriba el resultado por pantalla.

Supongamos que el contenido del vector nos viene dado y que el algoritmo no necesita leerlo.

� Por ejemplo, el siguiente vector

contiene 4 valores en el rango indicado, correspondientes a los elementos de índice 1, 3, 5 y 6.

-3449159813210

7654321

EJERCICIOS ESTR. REPETITIVA MIENTRAS (solución problema 10)

ALGORITMO problema10

VARIABLES

v ES VECTOR DE 100 ENTEROS (INDICES 1 A 100)

cuenta, i SON ENTEROS

INICIO

i ← 1

cuenta ← 0

MIENTRAS i <= 100 HACER

SI v[i] >= 10 Y v[i] < 50 ENTONCES

cuenta ← cuenta + 1

FINSI

i ← i+1FIN MIENTRAS

ESCRIBE cuenta

FIN

EJERCICIOS ESTR. REPETITIVA MIENTRAS

� Problema 11Modifique el algoritmo del problema 10 para que calcule el valormedio de los elementos que se encuentran en el rango indicado.

EJERCICIOS ESTR. REPETITIVA MIENTRAS (solución problema 11)

ALGORITMO problema11VARIABLES

v ES VECTOR DE 100 ENTEROS (INDICES 1 A 100)total, cuenta, i SON ENTEROS

INICIOi ← 1cuenta ← 0total ← 0MIENTRAS i <= 100 HACER

SI v[i] >= 10 Y v[i] < 50 ENTONCEScuenta ← cuenta + 1total ← total + v[i]

FINSIi ← i+1

FIN MIENTRASESCRIBE total / cuenta

FIN

Dpto. de ATC - Página 12 de 16

Problema 12Problema 12

Escriba un algoritmo en pseudo código que calcule e imprima la suma de los n primeros números enteros positivos. El valor de n debe leerse del teclado.

EJEMPLO DE ESTRUCTURA REPETITIVA MIENTRAS EJEMPLO DE ESTRUCTURA REPETITIVA MIENTRAS(Solución problema 12)

ALGORITMO problema12VARIABLES

i ES ENTEROs ES REAL

INICIOLEER ns ← 0i ← 1MIENTRAS i<=n HACER

s ← s+ii ← i+1

FIN MIENTRASESCRIBE “La suma de los primeros “, n, “ numeros es “, s

FIN

ESTRUCTURA REPETITIVA HASTA

�La condición se evalúa siempre al final del bucle,�si es falsa, volvemos a ejecutar las acciones, �si es verdadera, se sale del bucle.

�Como la condición se evalúa al final, incluso aunque la primera vez sea verdadera, se ejecuta al menos una vez por el bucle.

�Para finalizar un bucle, el valor de la condición debe ser modificado en las sentencias que componen el bucle.

REPETIR

sentencias

HASTA condición

ESTRUCTURA REPETITIVA HASTAEquivalencia con la estructura MIENTRAS

REPETIR

sentencias_hasta

HASTA condición_hasta

sentencias_hasta

MIENTRAS NO condición_hasta HACER

sentencias_hasta

FIN MIENTRAS

Dpto. de ATC - Página 13 de 16

Hasta

EJEMPLO DE ESTRUCTURA REPETITIVA HASTA(Solución del problema 12)

ALGORITMO Problema12VARIABLES

i, n SON ENTEROSs ES REAL

INICIOLEER ns � 0.0i � 1REPETIR

s � s + ii � i +1

HASTA i > nESCRIBE “La suma de los primeros”, nESCRIBE “numeros positivos es = “, s

FIN

ESTRUCTURA REPETITIVA PARA

�Se usa cuando se conoce el número exacto de veces que hay que ejecutar el bucle.�El bucle lleva asociado una variable, llamada índice, a la que se le asigna un valor inicial y un valor final. Este índice se va a incrementar o decrementar en cada iteración de bucle en un valor constante

PARA var ← inicio HASTA fin HACERsentencias

FIN PARA

PARA var ← inicio HASTA fin INCREMENTO valor HACERsentencias

FIN PARA

PARA var ← inicio HASTA fin DECREMENTO valor HACER

sentenciasFIN PARA

ESTRUCTURA REPETITIVA PARAEquivalencia con la estructura MIENTRAS

PARA var ← inicio HASTA fin HACER

sentencias

FIN PARA

var ← inicio

MIENTRAS var <= fin HACER

sentencias

var ← var + 1

FIN MIENTRAS

EJEMPLO DE ESTRUCTURA REPETITIVA PARA(Solución problema 12)

ALGORITMO Problema12

VARIABLES

i, n SON ENTEROS

s ES REAL

INICIO

LEER n

s ← 0.0

PARA i ← 1 HASTA n HACER

s ← s + i

FIN PARA

ESCRIBE “La suma de los primeros”, n

ESCRIBE “numeros positivos es = “, s

FIN

Dpto. de ATC - Página 14 de 16

BÚSQUEDA SECUENCIAL EN UN VECTOR

� Problema 13Escriba un algoritmo que lea un número real del teclado y busquedicho número en un vector de N números reales, donde N es una constante a la que le daremos un valor cualquiera. Si se encuentra el número, se debe escribir por pantalla el índice del elemento que lo contiene.

� Supongamos que: � Que el algoritmo no necesita leer el contenido del vector.� Ningún elemento del vector se repite.

BÚSQUEDA SECUENCIAL EN UN VECTOR (solución 1)

ALGOTIRMO búsqueda secuencialCONSTANTES

n VALE 100VARIABLES

a ES VECTOR DE REALES (INDICES 1 A n)p ES ENTEROvalor ES REAL

INICIOLEE valorPARA p ← 1 HASTA n HACER

SI a[p] = valor ENTONCESESCRIBE “El valor se ha encontrado en la posición”, p

FINSIFIN PARA

FIN

BÚSQUEDA SECUENCIAL EN UN VECTOR (solución 2)

ALGOTIRMO búsqueda secuencialCONSTANTES

n VALE 100VARIABLES

a ES VECTOR DE REALES (INDICES 1 A n)p ES ENTEROvalor ES REAL

INICIOLEE valorp ← 0REPETIR

p ← p+1HASTA p=n 0 a[p]=valorSI a[p] = valor ENTONCES

ESCRIBE “El valor se ha encontrado en la posición”, pFINSI

FIN

BÚSQUEDA SECUENCIAL EN UN VECTOR (solución 3)

ALGOTIRMO búsqueda secuencialCONSTANTES

n VALE 100VARIABLES

a ES VECTOR DE REALES (INDICES 1 A n)p ES ENTEROvalor ES REALencontrado ES BOOLEANO

INICIOLEE valorp ← 1encontrado ← FALSOMIENTRAS p<=n Y NO encontrado HACER

SI a[p] = valor ENTONCESencontrado ← VERDADEROESCRIBE “El valor se ha encontrado en la posición”, p

FINSIp ← p+1

FIN MIENTRASFIN

Dpto. de ATC - Página 15 de 16

Búsqueda del máximo elemento de un vector

� Problema 14Escriba un algoritmo que busque el valor máximo de los elementosde un vector de N números reales, donde N es una constante a la que le daremos un valor cualquiera. El algoritmo debe escribir por pantalla el valor máximo.

� Supongamos que: � Que el algoritmo no necesita leer el contenido del vector.

Búsqueda del máximo elemento de un vector (solución)

ALGOTIRMO búsqueda del máximoCONSTANTES

n VALE 100VARIABLES

a ES VECTOR DE REALES (INDICES 1 A n)i ES ENTEROmax ES REAL

INICIOLEE valormax ← a[1]PARA i ← 2 HASTA n HACER

SI a[i] > max ENTONCESmax ← a[i]

FINSIFIN PARAESCRIBE “El valor máximo es”, max

FIN

Búsqueda del mínimo elemento de un vector

� Problema 15Escriba un algoritmo que busque el valor mínimo de los elementos de un vector de N números reales, donde N es una constante a la que le daremos un valor cualquiera. El algoritmo debe escribir por pantalla el valor mínimo y el índice del elemento que lo contiene.

� Supongamos que: � Que el algoritmo no necesita leer el contenido del vector.

Búsqueda del mínimo elemento de un vector (Solución 1)

ALGOTIRMO búsqueda del mínimo solución 1CONSTANTES

n VALE 100VARIABLES

a ES VECTOR DE REALES (INDICES 1 A n)i, imin ES ENTEROmin ES REAL

INICIOLEE valormin ← a[1]imin ← 1PARA i ← 2 HASTA n HACER

SI a[i] < min ENTONCESmin ← a[i]imin ← i

FINSIFIN PARA ESCRIBE “El valor mínimo es”, min, “ y se encuentra en la posición “, imin

FIN

Dpto. de ATC - Página 16 de 16

Búsqueda del mínimo elemento de un vector (Solución 2)

ALGOTIRMO búsqueda del mínimo solución 2CONSTANTES

n VALE 100VARIABLES

a ES VECTOR DE REALES (INDICES 1 A n)i, imin ES ENTERO

INICIOLEE valorimin ← 1PARA i ← 2 HASTA n HACER

SI a[i] < a[imin] ENTONCESimin ← i

FINSIFIN PARA ESCRIBE “El valor mínimo es”, a[imin], “ y se encuentra en la posición “, imin

FIN

Escriba un algoritmo en pseudo código que calcule el aumento de sueldo para un grupo de empleados de una empresa, teniendo en cuenta el siguiente criterio:

Si el sueldo es inferior a 1000 euros: Aumento 15% Si el sueldo es mayor o igual a 1000 euros: Aumento 12%

Imprima el nombre del trabajador, su sueldo sin aumento, su sueldo nuevo con aumento y el total de la nómina de la empresa, considerando este nuevo aumento.

Supongamos que la empresa tiene 100 empleados.

PROBLEMA 16

SOLUCION PROBLEMA 13

1. ALGORITMO problema162. CONSTANTES3. num_emp ES 1004. VARIABLES5. i, aux, aumento, total_nomina SON ENTEROS6. sueldo, nombre SON VECTORES DE ENTEROS (INDICES 1 A num_emp)7. INICIO8. total_nomina ← 09. PARA i ←1 HASTA num_emp HACER10. ESCRIBE “El nombre del empleado es: “, nombre[i]11. ESCRIBE “El sueldo del empleado es: “, sueldo[i]12. SI sueldo[i] < 1000 ENTONCES13. aumento ← 1514. SINO15. aumento ← 1216. FINSI17. sueldo[i] ← sueldo[i] + (sueldo[i] * aumento) / 10018. total_nomina ← total_nomina + sueldo[i]19. ESCRIBE “Su nuevo sueldo es: “, sueldo[i]20. FIN PARA21. ESCRIBE “El total de nomina de la empresa es: “, total_nomina22. FIN