Professional Documents
Culture Documents
INDICE
INTRODUCCION---------------------------------------------------------------1 QU ES UN PROBLEMA?---------------------------------------------------6 METODOLOGIA PARA RESOLVER UN PROBLEMA---------------------7 QU ES UN ALGORITMO?---------------------------------------------------------9
CARACTERISTICAS DE UN ALGORITMO------------------------------12
ESTRUCTURAS DE SELECCIN SINTAXIS DE LA ESTRUCTURA DE SELECCIN---------------------------------------------------------------------------------20-26 ALTERNATIVA SIMPLE(Si entonces/if-them) REGLAS DE LA ESTRUCTURA DE SELECCIN SIMPLE ESTRUCTURAS DE SELECCIN DOBLE O COMPUESTA
INCREMENTO
ESTRUCTURA DE UN PROGRAMA EN C
LIBRERIAS
VARIABLE
EJERCICIOS PROPUESTOS
INTRODUCCION
OBJETIVOS DEL LIBRO
El libro pretende ensear a resolver un problema mediante algoritmos estructurados. De igual manera da a conocer las estructuras de repeticin (mientras utilizando conceptos fundamentales de estas tales como: ,para)
Qu es una estructura de repeticin?(es aquella que le permite al programador especificar que se repita una accin, en tanto cierta condicin se mantenga verdadera. Cmo se utiliza? En donde se utiliza?
Tipos de lenguaje: Lenguaje maquina Lenguaje de bajo nivel Lenguaje de alto nivel C++ Sintaxis: Actividad de expresar un algoritmo en forma de programa
PROGRAMA
secuencia.
QU ES UN PROBLEMA?
Operacin mediante la cual se especifica claramente y de un modo concreto que se va a resolver. Cuestin que se trata de aclarar, una dificultad de solucin dudosa en la cual existe una posible solucin ,pero tambin existe la duda.
En este punto debers contestar las siguientes preguntas; Comprendes el problema? La informacin es suficiente? La informacin es suficiente? Identificas los datos de entrada? Entiendes que caractersticas debe de tener la solucin o los resultados de salida? Es recomendable que escribas el problema con tus palabras.
Analizar sus caractersticas y las diferentes alternativas de solucin, para lo cual puede ser necesario realizar una investigacin documental, por lo menos se deben tener dos opciones(a,b) . SELECCIONAR UNA DE LAS ALTERNATIVAS En este punto se debe optar por una de las soluciones planteadas ,es recomendable utilizar la que te ahorre ms tiempo ,y la que tenga ms ventajas. DES ARROLLAR LA SOLUCION Identificar subtemas o dividir el problema en mdulos adems de emplear los recursos adicionales necesarios ,tales como: Diagrama de flujo y diagrama de flujo.
EVALUAR LA SOLUCION Es conveniente que se contesten las siguientes preguntas Tu solucin es correcta? Tu respuesta satisface completamente lo establecido con el problema? Puedes comprobar el resultado? Advierte otra solucin ms sencilla? La solucin se puede extender a un caso general? LLEVARLA ACABO Una vez que se hayan respondido las preguntas anteriores y que estn sean convencedoras puedes empezar a trabajar con la resolucin de tu problema. Para la resolucin de un problema en programacin se necesita de un algoritmo pero
QU ES UN ALGORITMO?
Es una serie de pasos a seguir, libre de ambigedades problema. ,para resolver un
PROCESO: Son las acciones que se deben realizar para alcanzar el objetivo
CARACTERISTICAS DE UN ALGORITMO
Las caractersticas fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso, es decir que tiene un orden.
Un algoritmo debe ser definido. Es decir si se sigue una o varias veces da el mismo resultado.
SINTAXIS DE UN ALGORITMO:
ACOTACIONES: Lo que est de color rojo es lo que nunca va a cambiar. Lo que est de color azul es lo que si pudiera cambiar.
Introduce Escribe(________________) Pedir Dame Mensaje que va a ver el usuario este debe ser lo ms claro posible .
Solo se deber colocar una de las cuatro opciones, ya sea introduce,escribe,pedir,dame, ya que significan lo mismo
3.-Coloca la palabra lee Se coloca el nombre de la variable en la cual se almacenaran los datos ejemplo: Si se deseara obtener el rea de un circulo, lo primero que tendrs que realizar es identificar los siguientes datos: Datos de entrada= valor de pi=3.1416 Proceso= operacin (multiplicacin) Salida= rea del circulo Despus tienes que desarrollas el algoritmo el cual hasta ahora quedara as:
1.-inicio 2.-Introduce (el valor del radio del circulo) 3.-Lee rad
Mensaje
Posteriormente se coloca el nmero cuatro en el cual debers especificar todos los procesos necesarios para obtener tu propsito. 4.-Procesos 5.-Para conocer el resultado del problema se tiene que colocar la palabra imprime. 6.-Para indicar que ya se ha terminado se coloca la palabra Fin
Continuando con el desarrollo del algoritmo anterior este quedara de la siguiente manera: 1.-inicio
tendrs que colocar un asterisco(*) pues si colocas el signo por(x) el programa te producir un error.
debers imprimir.
10
DIAGRAMA DE FLUJO
Un diagrama de flujo es una de las tcnicas de representacin de algoritmos ms antigua y a la vez ms utilizada .Un diagrama de flujo es un diagrama que utiliza los smbolos (cajas)estndar en la figura 2.6 y que tiene los pasos del algoritmo escritos en esas cajas unidas por flechas ,denominadas lneas de flujo ,que indican la secuencia en que se deben ejecutar.
SIMBOLOS PRINCIPALES
11
Entrada/salida en el se escriben cualquier tipo de datos de entrada o salida. Decisin (indica operaciones lgicas o de comparacin entre datos normalmente dos segn sea el caso y tiene dos respuestas si o no. Decisin mltiple (en funcin del resultado de la comparacin se seguir uno de los diferentes caminos de acuerdo con dicho resultado). Conector(enlaza dos partes cualesquiera conector en la misma pgina) Indicador de direccin o lnea de flujo(indica el sentido de la ejecucin de las operaciones) Lnea conectora(sirve de unin entre dos smbolos) Conector(conexin entre dos puntos del organigrama situado en pginas diferentes)
Si No
Pantalla(se utiliza en ocasiones en lugar del smbolo de E/S) Impresora(se utiliza en ocasiones en lugar del smbolo de E/S) Teclado(se utiliza en ocasiones en lugar del smbolo de E/S)
Comentarios(se
utiliza
para
aadir
12
otros
FIGURA 2.6
EJEMPLO: Retomando el algoritmo que anteriormente ya se haba planteado en diagrama de flujo quedara de la siguiente forma:
Inicio
Lee rad
A=3.1416*rad*rad
13
Fin
PRUEBA DE ESCRITORIO
La prueba de escritorio es una herramienta til para entender que hace un determinado algoritmo, o para verificar que un algoritmo cumple con la especificacin sin necesidad de ejecutarlo. Bsicamente, una prueba de escritorio es una ejecucin a mano del algoritmo, por lo tanto se debe llevar registro de los valores que va tomando cada una de las variables involucradas en el mismo. A continuacin se muestra un ejemplo de prueba de escritorio del siguiente algoritmo: suma entrada menor leer menor = suma = mientras (entrada != 0) si (entrada < menor) menor fin_si suma = suma + leer fin_mientras escribir valor escribir escribir escribir suma :entero :entero :entero entrada entrada 0 haga entonces =entrada entrada entrada Menor: menor Suma:
14
INSTRUCCIN
Pantalla
leer entrada
10
menor = entrada
10
suma :=0
10
leer entrada
menor = entrada
17
leer entrada
26
leer entrada
Valor Menor
Escribir menor
Escribir Suma:
Suma:tr>
15
Escribir suma
PSEUDOCODIGO
El pseudocdigo es un lenguaje de especificacin (descripcin) de algoritmos. El uso de tal lenguaje hace el paso de codificacin final relativamente fcil. La estructura del pseudocdigo es similar al del algoritmo la diferencia de este es que en lugar de enumerarse de uno en uno se enumera de 10 en 10. El pseudocdigo naci como un lenguaje similar al ingls y era un medio de representar bsicamente las estructuras de control de programacin estructurada.
Para iniciar ahora tendrs que sustituir la palabra inicio por la palabra COMENZAR. Los procesos se escriben tal y como se encuentran en el algoritmo. Se sustituir la palabra imprimir por la palabra ESCRIBE. El fin se pasa igual. Ejemplo: Calcula el volumen de un cubo, realizando el algoritmo ,pseudocdigo y la prueba de escritorio.
16
Datos de entrada=frmula para obtener el volumen de un cubo. Proceso=multiplicacin Salida=volumen del cubo ALGORITMO: 1.-Inicio 2.-Introduce (el valor de lado) 3.-Lee lad 4.-v=lad*lad*lad 5.-ImprimeEl volumen del cubo es v 6.-Fin PSEUDOCODIGO 10.-Comenzar 20.-Pedir lado 30.-Leer lad 40.-v=lad*lad*lad 50.-Escribir v 60.-Fin PRUEVA DE ESCRITORIO Introduce valor de lado 6 V=lad*lad*lad V=6*6*6 El volumen es 36
ESTRUCTURAS DE SELECCIN
La especificacin formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una descripcin ms complicada que una lista sencilla de
17
instrucciones .Este es el caso cuando existen un numero de posibles alternativas resultantes de la evaluacin de una determinada condicin . Las estructuras selectivas se utilizan para tomar decisiones lgicas; de ah que se suelan denominar tambin estructuras de decisin o alternativas. En las estructuras selectivas se evala una condicin y en funcin del resultado de la misma se realiza una opcin u otra .Las condiciones se especifican usando expresiones lgicas .La representacin de una estructura selectiva se hace con palabras en pseudocdigo(if,then.else o bien en espaol si, entonces,si_no),con una figura geomtrica en forma de rombo o bien con un triangulo en el interior de una caja rectangular. Las estructuras alternativas o selectivas pueden ser: Simples Dobles Mltiples
Acotaciones: Lo que est de color morado nunca va a cambiar. Lo que est de color anaranjado si va a cambiar.
Si condicin
18
Diagrama de flujo:
Acciones
19
1. Siempre se deben respetar las sangras 2. El si se debe cerrar colocando FIN SI. Para enumerar el pseudocdigo en la estructura simple se realiza igual como ya se haba mencionado anteriormente. ESTRUCTURAS DE SELECCIN DOBLE O COMPUESTA Esta estructura conocida como estructura de seleccin doble o compuesta(si.entonces-si_no/if-then-else)se desarrolla cuando se tienen dos acciones una verdadera y otra falsa. Si la condicin C es verdadera, se ejecuta la accin S1 y, si es falsa ,se ejecuta la accin S2
DIAGRAMA DE FLUJO
Si Condicion? No
Accion S1
Accion S2
La enumeracin del pseudocdigo de esta estructura selectiva es la misma solo que si se tienen sangras dentro de un proceso se coloca la enumeracin y posteriormente .1. Ejemplo: Realizar un algoritmo,diagrama de flujo y pseudocdigo para el siguiente planteamiento.
20
En la preparatoria del CECYTEM se le otorgara una beca del 50% a los alumnos que tengan un promedio entre 8 y 9;al realizar el programa la salida de este deber decir beca del 50% .A los alumnos que tengan un promedio mayor de 9 o igual a 10 se les otorgara una beca del 100%. Algoritmo: 1. 2. 3. 4. Inicio Dame promedio Lee prom Si prom>=8 y prom<=9 entonces 4.1 imprime Tiene una beca del 50% Se enumero de esta manera para indicar que este proceso esta dentro de la estructura de seleccin. OJO: Se deben de respetar las sangras para evitar confusiones. 5.- De lo contrario Cuando se tengan dos condiciones se deber colocar la palabra de lo contrario,y este tambin se enumera pero no dentro del si que primero se coloco si no que este es independiente pues ya no pertenece al si que antes ya se haba colocado. 5.1Si prom>9 y prom =10 un si y dentro de ese si todos los procesos necesarios. 5.1.1 Imprime tienes una beca del 100% Se vuelve a colocar
Esta enumeracin
Se coloco asi por que indica que el proceso que se va a realizar pertenecen al si. Fin si Por penltimo se cierran los si aqu se puede visualizar que se cerraron 2 si por que 2 fueron los que se abrieron ,por cada si que abras debes de cerrarlo,ya sea antes de colocar el fin o bien al abrir un si y colocar los procesos que se debern ejecutar en ese si cerrarlo. Fin si 6.- Fin
21
ojo: siempre que tengas un proceso dentro del si se enumera como el 5.1.1 o para evitar confusiones no enumeres los procesos que estn dentro del si pero respeta las sangras. Ejemplo: Algoritmo: 1. 2. 3. 4. Inicio Dame promedio Lee prom Si prom>=8 y prom<=9 entonces imprime (Tiene una beca del 50%)
5.- De lo contrario Si prom>9 y prom =10 Imprime (tienes una beca del 100%) Fin si Fin si 6.- Fin PSEUDOCODIGO: 10.-Comenzar 20.-Pedir promedio 30.-Lee prom 40.-Si prom<=8 y prom<=9 entonces 40.10.-Imprime (tiene beca del 50%) 50.-De lo contrario 50.10Si prom>9 y prom =10 50.20 Imprime (tienes una beca del 100%) Fin si
22
Condicin
.. Accin Sn
PSEUDOCODIGO
El pseudocdigo para esta estructura de seleccin mltiple es igual al de la estructura de seleccin doble.
ESTRUCTURA DE REPETICION
Se utiliza en aquellos aplicaciones en las cuales una operacin o con junto de ellas deben repetirse muchas veces. Las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces se denominan blucles y se denomina iteracin al hecho de repetir la ejecucin de una secuencia de acciones. Las dos principales preguntas a realizarse en el diseo de un bucle son: Qu contiene el bucle? O en otras palabras que pasos secuenciales se deben repetir.
23
Cuntas veces se deben repetir? Existen diferentes tipos de estructuras de repeticin tales como:
En esta ocasin se explicaran solo dos estructuras de repeticin para y mientras. La estructura repetitiva mientras (en ingls while ) es aquella en el que el cuerpo del bucle se repite mientras se cumple una determinada condicin. Cuando se ejecuta la instruccin mientras, la primera cosa que sucede es que se evala la condicin (una expresin booleana).Si se evalua falsa no se toma ninguna accin y el programa prosiguen la siguiente instruccin del bucle . Booleana=verdadero o falso Si la expresin booleana es verdadera ,entonces se ejecuta el cuerpo del bucle ,despus de lo cual se evalua de nuevo la expresin booleana.Este proceso se repite una y otra vez mientras la expresin booleana(condicin) sea verdadera.
24
DIAGRAMA DE FLUJO:
Acciones
Condicin
verdadera falsa
El diagrama anterior representa el diagrama de flujo de la sentencia de repeticin mientras .Este representa lo siguiente: Mientras la condicin sea verdadera se van a realizar las acciones necesarias ,mientras esta sea falsa no se realiza nada y se prosiguen a los pasos siguientes del bucle.
INCREMENTO
Existen diferentes maneras de incrementar o de crementar un variable. En esta ocasin solo les presentaremos dos de las cuales solo una se explicara a detalle. 1.-Variable=variable+numero de incremento. 2.-variable++incrementar en un valor.
25
Para decremento es lo mismo pero solo se modifica el signo positivo cambia a negativo. 1.-variable=variable-numero de incremento Variabledecremento en una variable. La primera forma de incrementar se realiza de la siguiente manera: 1.-Primero se coloca una variable la que sea ejemplo: J 2.-Despues se coloca el signo igual(=) 3.-Posteriormente se repite la variable que al inicio se declar para incrementar en esta ocasin fue la letra j. 4.-Se coloca el nmero de incremento este va desde 1 hasta.n. Pero debers de tener cuidado con tus incrementos ya que en ocasiones no resulta lo que deseabas.
1.-Antes de colocar el mientras se debe inicializar una variable con un valor. 2.-Antes del fin mientras debe incrementarse o excrementarse la variable.
26
Valor o variable
Mientras
condicion
Hacer Acciones
Fin mientras
Ejemplo: Realizar un algoritmo que permita calcular el promedio de tres calificaciones: Si se realiza un algoritmo lineal quedara as: 1.-Inicio
27
2.-Introduce calificacin 3.-Lee calf 4.-Introduce calificacin 5.-Lee calif2 6.-Introduce calificacion 7.-Lee calif3 8.-suma=suma+calif 9.--Prom=suma/3 10.--Imprime el promedio es Prom 11-Fin
1.-Inicio 2.-i=1 3.-mientras i<=3 aqu se inicializa una variable con un valor Se coloca el mientras enseguida la condicin.
OJO : La variable con la cual inicialices es la misma con la cual vas a colocar la condicin. 3.1-Introduce calificacin 3.2.-Lee calif 3.3.-suma=suma+calif En este apartado se coloc suma=suma +calif: porque queremos obtener la suma de todas las calificaciones para poder obtener el promedio. Al principio suma=0 por que an no se ha sumado nada, despus de nuestra primera suma se guarda
28
el valor y este se toma como referencia para cundo se vuelva a realizar este proceso ejemplo: Suma=suma+calif Suma=o+8 Suma=8+ la siguiente calificacin que se baya a introducir 3.4.-i=i+1 aqu variable con la cual inicializaste. Fin mientras se cierra el mientras para indicar que aqu se termina la estructura de repeticin y el programa continu con los siguientes pasos mientras la condicin no se cumpla. 4.-Prom=suma/3 5.-Imprime el promedio es Prom 6.-Fin PRUEBA DE ESCRITORIO: I=1 1 Mientras si<=3 si Introduce calificacin 6 Suma=suma+calf I=i+1 incrementas o decrementas la
Suma=0+6 I=1+1 Suma=6 I=2 2 si 8 Suma=6+8 I=2+1 Suma=14 I=3 3 si 10 Suma=14+10 I=3+1 Suma=24 I=4 Como la condicin ya no se cumple el programa se pasa a los siguientes pasos: Prom=suma/3 Prom=24/3 Prom=8 Imprime(El promedio es) 8
29
Como se puede visualizar la estructura de repeticin mientras nos ayuda a reducir pasos ,tal vez en este ejemplo no se distinga la diferencia pero si hablamos de cantidades ms elevadas la diferencia se notara. El incremento fue de uno pero Qu sucedera si en lugar de uno incrementara la variable con un valor de 2? RESPUESTA=Nuestro algoritmo no sera correcto ya que nosotros deseamos obtener 3 calificaciones y si iniciamos a contar a partir del dos solo faltara uno para el tres ;as que solo obtendramos una solo calificacin y esta se dividira entre 3 algo ilgico. Es por ello que cundo queramos incrementar una variable con un valor distinto a uno lo primero que se tiene que realizar es verificar que efectivamente obtendrs el nmero de datos que requieres. Si la variable se incrementara con un valor de dos es necesario modificar el valor de la condicin que se tiene despus del mientras . Ejemplo: 1.-Inicio 2.-i=2 3.-mientras i<=6 3.1-Introduce calificacin 3.2.-Lee calif 3.3.-suma=suma+calif 3.4.-i=i+2 Fin mientras 4.-Prom=suma/3 5.-Imprime el promedio es Prom 6.-Fin Se tendra que modificar el dato 2.3,3,4
30
Para
hasta condicin
;
incremento o decremento
La estructura de repeticin para es igual a la estructura de repeticin mientras solo que en esta ltima en lugar de inicializar una variable al inicio antes de abrir el para como se haca con el mientras ,aqu primero abres el para y despus colocas una variable ,la palabra hasta ,la condicin,(;) finalmente incrementas o decrementas segn sea el caso. EJEMPLO: Obtener el promedio de cinco calificaciones: 1.-inicio 2.-Para x=1 hasta x<5 ; x=x+1 2.1 Introduce calificacin 2.2 Lee calif 2.3.-Suma=suma+calif 3.-Prom=Suma/5 4.-Imprime (el promedio es) Prom 5.-Fin PRUEBA DE ESCRITORIO:
31
X=1 1 2 3 4 5
Hasta x<=5 si si si si si
X=x+1 X=1+1 X=2 X=2+1 X=3 X=3+1 X=4 X=4+1 X=5 X=5+1 X=6
Dame calif 9 10 10 10 5
Suma=suma+calif Suma=0+9 Suma=9 Suma=9+10 Suma=19 Suma=19+10 Suma=29 Suma=29+10 Suma=39 Suma=39+5 Suma=44
Como la condicin ya no se cumple el programa se salta a los pasos siguientes: Prom=suma/5 Prom=44/5 Prom=8.8 Imprime (el promedio es) 8.8
PROGRAMA: Un programa informatico es un conjunto de instrucciones que una vez ejecutadas realizaran una o varias tareas, dictadas por el programador en una computadora. Variable: una variable puede verse simplemente como un hueco en el que se puede almacenar un objeto de un determinado tipo al que se le da un cierto nombre.para poderla utilizar solo hay que definirla indicando cual era su nombre y cual ser el tipo de datos que podr almacenar, lo que se hace siguiendo la siguiente sintaxis: <tipo de variable> <nombre variable> Constante: una constante es un smbolo que representa el valor especifico de un dato. El formato de las constantes depende del tipo de datos del valor que representa.las constantes se llaman tambin variables ESTRUCTURA DE UN PROGRAMA EN C
32
1.- Definir las libreras Son funciones propias del lenguaje para que reconozca las palabras reservadas y verifique sus sintaxis 2.- Variables globales y/o funciones 3.-Inicio del programa 4.- Variables locales 5.-Instrucciones o acciones 6.- Fin del programa 7.-Funcin LIBRERIAS #(preprocesador):carga los archivos necesarios include: Palabra reservada stdio.h: Se utiliza para cargar los datos de entrada y de salida math.h: Se utiliza para poder utilizar funciones matemticas complejas como lo es el seno,coseno y tangente. conio.h: Se utiliza para que el programa mantenga en pantalla y el resultado que se desea mostrar y para checar el retorno de un valor stdlib.h: Es auxiliar de la librera y adems se encarga de validar datos de tipo char iostream.h: Tiene la misma funcin que la librera stdio, pero se utiliza para programas en C++
33
Qu es?
Globales:
Es una posicin de memoria que almacena un valor que se utiliza en un programa; esta puede variar su valor.
Son aquellas que se declaran antes del inicio del programa y despus del mientras ,son reconocidas en todo el programa. Locales: Se declaran despus del inicio del programa ,nicamente se reconoce en el bloque/modulo donde fue declarada.
VARIABLE
Caractersticas:
Int=%d Short=%d Long=%d
Deben ser declaradas antes de usarla y del tipo de dato que va a almacenar. No debe tener espacios No debe empezar con un nmero. No debe tener caracteres especiales. No se deben repetir.
Letras:
Chard=%S
Tal y como fue declarada debe ser mandada a llamar ,porque distingue entre maysculas y minsculas
34
VARIABLE
ojo: Todas las instrucciones en c al finalizar lleva; Que significa finalizar. El; se coloca siempre cuando se tiene un proceso , escribe(printf) , lee(scanf)
35
Nombre de la variable que vamos a imprimir printf( , ); Mensaje con el tipo de dato que tiene la variable
Puede ser inicializada en el momento en que se declara o despus de haber sido declarada
CICLO DE VIDA SINTAXIS PARA LEER UN VALOR scanf( Palabra reservada INICIO DEL PROGRAMA Se comienza con la palabra: main( ){ , & Tipo de dato ) Nombre de la variable
1.- Nace: Es cuando se declara la variable 2.- Desarrolla: Es al momento que se ejecutase le asigna o toma un valor 3.- Muere: Se da cuando termina programa
PALABRAS CLAVE ANTES DE FINALIZAR getch( ); return 0; Para mantener el valor en pantalla Retornar
36
EJERCICIOS PROPUESTOS Obtener el promedio de 10 calificaciones con su respectivo algoritmo, prueba de escritorio y pseudocdigo. Obtener el rea de un tringulo. Obtener el rea de un rectngulo.
37