Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Algoritmos

No description
by

eiderman Marin

on 9 May 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Algoritmos

Algoritmos
Definición
Presentado por:
Paula Andrea Noreña Montoya
Eiderman Marín Duque

Tecnología Industrial I5BN

Presentado a:
Ing. Germán Andrés Morales Leon
2014

Capítulo 1
La principal razon para que las personas aprendan lenguajes y tecnicas de programacion es utilizar la computadora como una herramienta para resolver problemas.




Definicion o analisis del problema.
Diseño del algoritmo.
Transformacion del algoritmo en un programa.
ejecucion y validacion del programa.
Capítulo 2
La resolución de problemas con computadoras se puede dividir en tres fases:

Análisi del problema.
Diseño del algoritmo.
Resolución del algoritmo en la computadora.
Capítulo 3
El concepto de programa como un conjunto de instrucciones que producira la ejecucion de una determinada tarea. En escencia, un programa es un medi para conseguir un fin.
Conceptos y Estructuras
Algoritmos es una serie de pasos lógicos para conseguir metas u objetivos con el fin de solucionar un requerimiento planteado.
Instancia: Espacio reservado a la variable
Tipo de dato: Es el que va a permitir definir el rol de la variable

1. Leer detenidamente el planteamiento
a. Entorno
b. Variables
c. Condición
2. Objetivos que debo identificar en el algoritmo
a. General
b. Específicos
3. Recuperación de datos
a. Proceso
b. Información

Ejercicios
2.1 deducir los resultados que se obtienen del siguiente algoritmo:
Inicio
Var. Entero: x, y, z
x = 5
y = 20
z = x + y
Escribir (x, y)
Escribir (z)
Fin
R// Inicio
Var. Entero: x,y,z
X = 5
y = 20
z = x + y
Escribir (5, 20)
Escribir (25)
Fin
2.9 Calcular el perímetro y la superficie de un rectángulo dadas la base y la altura del mismo.
R//
Perímetro= 2*b+2*h
Base= b*h
Inicio
Var. Real b, h, RES=0
Escribir “digite de valor b”
lea b
Escribir “digite de h”
lea h
Baserec= b*h
Perirec= 2*b+2*h
Fin
Anidación: Que una estructura esta una dentro de otra.

Condición: Permite saber las restricciones (Regla o Patrón)

Expresión: Permite deducir que conectores y operadores lógicos voy a utilizar
Entrada: Interpreta

Proceso: Compilación

Salida: Traductor

Información: permite tomar decisiones

Variable: Son la representación general de uno o mas datos, los nombres de las variables deberán estar acorde al problema al igual que su instancia.

Ámbito: Entorno donde trabaja la variable.
Texto : -Carácter
-Alfanumérico
-Alfabéticos
-Cadena
Numérico:
-<>
- O +
>=0
Booleanos:
V 1 on H F 0 off M
Fecha:
-Corta -> DD/MM/AA
-Larga
- Americana
-Británica

Tipo de dato
Estructuras Selectivas
También llamado condicional permite evaluar o bien validar el valor o los valores de uno o mas variables, que cuando encuentra su coincidencia, veracidad o igualdad termina su proceso.
También llamada iterativa; a diferencia de las estructuras selectivas solo terminan hasta que se cumpla la condición.
Estructura Cíclica
C= C+VN VN= Valor número C= C+1
Ejemplo de contador
Acumulador:
Almacenamiento de valores en el contador de naturaleza numérica.

Ejemplo
C A
0 0
1 1
1 2
1 3

Centinela o Bandera: Son variables que permiten saber cuando se cumple una condición

igualmente existen variables numéricas, alfanuméricas, caracteres, etc... las cuales se definen según el problema en el que estemos desarrollando el algoritmo.

Contador:
Variables que permite el incremento o decremento ya sea de uno en uno indiscriminadamente; su naturaleza es totalmente numérica
Variables
Conector: Puente que une dos puntos.

Operador: Permite dirigir los datos.

Conectores lógicos.
Y (conjunto [conjuntivos].
O (grupo, [incluyente])

Operadores lógicos.
=, = =, <, <=, >, >=, !=, <>
Conectores y Operadores
Concatenar:
Suma entre cadenas. Ejemplo:
“Contador= C + Str (C)”
Auxiliador: Guarda de manera temporal el valor de otra variable
Ejercicio de las operaciones matemáticas básicas
/*Operaciones básicas matemáticas*/
Inicio
Variable Publica Real Res, N1,N2 = 0
Suma a + b = Res
Resta a - b = Res
Multiplicación a * b = Res
División Entera a / b = Res
División Modular a \ b = Res

Ejemplo: /*División de dos números*/
Inicio
Variable reales N1, N2, Res=0
Escriba “Digite N1”, lea N1
Escriba “Digite N2”, lea N2
Si N2! = 0 entonces
RES= N1/N2
FIN-SI
Imprima “RES=”, res
Fin

1. /*Freír huevos*/
00 Inicio
01 Estar en la cocina
02 Sujetar con mano izquierda en mango del sartén ubicada en el portavajillas
03 Reposar el sartén sobre la hornilla de la estufa
04 Girar perilla con mano derecha mientras se pulsa el ignitor con el pulgar izquierdo
05 Abrir puerta de la nevera usando la mano diestra
06 Sacar la mantequilla necesaria de nuevo con la mano diestra
07 Cerrar la puerta de la nevera con mano izquierda
08 Poner el trozo de mantequilla sobre el sartén caliente
09 Abrir puerta de la alacena ubicada en la parte izquierda de la cocina
10 Sustraer huevos de la alacena con mano izquierda
11 Golpear los huevos levemente contra el filo del mesón con ambas manos
12 Oprimiendo con ambos pulgares la fisura previamente hecha, romper huevo sobre el sartén
13 Esperar hasta la consistencia deseada
14 Disponer de un plato contiguo a la hornilla
15 Agarrar la espátula del portavajillas
16 Retirar el huevo del sartén
17 Servirlo en el plato previamente dispuesto
18 Fin
Algoritmo para freír huevos
Algoritmo para despinchar una llanta de un vehículo
2. /*Despinchar llanta de vehículo*/
00 Inicio
01 Estar en el garaje
02 Tomar un extremo de la llanta pinchada con la mano diestra ubicada en el extremo izquierdo del garaje
03 Girar lentamente la llanta con ayuda de ambas manos
04 Ubicar el daño u orificio en la zona de rodadura
05 Remover el objeto causante de la avería con mano derecha
06 Acceder a la cámara de aire utilizando la herramienta des montadora con la mano diestra
07 Lijar el orificio o daño, dejando una superficie porosa a la cámara
08 Aplicar pegamento en la cámara
09 Esperar hasta que el pegamento no se pegue al tacto
10 Adherir el parche a la cámara
11 Inflar la cámara para comprobar si el daño fue reparado
12 Unir neumático a la rueda
13 Fin
3. /*Donde estaba antes de estar en el salón de clases*/
00 Inicio
01 Estar en las instalaciones del Fcecep
02 Dirigirme a las aulas de las cupulas por el pasillo izquierdo
03 Estar en la entrada para acceder al pasillo de los salones
04 Transitar por el pasillo dando siete pasos hacia delante
05 Dar un cuarto de vuelta hacia la derecha
06 Caminar hasta llegar al salón 111, ubicado al lado derecho del pasillo
07 Encontrarse Frente a la puerta del salón 111
08 Situar el puesto donde quiero sentarme
09 Sentarme en el puesto seleccionado
10 Fin
00 Inicio
01 Digitar dos números cualesquiera N1, N2 >=0
02 Obtener las siguientes operaciones: “Suma, resta, multiplicación, división modular y raíz”
03 Si suma es “N1+N2” entonces
04 Imprima la suma de los dos números es “N1+N2 =”
05 Si resta es “N1-N2” entonces
06 Imprima la resta de los dos números es “N1-N2 =”
07 Si multiplicación es “N1*N2” entonces
08 Imprima la multiplicación de los dos números es “N1*N2 =”
09 Si división de enteros es “N1/N2” entonces
10 Imprima la división de enteros de los dos números es “N1/N2 =”
11 Si división modular es “N1\N2” entonces
12 Imprima la división modular de los dos números es “N1\N2 =”
13 Si raíz “N1” y raíz “N2” entonces
14 Imprima la raíz “N1=” y raíz “N2 =”
15 Fin
Algoritmo de la suma, resta, multiplicación, división entera, división modular y raíces
Estructura Selectiva Según Sea
Permite ser aplicada para variables multivaloradas; ej: menú de opciones, colores, jornada.
Nota:
Según sea nVar. (n=numérica)
Caso 1: [p]
Caso 2: [p]
Y otros casos [op]
FIN SS
Según sea cVar. (c=carácter)
Caso 1: [p]
Caso 2: [p]
Y otros casos [op]
FIN SS
Nota: Toda estructura selectiva una vez se cumpla la opción que esta siendo evaluada, “Termina”.
Practica #1
Realizar el pseudocódigo un programa que nos permita seleccionar una opción de la siguiente lista:
• Suma
• Resta
• Multiplicación
• Salir;
Una vez seleccionada ejecutara la orden e imprimirá su resultado
/* Operaciones básicas matemáticas*/
Inicio
Var. Reales A, B, RES=0; var. entero. op=0
Escriba "digite A"
Escribe "digite B"
Escriba “1.Suma"
Escriba “2.Resta"
Escriba “3.multiplicación"
Escriba “4.Salir"
Escriba “Digite opción”, lea op
Segun sea op
caso1
RES= A+B
Imprima RES
caso 2
RES= A-B
Imprima RES
caso 3
RES= A*B
Imprima RES
caso 4
Imprima “Salir"
Fin_ss
Fin
Practica #2 :

/* Información personal DATOS*/
Inicio
Variable privada reales N, E ≥ 0, FN, S
Escriba “Digite Nombre(s)”, lea letras
Escriba “Digite Edad”, lea Números
Escriba “Digite Fecha DD/MM/AA “, lea fecha de nacimiento
Escriba “Digite Sexo M y/o F”, lea género masculino y/o femenino
Si edad >= 0 y edad<= 11 entonces
Imprima “El infante se identifica como:”, res
Sino si edad >= 12 y edad<=17 entonces
Imprima “El adolescente se identifica como:”, res
Sino si edad >= 18y edad <=49 entonces
Imprima “El joven se identifica como:”, res
Sino si edad >= 50 entonces
Imprima “El adulto mayor se identifica como:”, res
Fin – si
Fin – si
Fin – si
Fin – si
Fin
Practica #3:
/* Captura de tres Números N, Z , Q”
Inicio
Variables reales N, Z y Q
Escriba “Digite 1er valor numérico”, lea N
Escriba “Digite 2do valor numérico”, lea Z
Escriba “Digite 3er valor numérico”, lea Q
Si N <=0 y N >= 0 entonces
Imprima N “Pertenece al grupo numérico de los Enteros”, N
Sino si Z= 0 entonces
Imprima Z “Pertenece al grupo numérico de los Cardinales ”, Z
Sino si Q >= 1 entonces
Imprima Q “Pertenece al grupo numérico de los Naturales”, Q
Fin – Si
Fin – Si
Fin – Si
Fin
Practica #4:
/* Comparación de tres números X,Y,Z */
Inicio
Variable reales X, Y, Z
Escriba “Digite 1er valor numerico”, lea X
Escriba “Digite 2do valor numerico”, lea Y
Escriba “Digite 3er valor numerico”, lea Z
Si X=Y=Z entonces
Imprimir “Error, vuelva a digitar”
Sino comparar X > Y y X > Z entonces
Imprima “ X es el mayor”, X
Sino comparar Y>X y Y>Z entonces
Imprima” Y es el mayor”, Y
Sino comparar Z> X y Z>Y entonces
Imprima “Z es el mayor”, Z
Fin-si
Fin-si
Fin-si
Fin-si
Fin
Practica #5:
/*Solución a la ecuación cuadrática*/
Inicio
Variable reales a, b, c = 0
Escriba” Digite 1er valor númerico”, lea a
Escriba” Digite 2do valor númerico”, lea b
Escriba” Digite 3er valor númerico”, lea c
Si a = 0 entonces
Imprima” Error, el denominador debe ser > 0”
Sino Si a != 0 entonces
multi= 4*a*c mientras que
Si resta >=0, entonces
Calcular resta (b^2-4*a*c)
Calcular la Rc (b^2 -4*a*c)
Xmax: (-b + Rc [(b^2 -4*a*c)]) / 2*a entonces
Res= Xmax
Imprima “Xmax=”, xmax
Sino si Xmenos:(-b – Rc [(b^2 -4*a*c)]) / 2*a entonces
Res= Xmenos
Imprima “xmenos=”, Xmenos
Fin-si
Fin-si
Fin

Practica #6: /*área de los elementos geometricos*/
Triangulo A Cilindro E
Circulo B Rombo F
Cuadrado C Trapecio G
Rectángulo D
Inicio
Var. Carácter op =1
Var. Real constante pi: 3,141516
Var. Reales BM,bm,DM,dm,b,h,r,L,At,Ac,Acu,Ar,Aci,Aro,Atr=0
Escriba “Digite A”, lea Triangulo
Escriba “Digite B”, lea Círculo
Escriba “Digite C”, lea Cuadrado
Escriba “Digite D”, lea Rectángulo
Escriba “Digite E”, lea Cilindro
Escriba “Digite F”, lea Rombo
Escriba “Digite G”, lea Trapecio
segun sea op
caso“A”
Escriba “Triangulo”
Escriba “Digite Base”, lea b
Escriba “Digite Altura”, lea h
At= (b*h)/2
Imprima At
caso “B”
Escriba “Circulo”
Escriba” Digite radio”, lea r
Ac= (pi*(r*r)
Imprima Ac
caso “C”
Escriba “Cuadrado”
Escriba “Digite Lado”, lea L
Acu= (L*L)
Imprima Acu
caso “D” entonces
Escriba “Rectángulo”
Escriba “Digite Base”, lea b
Escriba “Digite Altura”, lea h
Ar= (b*h)
Imprima Ar
caso “E”
Escriba “Cilindro”
Escriba “Digite Radio”, lea r
Escriba “Digite Altura”, lea h
Acili= (2*pi*r(h+r))
Imprima Acili
caso“F”
Escriba “Rombo”
Escriba “Digite Diagonal Mayor”, lea DM
Escriba “Digite Diagonal Menor”, lea dm
Aro= (DM*dm)/2
Imprima Aro
caso“G” entonces
Escriba “Trapecio”
Escriba “Digite Base Mayor”, lea BM
Escriba “Digite Base Menor”, lea bm
Escriba “Digite Altura”, lea h
Atr= (h*(BM+bm))/2
Imprima Atr
Fin-ss
Fin
Las estructuras cíclicas a deferencia de las estructuras selectivas solo terminan hasta que se cumpla la condición; entre las estructuras cíclicas se resaltan las siguientes: Para, Mientras, Haga mientras.
-Para: Solo es de naturaleza numérica
Ejemplo estructura:

Para n Var = Inicio hasta fin
[P]
Fin-Para
Estructuras Cíclicas
Diagrama haga mientras
while do
Practica #1: Realizar el pseudocódigo la impresión de una serie de números del 1 al 10
/*Impresión de 10 números sucesivos*/
Inicio
Para i =1 hasta 10
Imprima i
Fin-Para
Fin

Practica #2: Realizar el pseudocódigo la impresión de 10 números dando saltos de dos en dos.
/*Impresión de 10 números con saltos de dos en dos*/
Inicio
Para i= 1 hasta 20 saltando dos (2)
Imprima i
Fin-Para
Fin
Practica #3:

Realizar el pseudocódigo una aplicación donde el usuario captura un número que representará una tabla de multiplicar.
/*Tabla de multiplicar*/
Inicio
Var. Enteras a, i, x=0
Escriba ”Digite valor a”, lea a
Para i= 1 hasta a
X= a*i
Imprima convcad (x)+”=”+convcad (a)+”*”+convcad(i)
Fin-Para
Fin
En resumen, un ciclo se puede comparar con los ejercicios de los deportistas cuando van a correr alrededor de la cancha dando cierta cantidad de vueltas.
Ciclo Para Anidado
La anidación de ciclos se puede comparar con las manecillas de un reloj.
Practica #1: Realice el pseudocódigo del ciclo de las manecillas de un reloj (Horario, Minutero y Segundero).
/*Horario, Minutero y Segundero de un reloj*/
Inicio
Variable Entera H, M, S = 0
Para H = 0 hasta 23 hacer mientras
H = H + 1
Para M = 0 hasta 59 hacer mientras
M = M + 1
M = 0
Para S = 0 hasta 59 entonces
S = S + 1
S = 0
imprima Escriba conv cad (H) + “:” + conv cad (M) + “:” + conv cad (S)
Fin_ Para
Fin_ Para
Fin_ Para
Fin


En este ejercicio el ciclo para empieza a contabilizar los segundos, luego que llegue a 59 comienzan los mutos y a la vez que ambos lleguen a 59 inicia a contabilizar las horas, y para terminar cuando las tres variables lleguen a 59.
Practica #2: Realice el pseudocódigo la captura de una cadena (números, caracteres, letras, etc.) cualesquiera que de cómo resultado cuantos números, caracteres, letras (mayúsculas y minúsculas) y que números, caracteres, letras (mayúsculas y minúsculas) hay dentro de la cadena.
/*Captura de una cadena cualesquiera*/
Inicio
Variable texto cadena apellido: 20
Variable entera longi: 0
Variable carácter: 1
Variable constante cad cadena = “cadena”
Escriba “Digite cadena”, lea cadena
Longi = longitud (cadena)
Para i = 1 hasta longi
Carácter = subcadena (cadena, i, longi)
SiAscii ( carácter) >=65 y Ascii (carácter)<=90 entonces
Imprimacaract, letras mayúsculas
Sino siAscii (carácter >=97yAsciicarácter <=122)
Imprima caract, letras minúsculas
Sino siAscii (carácter)>=48 y Ascii (carácter)<=57
Imprimacaract, dígito
Sino siAscii (carácter)>= 128y Ascii(carácter)<= 254
Imprima caract, comodines
Fin_si
Fin_si
Fin_si
Fin_si
Fin_ Para_i
Fin
Practica #3: /*Acumular caracteres*/
Inicio
Var. Carácter letra =1
Var. Texto cadena =13
Var. Numer. Entera Nc=0
Escriba “Cuantos caracteres desea escribir”, Lea Nc
Para i=1 hasta Nc
Escriba “Digite letra”, Lea letra
Cadena= Cadena+ letra
Imprima cadena
Fin- Para i
Fin

Practica #4: /* Acumular captura de la cadena HAPPY*/
Inicio
Var. Carácter= 1
Var. Texto cadena=5
Var. Numer. Entera Nc= 0
Escriba “Digite Happy”, lea Happy
Para i= 1 hasta 5
Escriba “Digite letra”, lea letra
Cadena = cadena+letra
Imprima cadena
Fin- Para i
Fin

Practica #5: Decir cuáles son letras mayúsculas, minúsculas, en caso de no ser letra decir que vuelva a digitar.
/*Captura de una cadena cualesquiera*/
Inicio
Var. Texto cadena =5
Var. Letra carácter =1
Var. Texto nmay, nmin =0
Para i= 1 hasta 5
Escriba “Digite letra”, lea letra
Si Ascci (letra)>=65 y Assci (letra)<=90 entonces
Nmay= Nmay+1
Imprima la cantidad de letras mayúsculas “Nmay=”
Sino Si Ascci (letra)>=97 y Assci (letra)<=122 entonces
Nmin= Nmin+1
Imprima la cantidad de letras minúsculas “Nmin=”
Sino si letra != 65 y letra !=90
letra !=97 y letra !=122 entonces
Imprima “Error, vuelva a digitar letra”
Fin-Si
Fin-Si
Fin-Si
Fin-Para i
Fin

1.2. ¿Cuál de los siguientes identificadores no son validos?
a) XRayo
b) X_Rayo.
c) R2D2
d) X
e) 45
f) N14
g) ZZZZ
h) 3µ
La respuesta es la e y la h, Un identificador es una serie de caracteres formados por letras, dígitos y el carácter subrayado ( _ ) que no inicie con dígito, asi mismo es el nombre que damos a todo lo que manipulamos dentro de un programa (variables, constantes, funciones, etc). Por ejemplo variables, constantes, funciones, tipos definidos por el usuario etc.
Ejercicios.
1.3. ¿Cuáles de las siguientes constantes no son validas?
a) 234
b) -8.975
c) 12E - 5
d) 0
e) 32,767
f) 1/2
g) 3.6E + 7
h) -7E12
i) 3.5 x 10
j) 0,456
k) 0.000001
l) 224E1

De acuerdo a la información descrita en el libro las constantes no validas serian la e y la j, Ya que las constantes que incluyen comas no son permitidas, Por otra parte las opciones a,d,i,h, en algunas computadoras no serian validas ya que se debería incluir un punto decimal.
1.4. Evaluar la siguiente expresión para A = 2 y B= 5:
3 * A – 4 * B / A ̂ 2
Las operaciones aritméticas dentro de una expresión tienen el siguiente orden
• Operador exponencial
• Operadores *,/
• Operadores +, -.
Teniendo en cuenta esto el orden de ejecución de la operación 3 * A – 4 * B / A ^ 2
Inicialmente se resuelve la operación exponencial A^ 2= 4
Posteriormente se resuelven las multiplicaciones 3 * A y 4 *B que son igual a: 6 y 20 respectivamente
Luego se resuelve la división dando como resultado 20/4 = 5
Y al final se realiza la resta. El resultado final seria= 1

1.5. Evaluar la expresión para:
4 / 2 * 3 / 6 + 6 / 2 / 1 / 5 ^ 2 / 4 * 2
1 reducción: 4 / 2 * 3 / 6 + 6 / 2 / 1 / 25 / 4 * 2
2 reducción: 4 / 6 / 6 + 6 / 2 / 1 / 25 / 8
3 reducción: 0.11 + 0.015
Resultado de la operación = 0.125
1.6. Escribir las siguientes expresiones algebraicas como expresiones algorítmicas:
a) √(b^2 ) – 4ac = (b^2) ^ (1/2) – 4* a * c
b) x2 + y2 = (x^2 + y^2) / z^2
z2
c) 3x + 2y = (3*x+2*y)/ 2 * z
2z
d) a + b = (a + b) / (c - d)
c - d
e) 4x2 – 2x + 7 = 4 * x^2 – 2 * x + 7

f) x + y _ 3x = ((x+y)/x) – ((3 *x)/5)
x 5
g) a__ = a / (b * c)
bc

h) xyz = x * y * z
i) y2 – y1 = (y2 – y1) / (x2 – x1)
x2 – x1
j) 2πr = 2 * π * r
π= pi= Una constante 3.1416

k) 4/3 πr3 = 4/ 3 * (π * r^3)

l) (x2 – x1)2 + (y2 – y1)2 = (x2 – x1)^2 + (y2 – y1)^2


1.7. Escribir las siguientes expresiones algorítmicas como expresiones algebraicas:
a) b ^ 2 – 4 * a * c = b2 – 4ac

b) 3 * x ^ 4 – 5 * x ^ 3 + x * 12 – 17 = 3x4 – 5x3 + 12x – 17

c) (b + d) / (c + 4) = (b+d)/(c+4)

c) (x ^ 2 + y ^ 2) ^ (1 / 2) = √(x^2+y^2 )
1.8. Si el valor de A es 4, el valor de B es 5 y el valor de C es 1, evaluar las siguientes expresiones:
a) B * A – B ^ 2 / 4 * C
b) (A * B) / 3 ^ 2
c) (((B + C) / 2 * A + 10) * 3 * B) – 6

A es 4, B es 5 y C es 1.

a) 5 * 4 – 5 ^ 2 / 4 * 1
1 reducción: 5 * 4 – 25 / 4 * 1 se eleva
2 reducción: 20 – 25 / 4 se multiplica de izquierda a derecha
3 reducción: 20 – 6.25 se divide
Respuesta: 13.75 finalmente se resta

b) (4 * 5) / 3 ^ 2
1 reducción: 20 / 3 ^ 2 se resuelve lo q esta en ()
2 reducción: 20 / 9 se eleva
Respuesta: 2.222 se divide


c) (((5 + 1) / 2 * 4 + 10) * 3 * 5) – 6
1 reducción: ((6 / 2 * 4 + 10) * 3 * 5) – 6
2 reducción: ((6 / 8 + 10) * 3 * 5) – 6
3 reducción: ((0.75 + 10) * 3 * 5) – 6
4 reducción: (10.75 * 3 * 5) – 6
5 reducción: 161.25 – 6
Respuesta: 155.25

Las prioridades de los paréntesis las prioridades de las operaciones aritméticas.

1.9. Si el valor de A es 2, B es 3 y C es 2, evaluar la expresión:
a ^ b ^ c = 2 ^ 3 ^ 2 = 8 ^ 2 = 64

1.10. Obtener el valor de cada una de las siguientes expresiones aritméticas:
a) 7 div 2 = 3
b) 7 mod 2 = 1
c) 12 div 3 = 4
d) 12 mod 3 = 0
e) 0 mod 5 = 0
f) 15 mod 5 = 0
g) 7 * 10 – 50 mod 3 * 4 + 9 = 71
h) (7 * (10 – 5) mod 3) * 4 + 9 = 17

Nota: Considérese la prioridad de Pascal: Más alta: *, /, div, mod: Más baja; +, -.
1.11. Encontrar el valor de cada una de las siguientes expresiones o decir si no es una expresión valida:
a) 9 – 5 – 3 = 1
b) 2 div 3 + 3 / 5 = 0.6
c) 9 div 2 / 5 = 0.8
d) 7 mod 5 mod 3 = 2
e) 7 mod (5 mod 3) = 1
f) (7 mod 5) mod 3 = 2
g) (7 mod 5 mod 3) = 2
h) ((12+3) div 5) / ( 8 – (5 + 1)) = 1.5
i) 12 / 2 * 3 = 18
j) raiz2 (cuadrado (4)) = 4
k) cuadrado (raiz2 (4)) = 4
l) trunc (81.5) + redondeo (81.5) = 81 + 82= 163

2.2 ¿Qué resultados producirá este algoritmo?
Inicio
Var. Entero; nx, doble
Nx = 25
Doble = NX * 2
Escribir (NX)
Escribir (doble)
Fin
R//
Inicio
Var. Entero; Nx, doble
Nx = 25
Doble = NX * 2
Escribir (25)
Escribir (50)
Fin

2.3 Escribir un algoritmo que calcule y escriba el cuadrado de 243.
R//
Inicio
Var. Entera X, Res =0
X =243
RES = 243^2
Imprimir el cuadrado de 243 es “RES = 59,049”, res
Fin

2.4 Escribir un algoritmo que lea un número y escriba su cuadrado.
R//

Inicio
Var. Entera X, RES=0
Escribir “Ingrese el valor numérico”
Lea X
RES = X*X
Escribir el cuadrado del valor es “RES=” , res
Fin

2.5 Determinar el área y volumen de un cilindro cuyas dimensiones radio y altura se leen desde el teclado.
R//
Area total: 2 π *R (H+R) Volumen= π*R^2*H
/* área y volumen de un cilindro*/
Inicio
Var. Real H, R
Var. Constante pi= 3,141516
Escriba “digite 1er valor numéro”, lea H
Escriba “digite 2do valor numéro”, lea R
Acil=2pi*R(H+R)
Volcil= pi*(R*R)*H
Imprima valor Acil
Imprima valor volcil
Fin

2.6 Calcular el perímetro y la superficie de un cuadrado dada la longitud de su lado.
R//
Inicio
Var. Real Longi
Escriba “Digite valor numérico”
Lea Longi
Percua= L* 4
Imprima Percua
Fin
2.7 Realizar el algoritmo que sume dos números.
R//
Inicio
Var. Real A, B, RES=0
Escriba “digite 1er valor número”
lea A
Escriba “digite 2do valor número”
lea B
Res = A+B
Imprima la suma de los dos números es “Res=”, res
Fin

2.8 Calcular la superficie de un círculo.
R//
Area del circulo= π * (R*R)
Inicio
Var. Real R, Res=0
Var. Constante pi=3,141516
Escribir “Circulo”
Escribir “Digite numero”
lea R
Res= pi*(R*R)
Imprima la superficie del circulo es “RES=”, res
Fin
2.10 Escribir un algoritmo que lea un número de una marca de automóviles seguida del nombre de su modelo e informe del modelo seguido del nombre.
R//
Inicio
Leer nombre de la marca de cualquier automóvil
Leer el modelo del automóvil
Informar que modelo es con su respectivo nombre de la marca
fin


2.11 Determinar la hipotenusa de un triángulo rectángulo conocida las longitudes de los catetos.
H^2 = x^2+y^2
R//
Inicio
Var. Reales H, X, Y, RES=0
Escriba “Digite H”
lea H
Escriba “Digite X”
lea X
Escriba “Digite Y”
lea Y
Si X != 0 entonces
Hipot= raíz2 ((X*X)+(Y*Y))
Imprima Hipot
Fin-Si
Fin

2.12 Diseñar un algoritmo que realice la siguiente conversione: una temperatura dada en grados Celsius a grados Fahrenheit.
NOTA: La forma de conversión es F = (9/5) C + 32
R//
Inicio
Var. Reales C =0
Escriba “Digite valor del grado C (Celsius)”
lea C
Fahr = (9/5) *C+32
Imprima la temperatura de grados celsius a farenheit es “Fahr=”, res
Fin

2.13 Diseñar un algoritmo que calcule el área de un triángulo en función de las longitudes de sus lados:
AREA = Raiz2( p(p-a)(p-b)(p-c) )
Donde p= (a + b + c) / 2 (semiperímetro).
R//
Inicio
Var. Reales A, B, C,P=0
Escribir “digite a (el primer lado)”
lea a
Escribir “digite b (el segundo lado)”
lea b
Escribir “digite c el tercer lado”
lea c
P= (a+b+c)/2
Area= Raiz2( P*(P-A)*(P-B)*(P-C) )
Imprima “Area=”,
Fin
2.14 Se desea un algoritmo para convertir metros a pies y pulgadas (1 metro = 39.37 pulgadas, 1 pie = 12 pulgadas).
R//
Inicio
Escribir “digite el valor en metros”
lea Mt
IN= (39,37* Mt)
FT= (39,37 *Mt) / 12
Fin

2.15 El cambio de divisas en la Bolsa de Madrid el día 25 de Agosto de 1987 fue el siguiente:
100 chelines austriacos = 956,871 pesetas.
1 dólar EE.UU. = 122,499 pesetas
100 dracmas griegas = 88,607 pesetas.
100 francos belgas = 323,728 pesetas.
1 franco francés = 20,110 pesetas
1 libra esterlina = 178,938 pesetas.
100 liras italianas = 9,289 pesetas.
2.16 Desarrollar algoritmos que realicen las siguientes conversiones:
a) Leer una cantidad en chelines austriacos e imprimir el equivalente en pesetas.
R// Inicio
Var. Reales CH, RESPES=0
Escribir “digite el valor de los chelines austriacos”, lea CH
RESPES= (CH*956,871) /100
Imprima el equivalente en pesetas es “RESPES=”,
Fin
b) Leer una cantidad en dracmas griegos e imprimir el equivalente en francos franceses.
R// Inicio
Var. Reales DRC, RESFF=0
Escribir “digite el valor de los dracmas griegos”, lea DRC
PES= (DRC*88,607)/100
RESFF = (PES *1) /20,110
Imprima el equivalente en francos franceses es “RESFF=”,
Fin
c) Leer una cantidad en pesetas e imprimir el equivalente en dólares y en liras italianas. R// Inicio
Var. Reales PES, RESDOL, RESLI=0
Escribir “digite el valor de la cantidad de pesetas”, lea PES
RESDOL = (PES*1) / 122,499
RESLI= (PES*100) / 9,289
Imprima el equivalente en dólares es “RESDOL=”,
Imprima el equivalente en liras italianas es “RESLI=”,
Fin
Capítulo 4
La programación modular enseñara descomposición de un programa en módulos más simples de programar, y la programación estructurada
Capítulo 5
1- Se desea calcular independiente la suma de los números pares e impares comprendidos entre 1 y 200.

Inicio
Var. Entera. i, par, impar, = 0
Para i=0 hasta 200 saltando 2
Aux = i
par=i + aux
imprimir par
FinPara
Para i= 0 hasta 200
Aux=i
impar = i + aux
imprimir impar
FinPara
Fin

3- Calcular y visualizar la suma y el producto de los números pares comprendidos entre 20 y 400, ambos inclusive.

Inicio
Var. Entera. i, suma, mult, aux, aux1 = 0
Para =20 hasta 400 saltando 2
Aux=i
Suma=aux+i
Imprimir suma
Aux1= i
Mult=aux*i
Imprimir mult
FinPara
Fin

9- Calcular la media de 50 números e imprimir su resultado.
//* Promedio de 50 Números *//
Inicio
Definir Numero, Num, Promedio Como Real
Promedio<-0
Para Numero<-1 Hasta 50 Con Paso 1 Hacer
Escribir "Digite El Numero"
Leer Num
Promedio<-Num+Promedio
Fin Para
Promedio<-Promedio/50
Escribir "El promedio es: ", promedio
Fin
13 Calcular la nota media de los alumnos de una clase considerando n-numeros de alumnos y c-numero de notas de cada alumno

//*Nota Media De Alumno*//
Inicio
Definir a, n, alumnos, numerodenotas, suma, promedio, nota Como Real
suma<-0
Escribir "Ingrese La Cantidad De Alumnos"
Leer alumnos
Escribir "Ingrese La Cantidad De Notas"
Leer numerodenotas
Para a<-1 hasta alumnos con paso 1 hacer
para n<-1 hasta numerodenotas con paso 1 hacer
Escribir "Ingrese la calificacion de la nota del alumno"
Leer nota

Suma<- suma+nota
Promedio<- suma/numerodenotas
FinPara
FinPara
Imprimir "El Numero de Alumnos Fue: ",alumnos
Imprimir "El Numero de Notas Fue: ",numerodenotas
Imprimir "La Suma de las Notas de Todos los Alumnos: ",suma
Imprimir "Promedio de notas fue: ",promedio
14- Escribir la suma de los diez primeros números pares.

//* Escribir la suma de los diez primeros números pares *//
Inicio
Definir nc, suma, i como reales=0
Escribir "Primer Número Par"
Leer nc
Para i<-nc Hasta 20 con paso 2 hacer
Imprimir i
Suma= suma+i
FinPara
Escribir "La Suma Total De Los 10 Primero Numeros Pares Es "
Imprimir suma
Fin
16. Desarrollar un algoritmo que determine en un conjunto de cien números naturales:
• ¿Cuántos son menores de 15? ¿Cuántos son mayores de 50? ¿Cuántos están comprendidos entre 25 y 45?
//*Cien Números Naturales*//
Inicio
Definir xnumero como entero
Definir número, entre, menorde, mayorde como real=0
Para xnumero <-1 hasta 5 con paso 1 hacer
Escribir "Ingrese el Numero"
Leer numero
Si numero <15 Entonces
Menorde <- + 1

Sino
Si numero >50 Entonces
mayorde <- mayorde + 1
Sino
Si numero >= 25 y numero <= 45 Entonces
entre <- entre + 1
FinSi
FinSi
FinSi
FinPara
Imprimir "Los Numeros entre 25 y 45 son: ", entre
Imprimir "Los numeros menores a 15 son: ",menorde
Imprimir "Los numeros mayores a 50 son: ", mayorde

6- Calcular la suma de los cuadrados de los 100 primeros numeros naturales.
Inicio
Definir NC, ctc como enteros
Escribir "Cuantos Caracteres Desea Escribir"
Leer NC
Para i<-1 hasta NC con paso 1 hacer
Imprimir "El Cuadrado Es: "
Imprimir i
Imprimir i^2
ctc=ctc+(i^2)
FinPara
Imprimir "La Suma Total De Los Cuadrados Es: ", ctc
Fin
4.3 Sumar los numeros enteros de 1 a 100 mediante:
a) estructura repetir
// REPETIR
inicio
Var entero. i, total = 0
Leer i
Repetir
total = total + i
i = i + 1
Hasta Que i > 100
Escribir 'Total: ',total;
Fin_Proceso
1.1. Solución de los problemas:

a. Ir a cine:
0.0 Inicio
0.1 Estoy de pie en frente de la entrada de la sala a de cine n°1 del centro comercial Unicentro de Cali.
0.2 Le entrego el tiquete de la película al ayudante de la sala para poder ingresar a la sala a ver la película Capitán América, el cual tenía en la mano
0.3 El ayudante recibe el tiquete
0.4 El ayudante rasga el tiquete
0.5 El ayudante me devuelve el tiquete
0.6 Recibo el tiquete
0.7 Ingreso a la sala de cine
0.8 Subo la gradas
0.9 Me ubico en la silla asignada
0.10 Me siento en la silla
0.11 Fin
b. Comprar una entrada para los toros
0.0 Inicio
0.1 Estoy de pie enfrente de la taquilla de venta para ver la corrida de toros
0.2 Abro el bolso
0.3 Saco la cartera del bolso
0.4 Abro la cartera
0.5 Saco el dinero de la cartera
0.6 Cuento el dinero que se requiere para comprar el tiquete
0.7 Le entrego el dinero al señor que se encuentra dentro de la taquilla
0.8 Guardo el dinero restante dentro de la cartera
0.9 Recibo el tiquete del señor de la taquilla
0.10 Guardo el tiquete dentro de la cartera
0.11 Cierro la cartera
0.12 Guardo la cartera dentro del bolso
0.13 Cierro el bolso
0.14 Me retiro de la taquilla
0.15 Me dirijo a la entrada de la taquilla.
0.16 Fin.

c. Colocar la mesa para comer
0.0 Inicio
0.1 Estoy enfrente de la alacena
0.2 Abro la puerta de la alacena
0.3 Saco un par de cubiertos y un individual (Carpetas de mesa)
0.4 Cierro la puerta de la alacena
0.5 Me dirijo hacia la mesa
0.6 Coloco los cubiertos sobre la mesa y el individual
0.7 Acomodo los cubiertos sobre el individual
0.8 Fin
d. Cocer un huevo
0.0 Inicio

0.1 Estoy enfrente de la alacena de la cocina
0.2 Abro la puerta de la alacena
0.3 Saco un sartén pequeño
0.4 Me dirijo a la estufa
0.5 Coloco el sartén sobre la estufa
0.6 Abro el gas
0.7 Enciendo una boquilla de la estufa
0.8 Me dirijo al refrigerador
0.9 Estoy enfrente del refrigerador
0.10 Saco un huevo del refrigerador
0.11 Cierro el refrigerador
0.12 Le doy un golpecito a huevo para abrirlo
0.13 Agrego el huevo al sartén
0.14 Dejo fritar el huevo durante 3 minutos
0.15 Mientras se fríe el huevo abro la puerta de la alacena
0.16 Saco un plato
0.17 Cierro la puerta de la alacena
0.18 Coloco el plato sobre el mesón
0.19 Tomo el sartén
0.20 Dejo el huevo sobre el plato
0.21 Dejo el sartén dentro del lava platos
0.22 Me dirijo a la mesa
0.23 Dejo el plato sobre la mesa
0.24 Fin
Tomado de:
Joyanes, Luis; Fundamentos de programación. 2da edicion. McGrawHill.1998

e. Hacer una taza de té
0.0 Inicio
0.1 me dirijo a la cocina
0.2 Tomo el termo con agua caliente sobre el mesón de la cocina
0.3 Destapo el termo
0.4 Me dirijo a la alacena
0.5 Abro la puerta de la alacena
0.6 Tomo una taza
0.7 Cierro la puerta de la alacena
0.8 Agrego agua caliente a la taza
0.9 Abro la puerta de la alacena
0.10 Tomo la caja con las bolsitas de Té
0.11 Destapo la caja
0.12 Saco una bolsita de té
0.13 Cierro la cajita de té
0.14 Cierro la puerta de la alacena
0.15 Me dirijo hacia la taza
0.16 Añado la bolsita de té a la taza con agua
0.17 Espero a que se tiña el agua
0.18 Bebo el té
0.19 Fin
h. Reparar el pinchazo de una bicicleta
0.0 Inicio
0.1 Estoy en la una vulcanizadora con la bicicleta pinchada.
0.2 Me dirijo hacia el señor de la vulcanizadora para solicitarle ayuda con la despichada de la llanta de la bicicleta.
0.3 El mecánico se dirige a tomar sus herramientas
0.4 Toma la llave para aflojar el eje
0.5 Saca los tornillos
0.6 Los pone en el suelo
0.7 Saca la llanta con todo rin
0.8 La pone en el suelo
0.9 Saca el neumático para inflarlo en la compresora
0.10 Después de inflarlo lo mete en un barril de agua para probar el donde está el agujero
0.11 Cuando detecta se dirige a la vulcanizadora
0.12 Pone el neumático en la plancha vulcanizadora toma un parche
0.13 Lo pone en el neumático
0.14 Enciende la vulcanizadora
0.15 Lo deja por 15 minutos
0.16 Apaga la vulcanizadora
0.17 Saca el neumático de la plancha vulcanizadora
0.18 Se dirige a meter el neumático en el rin y la llanta
0.19 Toma la llanta y la manguera de aire para inflar el neumático
0.20 Toma el calibrador y calibrar
0.21 Se dirige a la bicicleta con la llanta
0.22 Mete la llanta en la bicicleta
0.23 Toma los tornillos y los mete en el eje
0.24 Toma las herramientas para atornillar
0.25 Atornilla
0.26 Guarda las herramientas
0.27 Me entrega la bicicleta
0.28 Fin
i. Pagar una multa de trafico
0.0 Inicio
0.1 Estoy en el transito
0.2 Me dirijo hacia el asesor de servicio
0.3 El asesor me solicita la cedula original
0.4 Saco la cartera
0.5 Abro la cartera
0.6 Saco la cedula
0.7 Le entrego la cedula al asesor
0.8 El asesor me recibe la cedula
0.9 Verifica los datos
0.10 El asesor imprime el recibo de la liquidación de la multa
0.11 Se entrega el recibo al consumidor
0.12 Recibo la liquidación
0.13 Me dirijo a hacia la entidad bancaria
0.14 Me dirijo a hacer fila
0.15 Después de hacer fila me dirijo hacia la persona encargada (Cajero) para pagar el monto de la multa
0.16 Saco la cartera
0.17 Abro la cartera
0.18 Saco el dinero de la cartera
0.19 Le entrego el dinero al cajero
0.20 El cajero procesa el pago
0.21 El cajero me entrega el recibo de pago
0.22 Me dirijo a la salida de la entidad bancaria
0.23 Fin
j. Cambiar un neumático pinchado (Se dispone de herramienta y gato)
0.0 Inicio
0.1 Estoy en la vulcanizadora fuera del auto
0.2 El mecánico se dirige hacia mí para brindarme su ayuda
0.3 Le comunico que necesito cambiar un neumático pinchado
0.4 El mecánico se dirige a tomar sus herramientas y el gato
0.5 El mecánico toma el gato y sus herramientas
0.6 El mecánico se dirige hacia el vehículo
0.7 El mecánico toma el gato y lo ubica en la parte inferior del vehículo
0.8 El mecánico acciona el gato para elevar un costado del vehículo
0.9 Cuando ya está elevado el vehículo se dirige a tomar una cruceta
0.10 Toma la cruceta y se dirige a sacar los tornillos
0.11 Saca los tornillos del rin
0.12 Deja los tornillos y la cruceta a un lado
0.13 Se dirige a tomar la llanta junto con el rin
0.14 Saca la llanta junto con el rin
0.15 Coloca el rin y la llanta en el suelo
0.16 Se dirige sacar la llanta del rin
0.17 Saca la llanta
0.18 Saca el neumático
0.19 Mete el neumático dentro de agua con jabón para hallar el ojal
0.20 Verifica y halla el ojal
0.21 Saca el neumático del agua
0.22 Toma un parche
0.23 Abre el parche
0.24 Pega el parche sobre el ojal para taparlo
0.25 Introduce el neumático dentro de la llanta
0.26 Se dirige a tomar una manguera que tiene aire
0.27 Infla el neumático
0.28 Introduce el rin dentro de la llanta
0.29 Se dirige a ubicar el conjunto de partes (Rin, Llanta, Neumático)
0.30 Ubica el conjunto de partes en el vehículo para proceder a ajustarlos
0.31 Toma los tornillos
0.32 Introduce los tornillos
0.33 Ajusta los tornillos con la cruceta
0.34 Deja la cruceta en el suelo
0.35 Toma la palanca del gato y la acciona pata hacer descender el costado del vehículo
0.36 Saca el gato de la parte inferior del vehículo
0.37 Verifica que todo esté bien
0.38 Me dirijo a pagarle por el servicio
0.39 El mecánico recibe el dinero
0.40 Me incorporo en el vehículo
0.41 Enciendo el vehículo
0.42 Me dirijo a tomar la vía vehicular
0.43 fin
k. Hacer palomitas de maíz en una olla puesta al fuego con aceite, sal y maíz.
0.0 Inicio
0.1 Estoy de pie frente a la estufa con la olla sobre una boquilla
0.2 Enciendo la estufa
0.3 Abro la puerta de la alacena
0.4 Saco el aceite, el maíz y la sal
0.5 Cierro la puerta de la alacena
0.6 Tomo el aceite
0.7 Destapo el aceite
0.8 Agrego el aceite en la olla
0.9 Tapo el aceite
0.10 Coloco el aceite sobre el mesón
0.11 Tomo el maíz
0.12 Agrego el maíz a la olla
0.13 Tomo la tapa de la olla
0.14 Tapo la olla
0.15 Espero a que estén listas las palomitas de maíz
0.16 Destapo la olla
0.17 Dejo la tapa sobre el mesón
0.18 Tomo la sal
0.19 Destapo la sal
0.20 Agrego sal a las palomitas
0.21 Tapo la sal
0.22 Me dirijo a la alacena
0.23 Abro la puerta de la alacena
0.24 Saco un plato
0.25 Cierro la puerta de la alacena
0.26 Coloco el plato sobre la mesa
0.27 Tomo la olla de las palomitas de maíz
0.28 Añado las palomitas a el plato
0.29 Me dirijo al lava platos
0.30 Dejo la olla dentro del lava platos
0.31 Fin

l. Cambiar el cristal roto de una ventana
0.0 Inicio
0.1 Estoy frente al cristal roto
0.2 Me dirijo a quitar la silicona
0.3 Sacar la silicona antigua
0.4 Dejo la silicona a un lado en el suelo
0.5 Me dirijo a tomar los fragmentos del vidrio roto del marco de la ventana
0.6 Quito todos los vidrios rotos del marco de la ventana
0.7 Tomo del suelo una bolsa de basura de color rojo
0.8 Meto dentro de la bolsa los vidrios
0.9 Me dirijo a tomar el nuevo vidrio
0.10 Tomo del suelo el nuevo vidrio
0.11 Instalo el nuevo vidrio en el marco de la ventana
0.12 Me dirijo a tomar la silicona del suelo
0.13 Tomo la silicona para fijar el vidrio al marco de la ventana
0.14 Destapo la silicona
0.15 Añado silicona en los bordes del marco de la ventana
0.16 Tapo la silicona
0.17 Dejo la silicona sobre el suelo
0.18 Fin
permitirá la escrritura de programas fáciles de leer y modificar
4.1 Determinar la media de una lista indefinida de números positivos, terminados con un número negativo.
/*Media de numeros positivos*/
Inicio
Var. Real. n, x, m =0
Var. Entera c =0 (contador)
Leer x
Si x < 0 entonces
Ir a media
Sino
c = c + 1
n = n + x
ir a datos
fin_si
media:
m = n/c
imprimir m
fin
b) estructura mientras
//MIENTRAS
inicio
Var entero. i, total = 0
Leer i
Mientras i<=100 Hacer
total = total + i
i = i + 1
Fin_Mientras
Escribir 'Total: ',Total;
Fin_Proceso
4.14 Los empleados de una fabrica trabajan en dos turnos:diurno y nocturno se desea calcular el jornal diario de acuerdo con los siguientes puntos:

-La tarifa de horas diurnas es de $500
-La tarifa de horas nocturnas es de $800
-Caso de ser domingo, la tarifa se incrementara en $200 en el turno diurno y $300 en el turno nocturno

inicio
var. real. ht, dia, turno, jornal = 0
escriba "dia"
escriba "turno diurno o nocturno"
escriba "horas"
leer ht, dia, turno
mientras dia <> "domingo" haga
si turno = "diurno" entonces
jornal = 500 * ht
imprima "El jornal del dia es" jornal
si turno = "nocturno" entonces
jornal = 800 * ht
imprima "el jornal nocturno es" jornal
fin_si
fin_si
fin_mientras
si día = "domingo" entonces
si turno = "diurno" entonces
jornal = 700* ht
imprimir "el jornal dominical diurno es" jornal
si-no
jornal = 1100* ht
imprima "el jornal dominical nocturno es" jornal
fin-si
fin-si
Fin
4.15 Averiguar si dados dos números leidos del teclado, uno es divisor de otro
Inicio
Var. Entero a, b, res = 0
Escriba “digite a”
Lea a
Escriba “digite b”
Lea b
res = a/b
si res = 0 entonces
imprima “b es divisor de a”
fin_si
fin
Subprogramas (subalgoritmos): procedimientos y funciones

La resolución de programas complejos se facilita considerablemente si se dividen en problemas mas pequeños (subproblemas). La solución de estos subproblemas se realiza con subalgoritmos.
Un subprograma puede realizar las mismas acciones que un programa, del mismo modo es utilizado por el programa para realizar un propósito especifico. Él recibe datos del programa y devuelve resultados.
Los subalgoritmos pueden ser de dos tipos:
Funciones: matemáticamente una función es una operación que toma uno o mas valores llamados argumentos y produce un valor denominado resultado.
Declaración de las funciones
Pocedimientos (Subrutinas): aunque la s herramientas programación muy útiles para la resolución de problema, su alcance está muy limitado.con frecuencia, se requieren subprogramas que calculen varios resultados en vez de uno, o que realicen la ordenación de una serie de números, etc. En esta situaciones la función no es apropiada y necesita disponer del otro tipo de subprograma: el procedimiento o subrutina.
Ejemplo 1
/* función factorial de 100 hasta 1000000 */

Var num entera i, fact, aux, x=0
Inicio
Para j = i hasta 1000000
Fact = fact * j
Imprimir fact
Para i = 1 hasta 100
1 * i = aux
i * aux =X
fact = X
fin_para
fin_para
fin
Ejemplo 2
/*mcd de tres números */
Inicio
Var entero a, b , c , m = 0
Escriba “ digite valor de a , b , c “
Lea a , b , c
Si a > b entonces
m = a – b
si no
m = b - a
si no
si c > m entonces
MCD = c – m
Si no
MCD = m – c
Imprima MCD
Fin si
Fin si
Fin si
Fin

Capítulo 6
LAS ESTRUCTURAS DE DATOS
Determinan la conexión lógica entre los datos y afectan el procesamiento físico de los datos.
Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos.
Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella.
Las estructuras de datos son muy importantes en los sistemas de computadora. Los tipos de datos más frecuentes utilizados en los diferentes lenguajes de programación son:
Los tipos de datos simples o primitivos significan que no están compuestos de otras estructuras de datos; los más frecuentes y utilizados por casi todos los lenguajes son: enteros, reales y carácter, siendo los tipos lógicos, subrango y enumerativos propios de lenguajes estructurados como Pascal. Los tipos de datos compuestos están construidos basados en tipos de datos primitivos; el ejemplo más representativo es la cadena de caracteres.
Clasificaión de los Datos
Los tipos de datos simples o primitivos significan que no están compuestos de otras estructuras de datos; los más frecuentes y utilizados por casi todos los lenguajes son: enteros, reales y carácter, siendo los tipos lógicos, subrango y enumerativos propios de lenguajes estructurados como Pascal. Los tipos de datos compuestos están construidos basados en tipos de datos primitivos; el ejemplo más representativo es la cadena de caracteres.

Los tipos de datos simples pueden ser organizados en diferentes estructuras de datos: estáticas y dinámicas. Las estructuras de datos estáticas son aquellas en las que el tamaño ocupado en memoria se define antes de que el programa se ejecute y no puede modificarse dicho tamaño durante la ejecución del programa. Estas estructuras están implementadas en casi todos los lenguajes: array (vectores/tablas-matrices), registros, ficheros.
Las estructuras de datos dinámicas no tienen las limitaciones o restricciones en el tamaño de memoria ocupada que son propias de las estructuras estáticas. Mediante el uso de un tipo de datos específico, denominado puntero, es posible construir estructuras de datos dinámicas que son soportadas por la mayoría de los lenguajes, y en aquellos que sí tienen estas características ofrecen soluciones eficaces y efectivas en la solución de problemas complejos -Pascal es el lenguaje tipo por excelencia con posibilidad de estructuras de datos dinámicos-. Las estructuras dinámicas por excelencia son las listas -enlazadas, pilas, colas-, árboles- binarios, árbol-b, de búsqueda binaria- y grafos.

Una característica importante que diferencia a los tipos de datos es la siguiente: los tipos de datos simples tienen como característica común que cada variable representa a un elemento; los tipos de datos estructurados tienen como característica común que un identificador (nombre) puede representar múltiples datos individuales, pudiendo cada uno de éstos ser referenciado independientemente.
ARRAY DE UNA DIMENSIÓN
(Unidimensional), también llamado vector o fila, es un tipo de datos estructurado compuesto de un número determinado de elementos, de tamaño fijo y elementos homogéneos (del mismo tipo). La característica de tamaño fijo se refiere a que el tamaño del array debe ser conocido en tiempo de compilación
DECLARACIÓN DE UN ARRAY O VECTOR
Siempre se deben declarar luego de las constantes (si existen). Un array o vector se declara por medio del tipo de array. La sintaxis es la siguiente:
Type
Nombre_array = array [rango del subíndice] of tipo;
Nombre_array: Se refiere a un nombre de identificador válido.
Tipo_subíndice: Puede ser boolean, char o un rango de tipo enumerado.
Tipo: Se refiere al tipo de los elementos del vector. Todos los elementos deben ser del mismo tipo.
ARRAY BIDIMENSIONAL
También llamado tabla o matriz es un array con dos índices. Al igual que los vectores deben ser ordinales. Se declaran de igual manera que los arrays de una dimensión.

DECLARACIÓN DE UN ARRAY BIDIMENSIONAL
Al igual que en los arrays unidimensionales o vectores, se crean con declaracionestype y var y deben ser de tipo ordinales o subrango. Se deben indicar:
- El nombre del array
- Tipo del array
- Rango permitido
Ejemplo:
Type
Tabla = array [1..25,1..4] of real;
Var
Grados : Tabla;
Para localizar o almacenar un valor en el array se deben especificar dos posiciones o subíndices, uno para la fila y otro para la columna.
DEFINICIÓN CADENA

Los datos tipo carácter y cadena permiten la manipulación de datos no numéricos.
Una cadena de caracteres o string es una serie de caracteres cuya longitud (número de caracteres que contiene) puede variar de 1 hasta 255 caracteres. Turbo Pascal tiene el tipo de dato string que almacena información de texto. Este dato se puede almacenar en constantes y en variables de cadena. Una variable de cadena está declarada para la palabra string seguida de la longitud máxima de la cadena encerrada entre corchetes.

DECLARACIÓN DE UNA VARIABLE TIPO STRING
Las variables de cadena se pueden declarar las de cualquier otro tipo, ya sea en la sección var o en tipo
Si se declara como var, se hace de la siguiente manera:
Capítulo 7
Var
Mensaje: cadena [80];
Nombre: cadena [40];
Si la cadena es declarada como tipo, haríamos la declaración así:
Tipo
Cadena80 = string [80];
Cadena40 = string [40];
Var
Mensaje: Cadena80;
Nombre: Cadena40;
Es importante recordar que si se declara como Tipo inmediatamente después, dentro de las variables, se debe declarar una variable que haga referencia al Tipo
LONGITUD DE UNA CADENA
Una cadena físicamente es una estructura de una secuencia de 0 hasta 255 caracteres de longitud. Sin embargo, la ocupación en memoria de una cadena es un número de bytes igual al de caracteres de la cadena más uno. Así la cadena:
`Programador´
tiene una longitud de 11 caracteres, entonces ocupará en memoria 12 bytes. Esto se debe a que el primer byte en una cadena, contiene la longitud de la cadena actualmente almacenada en memoria.
Supongamos que esta palabra corresponde a un dato almacenado en la variable PUESTO que fue definida de la siguiente manera:
Var
Puesto: cadena [20];
Sucede que, entonces, la longitud lógica de la variable será de 11 bytes pero la longitud física será de 20 bytes pues así fue definida.
ASIGNACIÓN DE CADENAS
A las variables de cadena, como se ha visto, se pueden dar valores con una sentencia de asignación o con una sentencia de lectura (read). Ambas situaciones se pueden describir con la ecuación:
Destino fuente
Donde destino es la cadena a la que se da un valor y fuente es la expresión de cadena que contiene el correspondiente valor. Esta ecuación actúa como la sentencia de asignación que evalúa la cadena fuente y se almacena en la variable de la cadena destino.

COMPARACIONES
Las comparaciones de cadenas de caracteres se hacen según el orden de los caracteres en el código ASCII y con los operadores de relación.
`0´ < `1´ `1´ < `2´ `8´ < `9´
`A´ < `B´ `C´ < `D´ `M´ > `B´
`a´ < `h´ `m´ > `b´ `p´ < `r´

CONCATENACIÓN
Otra operación básica que se pueda realizar con cadenas es la concatenación. La operación de concatenación. La concatenación es el proceso de combinar dos o más cadenas en una sola cadena. Turbo Pascal proporciona dos métodos independientes para realizar la concatenación.
a. Mediante el operador de concatenación (+)
Frase:= `Perro que ladra´ + `no muerde, ´ +´mientras esté ladrando´
Produciría una sola cadena almacenada en la variable Frase:
`Perro que ladra no muerde, mientras esté ladrando´
b. Mediante la función concat
Program unión;
Var
Cad1, Cad2, Cad3: cadena [40];
Inicio
Cad1:= `Programa´;
Cad2:= ` de computadora´;
Cad3:= Concat (Cad1, Cad2);
Write (`La frase completa es `, Cad3);
Fin.
Full transcript