Está en la página 1de 26

Por: Yony Raúl CHAMBILLA PARI

Copyright
All rights reserved text
Algoritmo y Estructura de Datos
ALGORITMO Definido: para los mismos datos de
entrada obtienen los mismos de salida.
Un algoritmo es una secuencia precisa
de operaciones (pasos) que resuelven un Preciso: debe indicarse el orden de
problema en un tiempo finito. En realización de cada paso
matemáticas, lógica, ciencias de la
computación y disciplinas relacionadas,
Independiente del lenguaje de
un algoritmo (del griego y latín, dixit
programación.
algorithmus y este a su vez del
matemático persa Al-Juarismi), es un
PROPIEDADES DE LOS
conjunto prescrito de instrucciones o
ALGORITMOS
reglas bien definidas, ordenadas y
finitas que permite realizar una
➢ Siempre debe terminar.
actividad mediante pasos sucesivos que
➢ Debe contener instrucciones
no generen dudas a quien deba realizar
concretas, sin ninguna ambigüedad.
dicha actividad. Dados un estado inicial
➢ Todos sus pasos deben ser simples
y una entrada, siguiendo los pasos
y tener un orden definido.
sucesivos se llega a un estado final y se
➢ Debe funcionar, sean cuales sean
obtiene una solución. Los algoritmos
los datos de entrada.
son el objeto de estudio de la algoritmia.
➢ Debe ser eficiente y rápido,
Los algoritmos son independientes del
entonces hay que Optimizar para un
lenguaje de programación y del
problema existen múltiples
ordenador que los ejecuta. Se pueden
➢ soluciones, y debemos escoger
expresar en multitud de lenguajes y
aquella que consuma menos tiempo
ejecutarse en ordenadores distintos.
y recursos.
➢ Es independiente de la máquina y
SUS CARACTERÍSTICAS SON:
del lenguaje de programación que
Finito: debe tener un número finito de se vaya a utilizar. Un algoritmo
pasos, por lo que debe estar limitado puede implementarse (Imprimirse)
tanto en tiempo de realización como por en cualquier lenguaje de
el número de pasos que realiza. programación.

Yony Raúl CHAMBILLA PARI Pág. 1


Algoritmo y Estructura de Datos
¿Qué es un programa? Lenguaje de Bajo Nivel
(Ensamblador): En este lenguaje las
Un programa es la expresión instrucciones se escriben en códigos
(transcripción) de un algoritmo en un alfabéticos conocidos como
lenguaje de programación, capaz de ser mnemotécnicos para las operaciones y
procesado por un ordenador tras su direcciones simbólicas.
compilación y linkado y que controla el
funcionamiento de un ordenador a la Lenguaje de Alto Nivel: Los lenguajes
hora de resolver un problema. de programación de alto nivel (BASIC,
pascal, cobol, fortran, Visual B, C, y
LENGUAJE DE otros) son aquellos en los que las
PROGRAMACION instrucciones o sentencias a la
computadora son escritas con palabras
Conjunto de reglas, símbolos y palabras similares a los lenguajes humanos (en
especiales utilizadas para construir un general en inglés), lo que facilita la
programa. escritura y comprensión del programa.

LOS LENGUAJES DE COMPILADOR:


PROGRAMACIÓN SE
CLASIFICAN EN: Programa que traduce un programa
escrito en lenguaje de alto nivel a
Lenguaje Maquina: Son aquellos lenguaje de máquina.
cuyas instrucciones son directamente
entendibles por la computadora y no
necesitan traducción posterior para que
la CPU (Unidad Central de Proceso)
Lenguaje
pueda comprender y ejecutar el Algoritmo
de
programa
programa
ción
programa. Las instrucciones, en
lenguaje maquina se expresan en
términos de la unidad de memoria más
pequeña el bit (dígito binario 0 o 1).

Yony Raúl CHAMBILLA PARI Pág. 2


Algoritmo y Estructura de Datos
ELABORACIÓN DE UN Etapa de Pruebas: No basta que el
PROGRAMA. programa esté terminado, hay que
comprobar que el programa NO falla y

El proceso de elaboración de un funciona perfectamente en todos los

programa, conlleva varias etapas: casos posibles que se puedan presentar.

Análisis
Etapa de Documentación y
Diseño Mantenimiento: Se elabora la
Codificación
documentación del programa, y se
Pruebas
realizan las actualizaciones oportunas
que se vayan necesitando.
Mantenimiento

Observación: Todas estas etapas hay


que realizarlas con sumo cuidado,

Etapa de Análisis: decidir qué es lo puesto que un error en una de ellas,

que tenemos que hacer. puede conllevar la vuelta atrás en todo


el proceso.

Etapa de Diseño (desarrollo de la


solución): se define cómo vamos a CONSTANTES Y VARIABLES:

hacerlo. Obtención del Algoritmo. Se IDENTIFICADOR

utilizará el Diseño Descendente o TOP-


DOWN: Un problema complejo se Como en el álgebra, a cada dato o

resuelve dividiendo el problema en elemento, ya sea constante o variable,

subproblemas, y así sucesivamente se le bautiza con un nombre o

hasta que la resolución de cada identificador; el cual, si se ha elegido

subproblema sea fácilmente adecuadamente, ayuda mucho a la

programable. persona que lea el programa.

Etapa de Codificación: CONSTANTES


Implementación del Algoritmo en el
lenguaje de programación más Como su nombre lo indica, son datos
adecuado para la obtención del que no varían durante la ejecución de un
Programa. programa.
Yony Raúl CHAMBILLA PARI Pág. 3
Algoritmo y Estructura de Datos
VARIABLES ➢ Representación de los datos.
Escoger los tipos de datos a usar.
Son datos que cambian o evolucionan
➢ Diseño de un algoritmo.
durante la vida o ejecución de un
➢ Comprobación y optimización de
programa.
algoritmos. Debemos asegurarnos
OPERADORES
que el algoritmo realiza la tarea
+ • Suma correctamente.
- • Resta ➢ Codificación del programa.
* • Multiplicación Debemos transcribir el algoritmo a
/ • División un lenguaje de programación

DIV • División entera concreto para que pueda ser

MOD • Resto de la división entera utilizado.


➢ Depuración del programa. El
programa debe estar libre de
OPERADORES RELACIONALES errores.
= • Igual ➢ Documentación del programa.
<> • Distinto
< • Menor
REPRESENTACIÓN DE
> • Mayor
ALGORITMOS
<= o =< • Menor igual que
>= o => • Mayor igual que
OR • O lógico Para representar los algoritmos existen
AND • Y lógico dos métodos principales:
NOT • No o negación

Diagrama de
flujo
PROCESO DE CREACIÓN DE UN
Diseño
PROGRAMA Diagrama N-S
Lenguaje
natural humano
➢ Planteamiento del problema a Pseudocódigo
Formulas
resolver. Antes de nada, debemos
conocer perfectamente el problema
y los resultados a obtener. Lenguajes de
programación

Yony Raúl CHAMBILLA PARI Pág. 4


Algoritmo y Estructura de Datos
Mientras que el pseudocódigo permite Estructura secuencial: consiste en
enunciar el algoritmo, los diagramas de colocar una instrucción tras otra, de
flujo (organigramas) permiten manera que se van ejecutando de arriba
visualizarlo de forma gráfica. abajo.

EL PSEUDOCÓDIGO. Estructura selectiva o condicional (si,


sino): permiten ejecutar un conjunto de
El pseudocódigo es la representación instrucciones u otras en función de si se
narrativa (no hay reglas sintácticas cumple o no una condición.
estrictas) de un algoritmo, escrita en
lenguaje natural utilizando las Estructura iterativa o de repetición
estructuras de control típicas de algún (mientras, repetir, para): permite
Lenguaje de Programación y algunos repetir una instrucción o grupo de ellas
símbolos algebraicos. un nº fijo de veces o mientras (o hasta
que) una condición sea cierta.
La utilización de pseudocódigo
presenta las ventajas de ser más ESTRUCTURA SECUENCIAL
compacto que un organigrama, ser más
fácil de Imprimir y ser más fácil de Ejemplo: Pseudocódigo de un
transcribir a un lenguaje de algoritmo que calcule la media de tres
programación. números:

Las estructuras de control deciden qué


camino hay que seguir en función de
una condición. Son las siguientes:
Inicio:
Leer (n1);
Leer (n2);
Estructura Estructura
secuencial repetitiva Leer (n3);
Media ← (n1+n2+n3)/3;
Imprimir (Media);
Estructura
condicional Fin.

Yony Raúl CHAMBILLA PARI Pág. 5


Algoritmo y Estructura de Datos
Observación: El orden en el que se queremos hacer nada en caso que la
realizan las operaciones es importante: condición sea falsa).
no puede calcularse la media sin antes
Ejemplo: Pseudocódigo de un
haber leído los números.
algoritmo que calcula el promedio de
tres notas del sistema vigesimal e
ESTRUCTURA SELECTIVA O
imprime el promedio y la condición:
CONDICIONAL
aprobado y desaprobado, de un
estudiante.
El formato de esta estructura es el
siguiente:

Inicio:
Leer (nota1);
Inicio: Leer (nota2);
Si <Se cumple la condición>; Leer (nota3);
Inicio Promedio ← (nota1+nota2+nota3)/3;
<Conjunto de acciones>; Imprimir (Promedio);
Fin Si (Promedio>=10.5);
Sino <No cumple la condición>; Imprimir (“Aprobado”);
Inicio Sino
<Conjunto de acciones>; Imprimir (“Desaprobado”);
Fin Fin.
Fin.

ESTRUCTURA ITERATIVA O DE
Observación: primero se examina la
REPETICIÓN
condición: si resulta verdadera, se
ejecutan las acciones asociadas al SI, en
Esta estructura presenta una serie de
caso contrario se ejecutan las acciones
variantes que permiten:
asociadas al si no.
Estructura mientras: Esta estructura
permite repetir un conjunto de
La instrucción SI NO, no es obligatoria
instrucciones 0 o más veces, ya que la
en una estructura condicional (si no
condición se verifica antes de entrar en
el bucle.
Yony Raúl CHAMBILLA PARI Pág. 6
Algoritmo y Estructura de Datos
El formato de esta estructura es el ESTRUCTURA PARA
siguiente:
Permite realizar una acción un número
Mientras (Se cumpla la condición) determinado de veces.
Inicio El formato de esta estructura es el
<Conjunto de acciones>; siguiente:
Fin.

Es decir, primero se examina la Para <variable> de <inicio> a <fin>


condición: si resulta falsa, se pasa Inicio
directamente a la instrucción que haya <Conjunto de acciones>;
tras el fin, de manera que nos saltamos Fin.
todas las instrucciones que haya dentro
del bucle.
En cada iteración del bucle variable va
ESTRUCTURA REPETIR – tomando distintos valores
MIENTRAS comprendidos entre inicio y fin. En la
primera iteración toma el valor inicio,
Esta estructura evalúa la condición una en la segunda inicio+1, y así
vez realizada la acción. Por tanto, las sucesivamente hasta el valor fin.
instrucciones que están dentro se
ejecutan al menos una vez. DIAGRAMAS DE FLUJO
(ORGANIGRAMA)
El formato de esta estructura es el
siguiente: Es una representación gráfica de un
algoritmo mediante una serie de
Repetir símbolos, que contienen en su interior
Inicio los pasos del algoritmo, y unas flechas
<Conjunto de acciones>; que los unen indicando la secuencia
Fin. (orden) en la que se deben ejecutar. Los
Mientras (Se cumpla la condición) símbolos representan acciones y las
flechas el flujo del algoritmo.

Yony Raúl CHAMBILLA PARI Pág. 7


Algoritmo y Estructura de Datos
La descripción de las funciones se Principio y fin: Dentro del símbolo ira
puede realizar de forma narrativa, la palabra inicio o fin del algoritmo.
usando un lenguaje natural (conviene
que sea parecido al pseudocódigo).

Símbolo de proceso: Indica la acción


que tiene que realizar la computadora.
Subprograma: Dentro se coloca el
Dentro escribimos la acción.
nombre del subprograma al que se
llama.

Representa las acciones de entrada y


salida: Dentro colocaremos las
Conectores: Nos sirven cuando un
acciones de lectura y escritura.
flujograma no me cabe en una columna
de la hoja y hay que seguir en otra
columna:

Condición: Dentro se va a colocar una


condición. Sirve para representar
estructuras selectivas y repetitivas y lo
Si es en la misma hoja:
que se hace al encontrar ese signo es
evaluar la condición que hay dentro tal
que según la condición sea verdadera o
falsa iremos por caminos distintos.

Si es en hoja distinta:

Yony Raúl CHAMBILLA PARI Pág. 8


Algoritmo y Estructura de Datos
Pantalla: Cuando una salida es por Inicio
pantalla. Leer numero1;
Leer numero2;
Si (numero1==numero2) Entonces;
Imprimir (“Los números son iguales”);
Si no
Si (numero1>numero2) Entonces;
Imprimir (“Numero1es el mayor”);
EJERCICIOS DE APLICACIÓN
Sino
Imprimir (“Numero2 es el mayor”);
1. Pseudocódigo de un algoritmo que
Fin Si
lee dos números, calcula y escribe el
Fin Si
valor de su suma, resta, producto y
Fin
división.

3. Algoritmo que lea tres números


Inicio:
distintos y nos diga cuál de ellos es el
Leer (número1);
mayor (recuerda usar la estructura
Leer (número2);
condicional Si y los operadores
Suma ← número1+ número2;
lógicos).
Resta ← número1 - número2;
Producto ← número1* número2;
Inicio
División ← número1 / número2;
Leer numero1;
Imprimir (Suma);
Leer numero2;
Imprimir (Resta);
Leer numero3;
Imprimir (Producto);
Si (numero1>numero2 AND
Imprimir (División);
numero1>numero3) Entonces
Fin.
Imprimir ("el número1 es el mayor";
Sino
2. Algoritmo que lea dos números y nos
Si (numero2>numero1 AND
diga cuál de ellos es mayor o bien si son
numero2>numero3) Entonces
iguales (recuerda usar la estructura
Imprimir ("el número2 es el mayor";
condicional SI)
Sino

Yony Raúl CHAMBILLA PARI Pág. 9


Algoritmo y Estructura de Datos
Imprimir ("el número3 es el mayor"; Inicio
Fin Si Leer numero;
Fin Si Si (numero=0) Entonces
Fin Imprimir "El " numero " no es par ni
impar"
4. Un colegio desea saber qué Sino
porcentaje de niños y qué porcentaje de Si (numero MOD 2=0) Entonces
niñas hay en el curso actual. Diseñar un Imprimir "El " numero " es par"
algoritmo para este propósito (recuerda Sino
que para calcular el porcentaje puedes Imprimir "El " numero " no es par"
hacer una regla de 3). Fin Si
Fin Si
Inicio Fin
Leer numero_niños;
Leer numero_niñas; 6. Una tienda ofrece un descuento del
porcentaje_niños←numero_niños*100 15% sobre el total de la compra durante
/(numero_niños+numero_niñas); el mes de octubre. Dado un mes y un
porcentaje_niñas←100- importe, calcular cuál es la cantidad que
porcentaje_niños; se debe cobrar al cliente.
Imprimir "Hay un " porcentaje_niños "
% de niños;
Imprimir "Hay un " porcentaje_niñas " Inicio
% de niñas; Leer importe;
Fin Leer mes;
Si (mes="octubre") Entonces
5. Realizar un algoritmo que, dado un total←importe*0.85;
número entero, visualice en pantalla si Sino
es par o impar. En el caso de ser 0, debe total←importe;
visualizar “el número no es par ni FinSi
impar” (para que un número sea par, se Imprimir total;
debe dividir entre dos y que su resto sea Fin
0).

Yony Raúl CHAMBILLA PARI Pág. 10


Algoritmo y Estructura de Datos
7. Desarrollar un algoritmo que nos Inicio
calcule el cuadrado de los 9 primeros Desde num←1 Hasta 100 In 1
números naturales (recuerda la Si (num MOD 2=0 OR num MOD 3=0)
estructura desde-hasta). Entonces
Imprimir num;
Inicio FinSi
Desde num←1 Hasta 9 In 1 FinDesde
Res←num^2; Fin
Imprimir num " " res;
FinDesde
Fin 10. Diseñar un algoritmo para calcular
las calificaciones de un grupo de
8. Se pide representar el algoritmo que estudiantes. La nota final de cada
nos calcule la suma de los N primeros estudiante se calcula según el siguiente
números naturales. N se leerá por criterio: la parte práctica vale el 10%; la
teclado (no tenemos por qué llamar a la parte de problemas vale el 50% y la
variable N, podemos llamarla como parte teórica el 40%. El algoritmo leerá
queramos). el nombre del estudiante, las tres notas,
Imprimirá el resultado y volverá a pedir
Inicio los datos del siguiente estudiante hasta
Leer N; que el nombre sea una cadena vacía.
suma←0; Las notas deben estar entre 0 y 10, si no
Desde contador←1 Hasta 5 In 1 lo están, no imprimirá las notas,
suma←N+suma; mostrará un mensaje de error y volverá
N←N+1; a pedir otro estudiante.
FinDesde
Imprimir suma;
Fin

9. Algoritmo que visualice la cuenta de


los números que son múltiplos de 2 o de
3 que hay entre 1 y 100.
Yony Raúl CHAMBILLA PARI Pág. 11
Algoritmo y Estructura de Datos

EL LENGUAJE C.
Inicio
Leer estudiante; Es un lenguaje de nivel medio: combina
Mientras estudiante<>”” Hacer elementos de lenguajes de alto nivel con
Leer nota_practica;
la funcionalidad del ensamblador.
Leer nota_problemas;
Permite hacer cosas que otros lenguajes
Leer nota_teoria;
de alto nivel no pueden hacer
Si (nota_practica<=10 AND
nota_practica>=0)
(manipulación de bits, bytes,
AND (nota_problemas<=10 AND direcciones) y es tan fácil de usar como
nota_problemas>=0) cualquier otro lenguaje de alto nivel.
AND (nota_teoria<=10 AND Es particularmente adecuado para la
nota_teoria>=0) Entonces programación de sistemas.
Imprimir “El estudiante “ estudiante;
Es muy portable, es decir, es posible
Imprimir “La nota practica es “
adaptar el software escrito para un tipo
nota_practica;
de ordenador en otro.
Imprimir “La nota de problemas es “
nota_problemas;
Imprimir “La nota de 12eoría es “ OPERADORES EN C
nota_teoria;
nota_practica←nota_practica*0.1; Los programas en C++ constan de
nota_problemas←nota_problemas*0.5; datos, sentencias de programas y
nota_teoria←nota_teoria*0.4;
expresiones.
nota_final←nota_practica+nota_problema
La mayoría de los programas en C++
s+nota_teoria;
realizan operaciones básicas, a través de
Imprimir “La nota final es “ nota_final;
Sino
un conjunto potente de operadores, que
Imprimir “Has escrito una nota incorrecta, usándolos correctamente aumenta la
vuelve a intentarlo”; expresividad y eficiencia del lenguaje.
FinSi Operador de Asignación
Imprimir “Introduce el nombre de otro El operador = asigna el valor de la
estudiante”;
expresión derecha a la variable situada
Leer estudiante;
a su izquierda.
FinMientras
Sintaxis:
Fin

Yony Raúl CHAMBILLA PARI Pág. 12


Algoritmo y Estructura de Datos
Variable = valor; donde valor puede ser Los operadores +, - y * funcionan de la
una constante, una variable o una manera conocida.
expresión.
El operador / funciona de diferente
En C++ es válido usar el siguiente manera si trabaja con datos de tipo
operador de asignación: entero o de tipo flotante.

a = b = 7; Con datos de tipo flotante, funciona de


la manera tradicional; pero al realizarse
El cual se evalúa de izquierda a derecha. una división entre dos números enteros,
Ejemplo: el operador / regresa el cociente de la
división entera; es decir, regresa la parte
x = 125; entera del resultado (si hay fracción la
Promedio = 75.8; elimina).
Opción = ‘s’; Por ejemplo:
2/3 da como resultado 0
Pero
OPERADORES ARITMÉTICOS 2.0/3.0 da como resultado 0.66666
OPERADOR EN C++ Si hay operandos de diferentes tipos de
SIGNIFICADO datos, se convierten al tipo de datos más
amplio y el tipo del valor resultante es
del tipo más amplio. Por ejemplo, si hay
enteros y flotantes, todos los números se
+ •Suma
convierten a flotantes y el resultado se
- •Resta
calcula como flotante.
* •Multiplicación Por ejemplo:
/ •División 4/3.0 da como resultado 1.33333

% •Residuo El operador % calcula el residuo de la


división entera y sólo existe para datos
de tipo entero.
Todos los operadores que se muestran Por ejemplo:
en esta tabla son binarios; es decir, 10%3 da como resultado 1.
trabajan con dos operandos.
Yony Raúl CHAMBILLA PARI Pág. 13
Algoritmo y Estructura de Datos
OTROS OPERADORES DE nombre de la variable y funcionan de
ASIGNACIÓN diferente manera:
Si se ponen antes, primero se realiza la
En C++ es posible abreviar algunas operación (incremento o decremento) y
expresiones de asignación como se luego se utiliza el valor de la variable en
muestra en la siguiente tabla: la expresión en la que se encuentre.
Si se pone después, primero se utiliza el

Operador
Expresión valor de la variable en la expresión y
equivalente
a+=b a=a+b luego se lleva a cabo la operación

a-=b a=a–b (incremento o decremento).

a*=b a=a*b
Por ejemplo:
a/=b a=a/b
Supón que a = 10 y c = 4
a%=b a=a%b
La operación v = a * c++; v toma el
valor de 40 y c queda con el valor de 5.
OTROS OPERADORES
La operación v = a * ++c; v toma el
ARITMÉTICOS
valor de 50 y c queda con el valor de 5.

En C++ existen también los siguientes


JERARQUÍA DE LOS
operadores aritméticos:
OPERADORES ARITMÉTICOS.
++ Incremento
-- Decremento Prioridad Operadores Asociatividad

Empezando por
1 () los paréntesis
Es decir: más internos
x++ ó ++x es equivalente a x = x+1 De derecha a
++, --,
izquierda, ++ y
2 +(positivo),
x- - ó - -x es equivalente a x = x - 1 -- dependiendo
- (negativo)
de la posición
De izquierda a
3 *,/,%
derecha
Estos operadores son unitarios, es decir,
trabajan con un solo operando y 4 +,-
De izquierda a
derecha.
solamente se pueden utilizar con
=,+=,-=,*=, De izquierda a
variables de tipo entero. Los operadores 5
/=,%= derecha.
se pueden utilizar antes o después del

Yony Raúl CHAMBILLA PARI Pág. 14


Algoritmo y Estructura de Datos
OPERADORES DE FUNCIONES MATEMÁTICAS
RELACIONALES
C++ contiene una serie de funciones
Los operadores relacionales se utilizan matemáticas que puedes utilizar en tus
para comprobar una condición. Los programas, algunas de las funciones
operadores relacionales que tiene C++ matemáticas disponibles son:
son:
➢ Matemáticas.

Operador C++ Significado ➢ Trigonométricas.


➢ Logarítmicas.
== Igual
➢ Exponenciales.
!= Diferente
! Not
Algunas de las funciones matemáticas
> Mayor que usuales en la biblioteca estándar son:
Menor o igual
<=
que
Mayor o igual ➢ abs(x) obtiene el valor absoluto de
>=
que
x, x debe ser entero.
➢ sqrt(x) obtiene la raíz cuadrada de
OPERADORES LÓGICOS
x, x debe ser positivo.
➢ pow(x,y) calcula x elevado a la
Se utilizan con expresiones para
potencia y, pueden ser enteros o
devolver un valor verdadero (cualquier
flotantes.
entero diferente de cero) o un valor
➢ ceil(x) redondea al entero más
falso (cero).
cercano.
Los operadores lógicos que maneja
➢ floor(x) redondea por defecto al
C++ son:
entero más próximo.

Operador C++ Significado


C++ incluye una serie de funciones que
|| Or sirven para realizar cálculos
trigonométricos, algunas de estas
&& And
funciones son:
! Not

Yony Raúl CHAMBILLA PARI Pág. 15


Algoritmo y Estructura de Datos
➢ cos(x) calcula el coseno del ángulo En esta expresión, el símbolo más (+) es
x (x se expresa en radianes). el operador de suma, y los números 3 y
➢ sin(x) calcula el seno del ángulo x 5 se llaman operandos.
(x se expresa en radianes).
➢ tan(x) devuelve la tangente del En síntesis, una expresión es una
ángulo x (x se expresa en radianes). secuencia de operaciones y operandos
➢ atan(x) calcula el arco tangente del que especifica un cálculo.
argumento x.
Una expresión es un elemento de un
Las funciones logarítmicas y programa que toma un valor, en algunos
exponenciales suelen ser utilizadas con casos puede también realizar una
frecuencia no sólo en matemáticas, sino operación.
también en el mundo de las empresas y
los negocios. Algunas de estas Las expresiones pueden ser valores
funciones son: constantes o variables simples, tales
➢ log(x) calcula el logaritmo natural como 25 o ‘z’; pueden ser valores o
del argumento x. variables combinadas con operadores; o
➢ log10(x) calcula el logaritmo bien pueden ser valores combinados
decimal del argumento x. con funciones como toupper (‘b’), el
➢ exp(x) calcula el exponencial ex, cual convierte el argumento ‘b’ a
donde e es la base de logaritmos mayúscula.
naturales de valor 2.718282.
Por ejemplo:
El uso de las funciones vistas Expresión para saber si un número es
anteriormente requiere de la librería par:
<math.h> (num % 2 == 0)
Expresión para saber si un número A
CONSTRUCCIÓN DE está en el rango 5 a 300 incluyendo los
EXPRESIONES extremos:
(num >= 5) && (num <= 300)
Una expresión es, normalmente, una
ecuación matemática, tal como 3 + 5.

Yony Raúl CHAMBILLA PARI Pág. 16


Algoritmo y Estructura de Datos
EJERCICIOS DE PROPUESTOS
7. Diseñar un programa (CIEN
1. Diseñar un programa PRIMEROS NUMEROS IMPARES)
(CALCULADORA) que lea dos que muestre los primeros números
números enteros y calcule la suma, impares entre 0 y 100.
multiplicación y división; y que
muestre el resultado de las operaciones. 8. Diseñar un programa (SUMA DE
CIEN PRIMEROS NUMEROS) que
2. Diseñar un programa muestre la suma de los 100 primeros
(PORCENTAJE) que muestre el 15% números.
de un valor ingresado por teclado.
Solución: 9. Diseñar un programa (CANTIDAD
DE CIEN PRIMEROS NUMEROS
3. Diseñar un programa (SALARIO) IMPARES) que muestre los números
que muestre el nuevo salario de un impares hasta el 100 y que imprima
obrero si obtuvo un incremento del 25% cuantos impares hay.
sobre su salario anterior.
10. Diseñar un programa (N
4. Diseñar un programa (CIEN PRIMEROS NÚMEROS) que muestre
PRIMEROS NÚMEROS) que muestre todos los números naturales que hay
los números del 1 al 100. desde la unidad hasta un número que
introducimos por teclado.
5. Diseñar un programa (CIEN
PRIMEROS NUMEROS EN ORDEN 11. Diseñar un programa (NÚMERO
DECRECIENTE) que muestre los POSITIVO, NEGATIVO O NEUTRO)
números del 100 al 0, en orden que muestre si un número ingresado por
decreciente. teclado es positivo, negativo o neutro.

6. Diseñar un programa (CIEN 12. Diseñar un programa (NÚMERO


PRIMEROS NUMEROS PARES) que PAR O IMPAR) que muestre si un
muestre los primeros números pares número ingresado por teclado es par o
entre 0 y 100. impar.

Yony Raúl CHAMBILLA PARI Pág. 17


Algoritmo y Estructura de Datos
13. Diseñar un programa (RAÍZ pedirlo (tantas veces como sea
CUADRDA DE UN NÚMERO necesario).
ENTERO POSITIVO) que muestre la 18. Diseñar un programa (IMPRIME
raíz cuadrada de un número entero 14 VECES UN TEXTO) que muestre
positivo. 14 veces “UNAMAD”.

14. Diseñar un programa (TEOREMA 19. Diseñar un programa (IMPRIME


DE PITÁGORAS) que muestre la 14 VECES UN TEXTO) que muestre
hipotenusa de un triángulo rectángulo 14 veces “UNAMAD”.
después de haber ingresado los catetos
de dicho triángulo. 20. Diseñar un programa (SUMA DE 5
NÚMEROS INGRESADOS DESDE
15. Diseñar un programa EL TECLADO) que pida al usuario 5
(PROGRAMA PARA CALCULAR datos y muestre su suma.
LOS VARIABLES DE UNA
ECUACIÓN LINEAL CON DOS 21. Diseñar un programa (MENOR DE
VARIABLES) que muestre el valor de DOS NÚMEROS) que permita leer dos
las variables de una ecuación lineal con valores, determinar cuál de los dos
dos variables. valores es el menor y mostrarlo.

16. Diseñar un programa 22. Diseñar un programa (MAYOR Y


(PROGRAMA PARA CALCULAR MENOR DE TRES NÚMEROS) que
ÁREA DE UN TERRENO permita leer tres valores, determinar
RECTANGULAR) que muestre el cuál es el mayor y el menor y mostrarlo.
valor del área de un terreno rectangular.
23. Diseñar un programa (MAYOR Y
17. Diseñar un programa (RAÍZ MENOR DE TRES NÚMEROS) que
CUADRADA DE UN NÚMERO) que permita leer tres valores, determinar
muestre la raíz cuadrada del número cuál es el mayor y el menor y mostrarlo.
que se introduzca desde el teclado. Si se
introduce un número negativo, debe 24. Diseñar un programa (ÁREA Y
mostrar un mensaje de error y volver a PERÍMETRO DE UN TRIÁNGULO

Yony Raúl CHAMBILLA PARI Pág. 18


Algoritmo y Estructura de Datos
EQUILATERO) que muestre el área y EL PAGO A REALIZAR) que
perímetro de un triángulo equilátero determine el pago a realizar por la
ingresando desde el teclado el valor de entrada a un espectáculo donde se
su lado. pueden comprar sólo hasta cuatro
entradas, donde al costo de dos entradas
25. Diseñar un programa (ÁREA Y se les descuenta el 10%, al de tres
VOLUMEN DE UN CUBO) que entradas el 15% y a la compra de cuatro
muestre el área y volumen de un cubo tickets se le descuenta el 20 %.
ingresando desde el teclado el valor de Solución:
su lado.
30. Diseñar un programa
(PROGRAMA PARA CONVERTIR
26. Diseñar un programa (ÁREA Y
DE km/h A m/s) que, a partir de
VOLUMEN DE UN CILINDRO) que
proporcionarle la velocidad de un
muestre el área y volumen de un
automóvil, expresada en kilómetros por
cilindro ingresando desde el teclado el
hora, proporcione la velocidad en
valor de radio base y altura del cilindro.
metros por segundo.

27. Diseñar un programa


31. Diseñar un programa
(PROGRAMA PARA ORDENAR DE
(PROGRAMA PARA CONVERTIR
MENOR A MAYOR DE DOS
DE m/s A km/h) que lea la velocidad en
NÚMEROS) que permita leer dos
metros por segundo y la convierta a
números y ordenarlos de menor a
kilómetros por hora.
mayor, si es el caso.

32. Diseñar un programa


28. Diseñar un programa
(PROGRAMA PAGO DEL
(PROGRAMA PARA DETERMINAR
PERSONAL) para la empresa
NÚMEROS PRIMOS) que permita leer
Constructora J&R. S.A.C., que le
un valor entero positivo N y determinar
permita calcular e imprimir la nómina
si es primo o no.
para su cancelación a un total de 50
obreros calificados a quienes debe
29. Diseñar un programa
cancelar por horas trabajadas. Por hora
(PROGRAMA PARA DETERMINAR
trabajada la empresa paga S/. 50.00.

Yony Raúl CHAMBILLA PARI Pág. 19


Algoritmo y Estructura de Datos
33. Diseñar un programa EL DESCUENTO), dado el monto de
(PROGRAMA MENOR DE 5 una compra calcular el descuento
NOTAS) que muestre 2 bajas notas considerado: Descuento es 20% si el
después de haber ingresado 5 notas de monto es mayor a 100 soles. Descuento
un estudiante. es 10% si el monto es mayor a 50 soles
y menor o igual a 100 soles-no hay
34. Diseñar un programa descuento si el monto es menor a 50
(PROGRAMA PARA DETERMINAR soles.
RAICES DE UNA ECUACIÓN
CUADRÁTICA) que muestre las raíces 38. Diseñar un programa
de una ecuación cuadrática. (PROGRAMA SUMA DE PRIMEROS
N NÚMEROS) que muestre la suma de
35. Diseñar un programa los N primeros números naturales.
(PROGRAMA MAYOR DE TRES
NÚMEROS) que muestre el mayor de 39. Diseñar un programa
tres números ingresados desde el (PROGRAMA PROMEDIO DE UN
teclado. ESTUDIANTE), dado N notas en el
sistema vigesimal debe mostrar: El
36. Diseñar un programa promedio de las notas. Cuantas notas
(PROGRAMA PARA CALCULAR tiene reprobadas (0-7). Cuantas notas
EL DESCUENTO), dado el monto de tiene desaprobadas (8-10). Cuantas
una compra calcular el descuento notas tiene aprobadas (11-20).
considerado: Solución:
Descuento es 20% si el monto es mayor
a 100 soles. 40. Diseñar un programa
Descuento es 10% si el monto es mayor (PROGRAMA SUMA DE DIGITOS
a 50 soles y menor o igual a 100 soles- DE UN NÚMEROS), dado un número
no hay descuento si el monto es menor determinar la suma de sus dígitos.
a 50 soles.
41. Diseñar un programa
37. Diseñar un programa (PROGRAMA PARA MOSTRAR
(PROGRAMA PARA CALCULAR PARES, IMPARES POSITIVOS Y

Yony Raúl CHAMBILLA PARI Pág. 20


Algoritmo y Estructura de Datos
NEGATIVOS), que permita pedir 50 recibirá un trabajador por concepto de
números naturales y determine imprima las horas extras trabajadas en una
cuantos son pares, impares, positivos y empresa, sabiendo que cuando las horas
negativos. de trabajo exceden de 40, el resto se
consideran horas extras y que éstas se
42. Diseñar un programa pagan al doble de una hora normal
(PROGRAMA PARA CALCULAR cuando no exceden de 8; si las horas
FACTORIAL DE UN NÚMERO), para extras exceden de 8 se pagan las
calcular e imprimir factorial de un primeras 8 al doble de lo que se paga
número. por una hora normal y el resto al triple.

43. Diseñar un programa 46. Diseñar un programa


(PROGRAMA PARA CALCULAR (PROGRAMA PARA ACCEDER A
LA SUMA DE LOS NUMEROS UN PRESTAMO), determinar si un
PARES COMPRENDIDOS ENTRE 0 empleado de una empresa desea saber
A 20), para calcular suma de los hasta cuándo puede acceder a un
números pares comprendidos de 0 a 20. préstamo si sus ingresos son inferiores
a 600 tiene acceso a un préstamo de
44. Diseñar un programa 2000 soles, en caso contrario si sus
(PROGRAMA PARA CALCULAR ingresos son hasta 800 soles tiene
EL COSTO A PAGAR), para que acceso a un préstamo de 3500, y si sus
calcule el pago que hacen un grupo de ingresos superan los 800 soles tiene
personas para ver una película teniendo derecho a 5000. dado el monto por los
en cuenta que si el grupo es menor de 8 ingresos determinar e imprimir el
personas el pago es de 5 soles por monto del préstamo que puede acceder.
persona y para grupos de 8 personas o
más el pago es 4 soles por persona. 47. Diseñar un programa
(PROGRAMA PARA DETERMINAR
45. Diseñar un programa ACCESO A PREMIO), si, un cantante
(PROGRAMA PARA CALCULAR tiene vendidos entre 2500 a 5000 discos
PAGO DE HORAS EXTRAS), para tiene derecho a un disco de platino, si
determinar la cantidad de dinero que tiene vendidos más de 5000 y hasta

Yony Raúl CHAMBILLA PARI Pág. 21


Algoritmo y Estructura de Datos
10000 tiene derecho a un disco de plata 52. Diseñar un programa
y si tiene vendido más de 10000 discos (PROGRAMA PARA DETERMINAR
vendidos tiene derecho a un disco de LA MENOR NOTA), que lea 2 notas de
oro, dado la cantidad de discos vendidos un estudiante y publicar la nota baja.
por un cantante determinar a qué
premio tiene derecho. 53. Diseñar el algoritmo (ordinograma
y pseudocódigo) correspondiente a un
48. Diseñar un programa programa que lea el valor
(PROGRAMA PARA MOSTRAR LA correspondiente a una distancia en
ETAPA DE DESARROLLO millas marinas y las escriba expresadas
HUMANO), que dada la edad de una en metros. Sabiendo que 1 milla marina
persona determinar si dicha edad no equivale a 1852 metros.
excede de 10 imprimir “Es un niño(a)”,
si no excede de 17 imprimir “Es un 54. Diseñar el algoritmo (ordinograma

adolescente”, si no excede de 30 y pseudocódigo) correspondiente a un

imprimir “Es joven” en caso contrario programa que escribe el porcentaje

imprimir “Es adulto”. descontado en una compra,


introduciendo por teclado el precio de la

49. Diseñar un programa tarifa y el precio pagado.

(PROGRAMA PARA DETERMINAR


55. . Diseñar el algoritmo (ordinograma
SI ES MÚLTIPLO DE 3 O NO), que lea
y pseudocódigo) correspondiente a un
un número entero y mostrar si es o no
programa que pida por teclado dos
múltiplo de 3.
números enteros y muestre su suma,
resta, multiplicación, división y el resto
50. Diseñar un programa
(módulo) de la división. Si la operación
(PROGRAMA PARA DETERMINAR
no es conmutativa, también se mostrará
SI ES DIVISOR DE 3 O NO), que lea
el resultado invirtiendo los operadores.
un número y mostrar si es divisor de 3.
56. Diseñar el algoritmo (ordinograma
51. Diseñar un programa y pseudocódigo) correspondiente a un
(PROGRAMA PARA DETERMINAR programa que obtiene la última cifra de
SI ES VOCAL O NO), que lea una letra un número introducido.
y determinar si es una vocal.
Yony Raúl CHAMBILLA PARI Pág. 22
Algoritmo y Estructura de Datos
57. Diseñar el algoritmo (ordinograma programa que al introducir una cantidad
y pseudocódigo) correspondiente a un de dinero expresado en euros nos
programa que calcule el área y el indique cuántos billetes y monedas se
perímetro de un triángulo rectángulo puede tener como mínimo.
dada la base y la altura.
62. Suponiendo que una paella se puede
58. Diseñar el algoritmo (ordinograma cocinar exclusivamente con arroz y
y pseudocódigo) correspondiente a un gambas, y que para cada cuatro
programa que tras introducir una personas se utiliza medio kilo de arroz
medida expresada en centímetros la y un cuarto de kilo de gambas, escribir
convierta en pulgadas (1 pulgada = 2,54 un programa que pida por pantalla el
centímetros). número de comensales para la paella, el
precio por kilo de los ingredientes y
59. Diseñar el algoritmo (ordinograma
muestre las cantidades de los
y pseudocódigo) correspondiente a un
ingredientes necesarios y el coste de la
programa que exprese en horas,
misma.
minutos y segundos un tiempo
expresado en segundos. 63. Se desea implementar un algoritmo
para obtener la suma de dos números
60. Diseñar el algoritmo (ordinograma
cualesquiera. Se debe partir de que para
y pseudocódigo) correspondiente a un
poder obtener la suma es necesario
programa que pida el total de
contar con dos números, pues el proceso
kilómetros recorridos, el precio de la
que debemos realizar es precisamente la
gasolina (por litro), el dinero de
suma de éstos, la cual se asigna a una
gasolina gastado en el viaje y el tiempo
variable que se reporta como resultado
que se ha tardado (en horas y minutos)
del proceso.
y que calcule: • Consumo de gasolina
(en litros y euros) por cada 100 km. • 64. Un estudiante realiza cuatro
Consumo de gasolina (en litros y euros) exámenes durante el semestre, los
por cada km. • Velocidad media (en cuales tienen la misma ponderación.
km/h y m/s). Realice el pseudocódigo y el diagrama
de flujo que representen el algoritmo
61. Diseñar el algoritmo (ordinograma
correspondiente para obtener el
y pseudocódigo) correspondiente a un
Yony Raúl CHAMBILLA PARI Pág. 23
Algoritmo y Estructura de Datos
promedio de las calificaciones 69. Un productor de leche lleva el
obtenidas. registro de lo que produce en litros, pero
cuando entrega le pagan en galones.
65. Se requiere conocer el área de un
Realice un algoritmo, y represéntelo
rectángulo. Realice un algoritmo para
mediante un diagrama de flujo y el
tal fin y represéntelo mediante un
pseudocódigo, que ayude al productor a
diagrama de flujo y el pseudocódigo
saber cuánto recibirá por la entrega de
para realizar este proceso.
su producción de un día (1 galón =
66. Se requiere obtener el área de una 3.785 litros).
circunferencia. Realizar el algoritmo
70. Se requiere obtener la distancia
correspondiente y representarlo
entre dos puntos en el plano cartesiano,
mediante un diagrama de flujo y el
tal y como se muestra en la figura 2.4.
pseudocódigo correspondiente.
Realice un diagrama de flujo y
67. Una empresa constructora vende pseudocódigo que representen el
terrenos con la forma A de la figura 2.2. algoritmo para obtener la distancia entre
Realice un algoritmo y represéntelo esos puntos.
mediante un diagrama de flujo y el
71. Se requiere determinar el sueldo
pseudocódigo para obtener el área
semanal de un trabajador con base en
respectiva de un terreno de medidas de
las horas que trabaja y el pago por hora
cualquier valor.
que recibe. Realice el diagrama de flujo
68. Se requiere obtener el área de la y el pseudocódigo que representen el
figura 2.3 de la forma A. Para resolver algoritmo de solución correspondiente.
este problema se puede partir de que
está formada por tres figuras: dos 72. La conagua requiere determinar el

triángulos rectángulos, con H como pago que debe realizar una persona por

hipotenusa y R como uno de los catetos, el total de metros cúbicos que consume
que también es el radio de la otra figura, de agua al llenar una alberca (ver figura

una semicircunferencia que forma la 2.5). Realice un algoritmo y


parte circular (ver forma B). Realice un represéntelo mediante un diagrama de

algoritmo para resolver el problema y flujo y el pseudocódigo que permita

represéntelo mediante el diagrama de determinar ese pago.

flujo y el pseudocódigo.
Yony Raúl CHAMBILLA PARI Pág. 24
Algoritmo y Estructura de Datos

Yony Raúl CHAMBILLA PARI Pág. 25

También podría gustarte