Vous êtes sur la page 1sur 14

NDICE TEMTICO

INTRODUCCIN............................................................................................................................... 1 CAPTULO 1. COMPUTADORAS Y PROGRAMAS......................................................................... 3 1.1 DESARROLLO DE PROGRAMAS............................................................................................. 4 1.2 DISEO DE ALGORITMOS...................................................................................................... 4 1.3 DIAGRAMAS DE FLUJO......................................................................................................... 5 1.4 SEUDOCDIGOS.................................................................................................................. 6 1.4.1 Secuencias De Escape................................................................................................. 8 1.4.2 Operadores De Igualdad Y Relacionales...................................................................... 8 1.5 POSIBLES ERRORES EN EL DESARROLLO DE UN PROGRAMA................................................... 9 1.6 PROBLEMAS DE APLICACIN............................................................................................... 10

CAPTULO 1. Computadoras y Programas

Captulo 1. Computadoras y Programas

1.1

Desarrollo De Programas Un programa es un conjunto de instrucciones que indica a un procesador qu hacer y en qu orden. El programador escribe las instrucciones para una determinada tarea y el ordenador las ejecuta exactamente. El programador se vale de ciertas herramientas que le son necesarias para realizar un programa como el lenguaje de programacin. ste es el conjunto de caracteres de sintaxis prescrito para combinarlos a fin de establecer una comunicacin inteligible entre los humanos y los procesadores.

Los cinco pasos necesarios para producir programas de alto nivel son los siguientes: 1. Diseo de algoritmos: Desarrollo de la lgica bsica del programa. 2. Composicin de un programa: Describe el programa en un lenguaje de computacin. 3. Depuracin y prueba: Asegura que el programa no tenga errores y sea legible. 4. Documentacin: Hace que el programa sea fcil de usar y de entender. 5. Almacenamiento y mantenimiento: Guarda el programa que puede mejorarse conforme se gana experiencia. 1.2 Diseo De Algoritmos Los algoritmos son procedimientos para resolver problemas en trminos de: a) Las acciones a ejecutar b) El orden en que se ejecutarn dichas acciones. La especificacin del orden en que se ejecutarn las instrucciones en un programa se llama control del programa. El seudocdigo ayuda a pensar al programador el programa antes de escribirlo. Ejemplo 1.2.1 La funcin seno puede evaluarse con la siguiente serie infinita:
senx = x x3 x5 + ... 3! 5!

Escribir el algoritmo: Paso 1: Dato de entrada x Paso 2: n=10 iteraciones, i=1 Paso 3: Si n>= i, contine con el paso 4; si no, salte al paso 7

Captulo 1. Computadoras y Programas

Paso 4: Determine el valor de sen x y el error de aproximacin con las siguientes frmulas:
senxi = senx + ( 1) i 1 ( x ) 2i 1 ( 2i 1)!

i = i +1
ea = senxi senx 100 senxi

senx = senxi
Paso 5: Imprima los valores de ea y sen x. Paso 6: Regrese al paso 3. Paso 7: Termina el clculo. 1.3 Diagramas De Flujo

Un diagrama de flujo es la representacin grfica de un algoritmo y se dibuja por medio de smbolos especiales: Los smbolos usados en diagramas de flujo son:
Terminal

Representa el inicio y el final del programa.

Lneas de flujo. Proceso

Representa la lgica del flujo. Representa clculos o manipulacin de datos. Representa las entradas o salidas de datos e informacin. Representa una comparacin, pregunta o una decisin que determina las diferentes alternativas a seguir. Representa la confluencia de lneas de flujo.

Entrada/ Salida

Decisi n Conector.

Ejemplo 1.3.1

Captulo 1. Computadoras y Programas

Continuando con el problema de las series infinitas del seno se puede elaborar un diagrama de flujo de acuerdo con el algoritmo previamente realizado:
INICIO

x=

n= 10 i=1

Falso n> =i
FIN

Verdadero
1

senxi = senx +

( 1) i 1 ( x) 2 i ( 2i 1)!

i = i +1 ea = senxi senx 100 senxi senx = senxi


senx= ea=

4.4

Seudocdigos

Una alternativa para expresar un algoritmo que sea un puente de unin entre los diagramas de flujo y el cdigo de computadora es el llamado seudocdigo el cual utiliza instrucciones parecidas a las de un cdigo en lugar de los smbolos del diagrama de flujo. A continuacin se presentarn los tres tipos de estructuras de control fundamentales y algunos ejemplos de las palabras clave en cdigos de programa ms comunes: a) Secuencia: Tarea1, Tarea 2, Tarea 3

Captulo 1. Computadoras y Programas

b) Seleccin:

c) Repeticin:

If (Alternativa simple): Permite que los programas tomen decisiones con base en la verdad o falsedad de alguna condicin. If / else (Alternativa doble): Permite al programador indicar que se realizarn acciones diferentes cuando la condicin sea verdadera y cuando la condicin sea falsa. While: Permite que el programador especifique que la accin debe repetirse mientras cierta condicin permanece verdadera, puede ser verdadera o falsa. Si es verdadera, entonces se ejecuta la accin y se llevar a cabo repetidamente. Tarde o temprano la condicin ser falsa y terminar el programa.

Ejemplo 1.4.1 Para finalizar con el problema de las series infinitas del seno, a continuacin se presenta el seudocdigo perteneciente al programa de MATLAB. *Debido a que el programa no posee la funcin factorial, se incluy tambin el seudocdigo
para obtenerlo. fprintf('Introduzca un valor para x y obtener el seno de x\n') x= input('x=\n'); n=10; i= 1; senx= 0; while n >= i z= (2*i)-1; m= 1; fact= 1; if z==0 Factorial= 1; end while m <= z fact= fact * m; m= m+1; Factorial= fact; end senxi= senx + (((-1)^(i-1))*(x^((2*i)-1))/(Factorial)) ; i= i+1; ea= ((senxi-senx)/senxi)*100; senx= senxi; senx i ea end

S e c u e n c i a

Rep e t i c i n

S e l e c c i n R e p e t i c i n

1.4.1

Secuencias De Escape fprintf('Introduzca un valor para x y obtener el seno de x\n')

Captulo 1. Computadoras y Programas

fprintf(...): Es una instruccin que indica a la computadora que imprima en la pantalla la cadena contenida entre los apstrofes. \ Carcter de escape: Indica que debe enviarse a la salida un carcter especial. El siguiente carcter se combina para formar una secuencia de escape. \n Secuencia de escape: Indica que despus de imprimir en la pantalla el mensaje contenido entre los apstrofes, debe haber un salto de lnea. Es decir, se continuar en el siguiente rengln. Otras secuencias de escape comunes en diferentes programas son:
Secuencia de escape \n \t \r \a \\ \" Descripcin Salto de lnea. Coloca al cursor al inicio de la siguiente lnea Tabulacin horizontal. Mueve el cursor hasta la siguiente tabulacin Retorno de carro. Coloca el cursor al inicio de la lnea actual; no avanza a la siguiente lnea Alerta. Hace sonar la campana del sistema. Diagonal invertida. Sirve para imprimir el carcter de diagonal invertida Comillas. Sirve para imprimir un carcter de comillas.

1.4.2 Operadores De Igualdad Y Relacionales En el programa presentado en la seccin 1.4, se introdujeron algunos operadores, sin embargo, los ms usuales en diferentes programas son mostrados en la siguiente tabla:
Operador de igualdad o relacional Operadores de igualdad == != Operadores relacionales > < >= <= Ejemplo de condicin Significado de la condicin

x == y x != y x>y x<y x >= y x <= y

x es igual que y x no es igual que y x es mayor que y x es menor que y x es mayor o igual que y x es menor o igual que y

1.5

Posibles Errores En El Desarrollo De Un Programa

Los errores de programacin pueden clasificarse en varios tipos, dependiendo de la fase en que se presenten:

Captulo 1. Computadoras y Programas

Errores de sintaxis: Son errores en el texto del programa (programa o cdigo fuente). Pueden deberse a palabras mal escritas, expresiones errneas o incompletas, variables que no existen, etc. Avisos (Warnings): Se presentan comnmente en programas como C++. Los avisos, son errores, pero no lo suficientemente graves como para impedir la generacin del cdigo. No obstante, es importante corregir estos avisos, ya que el compilador tiene que decidir entre varias opciones y las decisiones no tienen por qu coincidir con lo que el programador pretende. Errores de enlazado: Normalmente se refieren a funciones que no estn definidas, ni en el cdigo ni en la librera del programa a ejecutarse. Puede que se haya olvidado definir alguna funcin o variable o se haya hecho mal. Errores de ejecucin: Se caracterizan porque el programa termina bruscamente. Estos errores son ms difciles de detectar y corregir. Existen programas auxiliares para buscar estos errores, son los llamados depuradores (debuggers). Estos programas permiten detener la ejecucin de nuestros programas, inspeccionar variables y ejecutar nuestro programa paso a paso. Esto resulta til para detectar excepciones, errores sutiles, y fallos que se presentan dependiendo de circunstancias distintas. Errores de diseo: Ocurren debido a una falla en el diseo de nuestro algoritmo. No pueden ser corregidos por el programa, sino que deben ser rediseados por el programador de manera que la computadora pueda seguir la secuencia de acciones de acuerdo con el lenguaje de programacin para el que est diseada. Es necesario tomar en cuenta que despus de ejecutar un programa, aunque este se corra e imprima resultados, verificar que stos sean correctos.

Captulo 1. Computadoras y Programas

1.6

Problemas De Aplicacin

Problema 1: La corrosin en una tubera sigue el modelo secuencial que a continuacin se presenta:
r = 1 + 2 x + 3 x 2 + 4 x 3 + ...

Efecte un diagrama de flujo y un programa que calculen r (valor total de la corrosin) en base a un nmero de dado meses y el valor de la corrosin inicial. Resuelva el problema utilizando MATLAB. Solucin: 1. Diagrama de flujo:
IN IC IO

n= x=

Suma = 1

i= 2 . . . n su m a= su m a + i * x
( i- 1 )

r=

FIN

2. Cree un archivo .m en MATLAB puede llamarlo corrosion.m 3. Realice el seudocdigo utilizando los comandos de MATLAB en el archivo corrosion.m:
n=input('Indique el nmero de meses x=input('Indique el valor de la corrosin inicial corr=1; for i=2:n corr=corr+i*x^(i-1); end disp('El valor de la corrosin total r es: disp(corr) '); ');

')

4. Grabe el seudocdigo y prubelo llamando corrosion en Command Window de MATLAB.

Captulo 1. Computadoras y Programas

Problema 2: Una compaa que realiza auditoras de control de calidad decide revisar la calidad de algunos de los lotes de produccin de una industria en base a un criterio de consideracin de lotes cuyo nmero sea primo. Efecte un programa que defina si un nmero es primo o no lo es, para ello primero realice el diagrama de flujo correspondiente. Recuerde que los nmeros primos no tienen otros divisores ms que ellos mismos y la unidad. Solucin: 1. Diagrama de flujo:
IN I C IO

n= p r im o = 1 i= 2

i<

n No

Si

E l r e s id u o d e d iv id ir n e n tr e i = 0

NO

i = i +1

Si p r im o = 0

E l n m e ro d a d o e s p r im o

N o e s p r im o E s d i v i s i b le e n t r e i

F IN

2. Cree un archivo por ejemplo calidad.m en MATLAB y su respectivo seudocdigo


n=input('Ingrese el nmero de lote '); i=2; primo=1; while i<=sqrt(n) % sqrt obtiene la raz cuadrada de un nmero if rem(n,i)==0 % rem obtiene el residuo de dividir n entre i primo=0; break end i=i+1; end if primo disp('Revise este lote de produccin.') else disp('No revise este lote de produccin') disp('Este nmero de lote es divisible por:') disp(i) end

Captulo 1. Computadoras y Programas

Problema 3: El departamento de produccin de una industria cuenta con dos maquinarias que producen diferente nmero de piezas cada una. La maquinaria 1 produce 240 piezas y la maquinaria 2, 840 piezas, se desea empaquetar las piezas en cajas evitando que alguna de las piezas quede sin empaquetar. Realice un programa y un diagrama de flujo que resuelvan el problema. Solucin: Este problema puede ser resuelto encontrando el mximo comn divisor contemplando lo siguiente para el programa: a) La funcin ser llamada mcd(x,y). b) Si x<y, se utilizar mcd(y,x) c) Incluir el resultado si alguna de las variables es igual a cero. 1. Diagrama de Flujo
IN IC IO

z = m c d (x ,y )

x< y no no

si

z = m cd (y ,x )

z = m c d ( y , r e s id u o d e d iv id ir x / y )

y= 0

si

z=x

FIN

2. Desarrollamos la funcin en MATLAB sabiendo que es importante guardarla en un fichero cuyo nombre sea igual a la funcin. Las funciones en MATLAB siguen la forma:
function [argumentos de salida]=fun(argumentos de entrada)

EL seudocdigo es el siguiente:
% z= mcd (X, Y) % X Nmero de piezas que produce la maquinaria 1. % Y Nmero de piezas que produce la maquinaria 2. % z Nmero de piezas a empaquetar en cada caja. %-----------------------------------------------------------%

Captulo 1. Computadoras y Programas

function z = mcd (x,y) if (x<y) z = mcd (y,x); elseif y==0 z = x; else z = mcd (y, rem (x,y) ); end

3. Para probar el seudocdigo, en el espacio de trabajo de MATLAB ingrese:


s=mcd(240,840) s = 120

4. Por tanto se concluye que las cajas contendrn 120 piezas cada una.

Problema 4: Se desea hacer una adquisicin de un tanque cilndrico de segunda mano para el almacenamiento de una materia prima lquida, el vendedor slo cuenta con las dimensiones del radio y la altura del tanque. El ingeniero de procesos desea saber el rea lateral y total del cilindro para disponer el lugar en donde se colocara el tanque, de igual manera desea conocer el volumen del cilindro para saber cunta materia prima puede colocar en l. Desarrolle un diagrama de flujo y un programa que calculen lo anterior. Solucin: 1. Para resolver este problema es necesario tomar en cuenta lo siguiente:
rea de un rectngulo= Base * Altura rea Lateral =Permetro del crculo * Altura

h r

Si desdoblamos el tanque nos queda un rectngulo

Altura= h

Permetro del crculo= D Como D=2r Permetro del crculo= 2 r

rea Total =rea lateral + rea de las Circunferencias rea Total =2 *r*h+ 2 *r2 Volumen= rea de la Base * Altura Volumen= *r2*h

Captulo 1. Computadoras y Programas

2. Diagrama de Flujo:
IN ICIO

r= h=

E l r a d i o d e l ta n q u e d e b e se r m a yo r a ce r o

Si

r < 0 N o

r= h < 0 N o A l = 2* *r*h A t= 2 * ( * r * h + * r 2 ) V = * r2*h ; h= Si L a a l tu r a d e l ta n q u e d e b e s e r m a yo r a ce ro

r e a l a te r a l = A l r e a to ta l = A t V o lu m e n = V

FIN

3. Seudocdigo:
r=input('Introduzca el valor del radio del tanque '); h=input('Introduzca el valor de la altura del tanque '); while r<=0 disp('El radio del tanque debe ser mayor a cero') r=input('Especifique el valor del radio '); end while h<=0 disp('La altura del tanque debe ser mayor a cero ') h=input('Especifique el valor de la altura '); end Al=2*pi*r*h; At=2*(pi*r*h+pi*r^2); V=pi*r^2*h; disp ('El rea lateral es ') disp (Al) disp ('El rea total es ') disp (At) disp ('El volumen es ') disp (V)

Vous aimerez peut-être aussi