Você está na página 1de 54

ALGORITMOS (APUNTES)

Catedrtico: Ing. Juan Jos Bedolla Solano

INSTITUTO TECNOLOGICO DE ACAPULCO CURSO DE HOMOGENEIZACIN: APUNTES DE UNIDADES Y EXMENES VISTOS EN EL PERIODO.

INGENIERA EN SISTEMAS COMPUTACIONALES: "ALGORITMOS" CATEDRTICO: INGENIERO JUAN JOS BEDOLLA SOLANO

TRABAJO ELABORADO POR EQUIPO: Equipo 6 -INTEGRANTES: *JOSE JUNIOR VERA CARVAJAL *JOSE FERNANDO GARCA ORTZ *JOS ANTONIO MENDOZA CASTRO *JOS MANUEL SANCHEZ GALVEZ *ONESIMO RAMOZ MAGALLN *CARLOS ALBERTO CRUZ SABINO

FECHA: LUNES 01/08/2011 AULA: 203

TEMARIO Unidad I.- Metodologa para la solucin de problemas por medio de computadora 1.1 ...Introduccin 1.2 ...De los problemas a los programas 1.3 ...Definicin de lenguaje 1.4 ...Definicin de algoritmos 1.5 ...Algoritmos cotidianos 1.6 ...Definicin de lenguajes algortmicos 1.7 ...Definicin de problemas 1.8 ...Anlisis de datos del problema 1.9 ...Diseo de la solucin 1.10 ..Codificacin 1.11 ..Prueba y depuracin 1.12 ..Documentacin 1.13 ..Mantenimiento Unidad II.- Entidades primitivas para el diseo de instrucciones 2.1...Tipos de datos 2.2...Operadores y Operandos 2.3...Precedencia 2.4...Expresiones 2.5...Identificadores como localidades de memoria Unidad III.- Tcnicas para la formulacin de algoritmos 3.1...Diagramas de Flujo 3.2...Pseudocdigos 3.3...Diagramas estructurados 3.4...Complejidad de los algoritmos 3.4.1...Tiempo de ejecucin de un algoritmo

3.4.2...Complejidad en espacio

Unidad IV.- Estructuras algortmicas 4.1...Secuenciales 4.1.1...Asignacin 4.1.2...Entrada 4.1.3...Salida 4.2...Condicionales 4.2.1...Simple 4.2.2...Mltiples 4.3...Vectores 4.4...Matrices Unidad V.- Introduccin a la programacin de algoritmos 5.1...Introduccin al lenguaje de programacin C++ 5.2...Estructura bsica de un programa en C++ 5.3...Codificacin de estructuras de control

UNIDAD 1.- METODOLOGIA PARA LA SOLUCION DE PROBLEMAS POR MEDIO DE COMPUTADORAS. 1.1...INTRODUCCION ~Investigacin (Tarea) [Generaciones de computadoras, Que es un ingeniero?, Que es un ingeniero en sistemas computacionales?] *Primera Generacin (1951 a 1958) Las computadoras de la primera Generacin emplearon bulbos para procesar informacin. La programacin se realizaba a travs del lenguaje de mquina. Las memorias estaban construidas con finos tubos de mercurio lquido y tambores magnticos. Los operadores ingresaban los datos y programas en cdigo especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rpidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnticas. Estos computadores utilizaban la vlvula de vaco. Por lo que eran equipos sumamente grandes, pesados y generaban mucho calor. La Primera Generacin se inicia con la instalacin comercial del UNIVAC construida por Eckert y Mauchly. El procesador de la UNIVAC pesaba 30 toneladas y requera el espacio completo de un saln de 20 por 40 pies.

Segunda Generacin (1959-1964) El Transistor Compatibilidad Limitada sustituye la vlvula de vaco utilizada en la primera generacin. Los computadores de la segunda generacin ern ms rpidas, ms pequeas y con menores necesidades de ventilacin. Estas computadoras tambin utilizaban redes de ncleos magnticos en lugar de tambores giratorios para el almacenamiento primario. Estos ncleos contenan pequeos anillos de material magntico, enlazados entre s, en los cuales podan almacenarse datos e instrucciones. Los programas de computadoras tambin mejoraron. COBOL desarrollado durante la 1era generacin estaba ya disponible comercialmente. Los programas escritos para una computadora podan transferirse a otra con un mnimo esfuerzo. El escribir un programa ya no requera entender plenamente el hardware de la computacin. Tercera Generacin (1964-1971) Circuitos Integrados, Compatibilidad con Equipo Mayor, Multiprogramacin, Minicomputadora. Las computadoras de la tercera generacin emergieron con el desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan miles de componentes electrnicos, en una integracin en miniatura. Las computadoras nuevamente se hicieron ms pequeas, ms rpidas, desprendan menos calor y eran energticamente ms eficientes. Antes del advenimiento de los circuitos integrados, las computadoras estaban diseadas para aplicaciones matemticas o de negocios, pero no para las dos cosas. Los circuitos integrados permitieron a los fabricantes de computadoras incrementar la flexibilidad de los programas, y estandarizar sus modelos.

La IBM 360 una de las primeras computadoras comerciales que us circuitos integrados, poda realizar tanto anlisis numricos como administracin procesamiento de archivos. Los clientes podan escalar sus sistemas 360 a modelos IBM de mayor tamao y podan todava correr sus programas actuales. Las computadoras trabajaban a tal velocidad que proporcionaban la capacidad de correr ms de un programa de manera simultnea (multiprogramacin).

Cuarta Generacin (1971 a 1981) Microprocesador, Chips de memoria, Micro miniaturizacin. Dos mejoras en la tecnologa de las computadoras marcan el inicio de la cuarta generacin: el reemplazo de las memorias con ncleos magnticos, por las de chips de silicio y la colocacin de Muchos ms componentes en un Chip: producto de la micro miniaturizacin de los circuitos electrnicos. El tamao reducido del micro procesador y de chips hizo posible la creacin de las computadoras personales (PC). En 1971, intel Corporation, que era una pequea compaa fabricante de semiconductores ubicada en Silicon Valley, presenta el primer microprocesador o Chip de 4 bits, que en un espacio de aproximadamente 4 x 5 mm contena 2 250 transistores. Este primer microprocesador que se muestra en la figura 1.14, fue bautizado como el 4004. Quinta generacin la inteligencia artificial (1982-1989) Cada vez se hace ms difcil la identificacin de las generaciones de computadoras, porque los grandes avances y nuevos descubrimientos ya no nos sorprenden como sucedi a mediados del siglo XX. Hay quienes consideran que la cuarta y quinta generacin han terminado, y las ubican entre los aos 1971-1984 la cuarta, y entre 19841990 la quinta. Ellos consideran que la sexta generacin est en desarrollo desde 1990 hasta la fecha. Siguiendo la pista a los acontecimientos tecnolgicos en materia de computacin e informtica, podemos puntualizar algunas fechas y caractersticas de lo que podra ser la quinta generacin de computadoras.Con base en los grandes acontecimientos tecnolgicos en materia de microelectrnica y computacin (software) como CADI CAM, CAE, CASE, inteligencia artificial, sistemas expertos, redes neuronales, teora del caos, algoritmos genticos, fibras pticas, telecomunicaciones, etc., a de la dcada de los aos ochenta se establecieron las bases de lo que se puede conocer como quinta generacin de computadoras. Hay que mencionar dos grandes avances tecnolgicos, que sirvan como parmetro para el inicio de dicha generacin: la creacin en 1982 de la primera supercomputadora con capacidad de proceso paralelo, diseada por Seymouy Cray, quien ya experimentaba desde 1968 con supercomputadoras, y que funda en 1976 la Cray Research Inc.; y el anuncio por parte del gobierno japons del proyecto quinta generacin, que segn se estableci en el acuerdo con seis de las ms grandes empresas japonesas de computacin, debera terminar en 1992.

Sexta generacin 1990 hasta la fecha Como supuestamente la sexta generacin de computadoras est en marcha desde principios de los aos noventas, debemos por lo menos, esbozar las caractersticas que deben tener las computadoras de esta generacin. Tambin se mencionan algunos de los avances tecnolgicos de la ltima dcada del siglo XX y lo que se espera lograr en el siglo XXI. Las computadoras de esta generacin cuentan con arquitecturas combinadas Paralelo / Vectorial, con cientos de microprocesadores vectoriales trabajando al mismo tiempo; se han creado computadoras capaces de realizar ms de un milln de millones de operaciones aritmticas de punto flotante por segundo (teraflops); las redes de rea mundial (Wide Area Network, WAN) seguirn creciendo desorbitadamente utilizando medios de comunicacin a travs de fibras pticas y satlites, con anchos de banda impresionantes. Las tecnologas de esta generacin ya han sido desarrolla das o estn en ese proceso. Algunas de ellas son: inteligencia / artificial distribuida; teora del caos, sistemas difusos, holografa, transistores pticos, etctera. El ingeniero Su funcin principal es la de realizar diseos o desarrollar soluciones tecnolgicas a necesidades sociales, industriales o econmicas. Para ello el ingeniero debe identificar y comprender los obstculos ms importantes para poder realizar un buen diseo. Algunos de los obstculos son los recursos disponibles, las limitaciones fsicas o tcnicas, la flexibilidad para futuras modificaciones y adiciones y otros factores como el coste, la posibilidad de llevarlo a cabo, las prestaciones y las consideraciones estticas y comerciales. Mediante la comprensin de los obstculos, los ingenieros deducen cules son las mejores soluciones para afrontar las limitaciones encontradas cuando se tiene que producir y utilizar un objeto o sistema. El ingeniero en sistemas computacionales resuelve la demanda de profesionales requeridos para enfrentar la era de la informacin, especializndose en la tecnologa de informacin, y desarrollando las habilidades necesarias para adquirir, asimilar y usar las tecnologas adecuadas y/o de vanguardia para proponer y materializar soluciones con una visin integral de los requerimientos de las organizaciones. El ingeniero en sistemas computacionales de la era de la informacin manejar como elementos clave de su actividad profesional la integracin y alineacin de estrategias, cultura organizacional, habilidades, tecnologas, sistemas, procesos, tareas y resultados.

1.2...DE LOS PROBLEMAS A LOS PROGRAMAS PROBLEMA ALGORITMO ANALISIS DE DATOS DISEO DE LA SOLUCIN

MANTENIMIENTO

PRUEBA Y DEPURACIN

DOCUMENTACIN

PUEDE -El camino obvio RESOLVERSE -El camino metdico ATRAVEZ DE LAS -El camino Inteligente SIGUIENTES FORMAS -El camino milagroso Casos verdaderamente extraos Compresin de los elementos implicado Metodologa enseada Conocimientos bsicos de programacin

NOTA PERSONAL Sistema biomtrico: Son sistemas que reconocen las caractersticas de un humano. Editor: Software nos permite la codificacin o escritura de sentencias o instrucciones. Depuracin: Eliminar o resumir el texto. Documentacin: Comentarios que escribimos para saber qu hace cada parte del cdigo o programa.

Problema Lenguaje Lenguaje de Programacin Algoritmos Algoritmos Cotidianos Lenguaje Algortmico

*Lenguaje una forma de comunicacin - Cdigo Semitico -Gramtica o sintaxis (forma de escribir)

-Suceso *Problema -Caso -Situacin dada

Soluble A travs de una metodologa Determinada modelo a seguir

-Cuestin que propone

1.3...DEFINICIN DE LENGUAJE

LENGUAJE DE PROGRAMACIN -FORMA DE COMUNICARSE CON UNA COMPUTADORA -TIENE SUS PROPIAS PALABRAS RESERVADAS -SE PUEDEN COMBINAR SIMBOLOR -SEGUIR LA GRAMATICA DEL LENGUAJE UTILIZADO -EJEMPLO DE L.P.

* * * * * * *

ADA COBOL JAVA C+T VISUAL BASIC TURBO C PASCAL

1.4...DEFINICIN DE ALGORITMOS

Algoritmo: Serie de pasos ordenador para resolver un problema


-Se acostumbra a enumerar -Se utiliza el lenguaje comn -Es finito -Serie sucesiva

Ejemplo de algoritmo: Problema: Llegar a la clase de algoritmo temprano en el ITA 1. 2. 3. 4. 5. 6. 7. 8. 9. Pararse temprano a las 06:00 am Arreglase en general Salir de mi casa ya con todo lo que me tengo que llevar para el ITA Caminar hacia los taxis y subirme a uno Bajar del taxi Entrar al ITA Subir todas las escaleras Entrar al saln Tomar asiento

1.5... ALGORITMO COTIDIANO: En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver problemas. Por ejemplo; Podra ser de cambiar la llamada de un automvil: 1. Traer el gato 2. Levantar el carro con el gato 3. Aflija atornillador 4. Quitar la llanta 5. Poner la llanta de redaccin 6. Poner los tornillos 7. Apretar los tornillos 8. Bajar el carro

1.6...DEFINICIN DE LENGUAJE ALGORTMICO: Es aquel por medio del cual se realiza un anlisis previo del problema a resolver y encontrar un mtodo que permita resolverlo. El conjunto de todas las operaciones a realizar y el orden en que deba efectuarse se le denominan algoritmo. Los algoritmos pueden describirse utilizando diversos lenguajes, cada uno de estos lenguajes permiten describir los pasos con mayor o menos detalle. La clasificacin de los lenguajes para algoritmos pueda anunciarse de las siguientes maneras: -Lenguaje Natural -Lenguaje de diagrama de flujo -Lenguaje natural de programacin de algoritmos Un ejemplo de lenguajes algortmicos seria el sistema biomtrico para el control de acceso al ITA

1.8... ANLISIS DE DATOS DEL PROBLEMA Es la actividad de transformar un conjunto de datos con el objetivo de poder verificarlos muy bien dndole al mismo tiempo una razn de ser o un anlisis racional. Es analizar los datos de un problema clasificarlos. En general el anlisis de datos es la recoleccin de informacin bsica necesaria y documentacin de los problemas para definir un planeta sobre qu hacer y que vamos a necesitar ya sean los costos, beneficiar, riesgos, etc. 1.9...DISEO DE LA SOLUCIN Es la representacin de la solucin del problema ya sea X un modelo a seguir o por un prototipo. Tambin en el diseo de la solucin podemos utilizar herramientas para representar estos modelos: *Tipo de Software *Tipo de Hardware *Tcnicas de programacin a) Diagrama de flujo b) Diagrama Nassi c) Pseudocdigos 1.10...CODIFICACIN Es la operacin de escribir la solucin del problema de acuerdo a la lgica del diagrama de flujo o pseudocdigo en una serie de instrucciones detalladas, a un cdigo reconocible por la computadora. La serie de instrucciones detalladas se le conoce como cdigo de fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel. Nota: Cdigo fuente es lo que se escribe. Investigar 1. 2. 3. 4. 5. 6. 7. 8. Qu es un traductor? Qu es un compilador? Qu es n interprete? Qu es un programa? Qu es programacin? Qu es sistema operativo? Qu es lenguaje maquina? Qu es editor?

Respuestas 1. Este se refiere a una aplicacin computacional capaz de traducir una palabra, grupos de palabras o archivar completar desde su idioma original a otro deseada.

2. Es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generado un programa equivalente que la maquina ser capaz de interpretar, usualmente el segundo lenguaje es lenguaje mquina, pero tambin puede ser simplemente texto. Este proceso de traduccin se conoce como complicacin.

3. Es un programa informtico capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los interpretes de diferencia de los compiladores en que mientras estos traducen un programa desde su descripcin en un lenguaje de programacin al cdigo mquina del sistema, los interpretes solo realizada la traduccin a medida que sea necesaria instruccin por instruccin.

4. Es un conjunto de instrucciones que una vez ejecutadas realizara una o varias tareas en una computadora. Sin programas, estas mquinas no pueden funcionar. Al conjunto general de programas se le denomina software, que ms genricamente se refiere al equipamiento lgico o soporte lgico de una computadora digital.

5. es el proceso de disear, escribir, probar, depurar y mantener el cdigo fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje de programacin. El propsito de la programacin es crear programas que exhiban un comportamiento deseado

6. Es el programa o conjunto de programas que efecta la gestin de los procesos bsicos de un sistema informtico y permite la normal ejecucin del resto de las operaciones.

7. Es el sistema de cdigos directamente interpretable por un circuito micro programable, como el microprocesador de una computadora en el micro controlador de un autmata. 8. Es el programa que permite crear y modificar archivar digitalizar compuestos nicamente por texto sin formato conocidos comnmente como archivos de texto o texto plano.

1.11...PRUEBA Y DEPURACIN Una vez que se ha obtenido el programa ejecutable este es sometido a aprueba de fin de determinar si resuelve o no el problema planteado en forma satisfactoria. Las pruebas que se le aplican son diversas y generalmente dependen del tipo de problema que se est resolviendo. Se inicia la prueba de un programa introduciendo datos vlidos, invlidos o incongruentes y observando cmo reacciona en cada uno ocasin. El proceso de depuracin consiste a localizar los errores y corregirlos en caso de que estos existan. Si no existen errores puede entenderse la depuracin como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeo del programa. Dentro de este nivel tambin se encuentra el compilador, interprete, sistema operativo, etc. NOTA: El compilador traduce de cdigo fuente a cdigo de ensamblaje. Y a su vez verifica errores/corregirlos despus el intrprete traduce el cdigo de ensamblaje o cdigo mquina, que este ltimo es el que entiende la mquina.

Compilador: + verifica los posibles errores: como escritura, sintaxis. + es un programa. + es un traductor de cdigo fuente a cdigo de ensamblaje. + El cdigo de ensamblaje es uno de nivel inferior. Interprete: + Es un programa que analiza y ejecuta el programa desarrollado. + Trabaja con 3 lenguaje: Cdigo fuente, cdigo objeto, y cdigo mquina. + Lee y traduce a la vez ejecuta instruccin por instruccin. Traductor: + Es un programa. + Traduce de un lenguaje a otro, siempre el cdigo de entrada es de un mayor nivel que el de salida. + Ejemplo lenguaje ensamblador. Sistema operativo: + Plataforma de trabajo ambiente de trabajo. + Gestin de hardware y software.

1.12...DOCUMENTACIN Es la descripcin de un programa para que pueda ser ledo por una persona. La documentacin explica el propsito la lgica, las redacciones y la codificacin del programa tambin concluyen instrucciones sobre el funcionamiento del programa las rdenes y entradas necesarias para hacer funcionar.

1.13...MANTENIMIENTO Esta parte se encarga de mantener, mejorar, actualizar y hacer nuevas versiones del programa desarrollando de acuerdo a lo deseado por el usuario a utilizar el software. El mantenimiento de software consiste en el proceso de mejora y optimizacin del software desplegado (es decir; revisin del programa), as como tambin correccin de los defectos. La fase de mantenimiento de software involucra cambios al software en orden de corregir defectos y dependencias encontradas durante su uso tanto como la adicin de nueva funcionalidad para mejorar la usabilidad y aplicabilidad del software. Las personas involucradas en la fase de mantenimiento de software esperan trabajar en los defectos detectados, ubicarlos y preparar un nuevo lanzamiento del software, conocido como un lanzamiento de mantenimiento, el cual resolver los temas pendientes. Tipos de mantenimiento

Perfectivo: Son las acciones llevadas a cabo para mejorar la calidad interna de los sistemas en cualquiera de sus aspectos: reestructuracin del cdigo, definicin ms clara del sistema y optimizacin del rendimiento y eficiencia. Evolutivo: Son las incorporaciones, modificaciones y eliminaciones necesarias en un software para cubrir la expansin o cambio en las necesidades del usuario. Adaptativo: Son las modificaciones que afectan a los entornos en los que el sistema opera, por ejemplo, cambios de configuracin del hardware, software de base, gestores de base de datos, comunicaciones, etc. Correctivo: Son aquellos cambios precisos para corregir errores del software.

EXAMEN DE DIAGNOSTICO CURSO DE HOMOGENEIZACIN 2011 Fecha 15/Jul./11 Instrucciones: Lee cada una de las preguntas y contesta lo ms claro posible. Te recomendamos escritos con letra de molde lo ms ordenadamente posible. Ok! Adelante. 1.- Qu es una computadora? 2.- Qu es un lenguaje de programacin? 3.- Qu es una solucin computacional? 4.- Qu es un compilador? 5.- Qu es un intrprete? 6.- Qu es, en qu consiste la codificacin? 7.- Qu es un algoritmo? 8.- Qu es un diagrama de flujo? 9.- Cules son los operadores lgicos? 10.- Cules son los operadores relacionales? 11.- Qu es la sintaxis en un lenguaje de programacin? 12.- Qu es una instruccin en programacin? 13.- Cules son las instrucciones para checar una condicin simple? 14.- Cules son las instrucciones para checar una condicin mltiple? 15.- Qu es el internet?

UNIDAD II. ENTIDADES PRIMITIVAS PARA EL DISEO DE INSTRUCCIONES. 2.1...TIPOS DE DATOS En lenguaje de programacin, un dato es un atributo de una parte de los datos que indica el ordenador y al programador algo sobre la clase de datos, sobre los que se va a procesar. Esto incluye imponer restricciones en los datos, como que valores puede tomar y que operaciones se puede realizar. Los tipos de datos comunes son: enteros, nmeros de coma flotante (decimales), cadenas alfanumricas, flechas, horas, o cualquier cosa que se nos ocurra. Los tipos de datos se clasifican en:

Numricos Simples Lgicos Alfanumricos

Tipos de datos Arreglos Estructurados Cadena de caracteres Registros

Numricos: Representan una cantidad o valor determinado. TIPOS DE DATOS SIMPLES NUMRICOS Tipo de dato en C Int-float LongDescripcin enteros reales Enteros de largo alcance Rango -32,768 a +32,767 3.4 x 10-38 a 3.4 x 1038 -2147,483,648 a +2147,483,647

-double

Reales de doble precisin

1.7 x 10-308 a 1.7 x 10308

TIPOS DE DATOS LOGICOS. Tambin se le denomina Booleanos, estos datos solo pueden tomar uno de dos valores: verdadero o falso. Se le utiliza para representar las alternativas (SI/NO) a determinadas condiciones. Las categoras y tipos que se mencionaron anteriormente se conocen como tipos simples, puesto que no poseen una estructura completa. Los tipos de datos lgicos utilizados en C++ son: And, Or, Not. And Conjuncin x (Y) F Disyuncin V (O) F Negacin V (NO) y F F V V Not (x) V F V F Not (y) V V F F X And Y F F F V X Or Y F V V V

Or

Not

X,Y 00 10 01 11 TIPOS DE DATOS ALFANUMERICOS

X And Y 0 0 0 1

X Or Y 0 1 1 1

Caracteres que pueden ser una letra, un nmero, un smbolo. Tipo de dato en C Char Descripcin Caracter Rango Smbolo del abecedario, nmeros o smbolos especiales, que van encerrados entre comillas

DATOS ESTRUCTURADOS. Arreglos. Se caracterizan por el hecho de que con un nombre de variable se hace referencia a un grupo de casillas de memoria. Se pueden almacenar en un arreglo muchos valores.

Ejemplo: EDADES 0 1 2 3 20 50 10 10

Cadenas de caracteres. Al igual que el anterior hace referencia un a un grupo de casillas de memoria tipo string, en el que definimos el tamao de las casillas. Ejemplo: Char [20] NOMBRE J U A N J O S E B E D O L L A S .

Registros. Son datos estructurados que lo conforman varios componentes. O bien un conjunto de datos estructurados del mismo tipo o tipos diferentes. Ejemplo: ALUMNOS Char [20] Char [20] Char [12] Int. NOMBRE DIR. TEL EDAD

2.2...OPERADORES Y OPERANDOS

Operadores Aritmticos (Nos permiten realizar Operaciones con operandos)

+ suma - resta / divisin % modulo

Operadores Nos permiten realizar Operaciones, conjunciones Y formular condiciones

Operadores Relacionales (Se utilizan para comparar dos operandos)

== igual a != diferente de > mayor que < menor que >= mayor o igual que <= menor o igual que

Operadores Lgicos (Permiten formular condiciones Complejas a partir de condiciones Simples)

! negacin && conjuncin || disyuncin

Operadores

5 + 10 = 15

EJEMPLO

Operandos

2.3...PRECEDENCIA (Tarea) 19/Jul./11 Precedencia De Operadores. Una expresin est compuesta por operadores, variables y constantes. Las reglas que definen que subexpresin evaluar primero, se denominan reglas de precedencia. Aunque siempre podemos alterar dichas reglas mediante la utilizacin de parntesis. La evaluacin de operadores con la misma precedencia viene determinada por su asociatividad. Se evala de mayor a menor precedencia. La tabla siguiente muestra una lista, en orden de precedencia de mayor a menor. Precedencia Orden de evaluacin 15 de izquierda a derecha Operador Descripcin

., [], ()

Acceso a campos, indizacin de matrices, llamadas a funciones y agrupamiento de expresiones

14

de derecha a izquierda

++, --, -, ~, !, delete, new, typeof, void

Operadores unarios, tipos de datos devueltos, creacin de objetos, valores no definidos

13

de izquierda a derecha

*, /, %

Multiplicacin, divisin, divisin mdulo

12

de izquierda a derecha

+, -

Suma y concatenacin de cadenas, resta

11

de izquierda a derecha

<<, >>, >>>

Desplazamiento bit a bit

10

de izquierda a derecha

<, <=, >, >=, instanceof

Menor que, menor o igual que, mayor que, mayor o igual que, instanceof

de izquierda

==, !=, ===, !==

Igualdad, desigualdad, igualdad

a derecha

estricta y desigualdad estricta

de izquierda a derecha

&

AND bit a bit

de izquierda a derecha

XOR bit a bit

de izquierda a derecha

OR bit a bit

de izquierda a derecha

&&

AND lgico

de izquierda a derecha

||

OR lgico

de derecha a izquierda

?:

Condicional

de derecha a izquierda

=, OP=

Asignacin, asignacin compuesta

de izquierda a derecha

, (coma)

Evaluacin mltiple

Los parntesis en una expresin modifican el orden de evaluacin determinado por la precedencia de operador. Esto significa que una expresin encerrada entre parntesis se evala por completo antes de usar su valor en el resto de la expresin.

PRECEDENCIA. (Apunte) Conjunto de reglas que controlan el orden en que el compilador realiza una evaluacin. Mayor precedencia (). Es la prioridad que distingue a los operadores. Es la prioridad que realizan los sistemas computacionales para indicar la jerarqua en que se tiene que ejecutar las expresiones.

JERARQUIA DE LOS DIFERENTES OPERADORES. OPERADORES () ! ++ -** / % +== ! > < >= <= EJEMPLO: If (((a>b) && (b>c)) || (b==)) EJEMPLOS DE PRECEDENCIA 5+6-3=8 (5+ (6-3))=8 5*6-3=27 (5*(6-3))=15 JERARQUA mayor &&. || ,

2.4...EXPRESIONES Son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Una expresiones consta de operadores y operandos y segn el tipo que manipulan, las expresiones se clasifican en Aritmticas, Lgicas y Carcter. Estn constituidas por nmeros, constantes o variables y operadores. El valor que puedan tomar estas expresiones es 1 en caso de verdadero 0 en caso de ser falsas.

Reglas. 1.- cualquier identificador es una expresin. 2.- cualquier nmero es una expresin, entonces: Expresin 1 + Expresin 2 Expresin 1 * Expresin 2 Ejemplo: ((10>5) && (5>2) || (5==2)

IDENTIFICADORES COMO LOCALIDADES DE MEMORIA. (TAREA) 20/JUL/11 Un identificador es cualquier combinacin de letras, dgitos y subrayados (underscore) seleccionados de acuerdo a reglas. En la mayora de los programas de computador, es necesario manejar datos de entrada o de salida, los cuales necesitan almacenarse en la memoria principal del computador en el tiempo de ejecucin. Para poder manipular dichos datos, necesitamos tener acceso a las localidades de memoria donde se encuentran almacenados; esto se logra por medio de los nombres de los datos o IDENTIFICADORES. Los identificadores tambin se utilizan para los nombres de los programas, los nombres de los procedimientos y los nombres de las funciones, as como para las etiquetas, constantes y variables. Se utilizan para los nombres de los programas, los nombres de los procedimientos y de los nombres de las funciones, as como para las etiquetas, constantes y variables. Es una secuencia de caracteres que sirve para identificar una posicin en la memoria de la computadora, que nos permite accesar a su contenido. Reglas: Debe comenzar con una letra (A,Z, May-Min) y no deben contener espacios en blancoLetras, dgitos y caracteres como la subraya (_) estn permitidos despus del primer carcter. La longitud de identificadores puede ser de hasta 8 caracteres.

2.5...IDENTIFICADORES COMO LOCALIDADES DE MEMORIA. (Apunte) Secuencia de caracteres para identificar una produccin en la memoria. Los datos que procesan las computadoras ya sean simples o estructurados se almacenan en casillas o celdas de memoria, se les asignan un nombre para reconocerlos. Se forman por medio de letras, dgitos y carcter de subrayado (_). En el lenguaje C++, siempre comienza con una letra y distingue maysculas y minsculas.

EJEMPLO: Char DATO 20

Identificador Char Dato Char dato [20] Nombre [25] (reserva 25 celdas) Nombre [55] (reserva 55 celdas)

INSTITUTO TECNOLOGICO DE ACAPULCO EXAMEN DE ALGORITMOS UNIDAD I y II CURSO HOMOGENEIZACION 2011 FECHA: 20/JUL/11 INSTRUCCIONES: Lee cada una de las preguntas y contesta correctamente lo que se te indica. 1.- Clasifique y defina brevemente a los tipos de datos. 2.- A que se refiere la precedencia, cite un ejemplo. 3.- Que es un identificador. 4.- A travs de un esquema, represente la metodologa para la solucin de problemas por medio de computadoras. 5.- Cual es la diferencia entre compilador y un intrprete. 6.- Mediante un algoritmo exprese el procedimiento que utiliza para llegar al curso de algoritmia que se imparte en el ITA. 7.- Que es un lenguaje de programacin y mencione los lenguajes de programacin que conoce o ha escuchado. 8.- Que es la documentacin en un sistema computacional. 9.- Cual es la diferencia entre programa y programacin. 10.- Definir los siguientes conceptos: computadora, codificacin, hardware, software y lenguaje maquina.

EXAMEN DE DIAGNOSTICO CURSO DE HOMOGENEIZACIN 2011 Fecha 15/Jul./11 (RESPUESTAS) 1.- Es un dispositivo electrnico compuesto de hardware y software que realiza varias operaciones aritmticas y complejas y nos permite almacenar, modificar u crear datos. 2.- Es un lenguaje de alto nivel, compuestos de smbolos especficos, palabras reservadas, sintaxis, nos sirve para comunicarnos con una computadora. 3.- Es resolver problemas complejos por medio de una computadora utilizando una metodologa informtica. 4.- Es un programa informtico que traduce de cdigo fuente a cdigo maquina de forma general y rpida. 5.- Es un programa informtico que traduce tambin de cdigo fuente a cdigo maquina, se diferencia del compilador en que este traduce lnea por lnea de manera ms lenta. Funciona leyendo en cdigo fuente, traduciendo en cdigo de ensamblaje y ejecutando en cdigo maquina. 6.- Es escribir en una computadora cdigos que son traducidos a un lenguaje mquina para que esta realice una operacin o funcin. 7.- Es una serie de pasos a seguir para resolver un problema. Tradicionalmente se enumeran y se utiliza un lenguaje comn. Es finito. 8.- Es un mtodo de organizar datos por medio de cuadros flechas que engloban un problema y lo distribuyen complejamente a modo de resolverlo paso a paso. 9.- And, Or, Not. 10.- ==, >, <, >=, <= 11.- Es la forma estructurada y correcta de escritura en una computadora. 12.- Es el orden de pasos que introducimos en una computadora para que realice una operacin o funcin. 13.- Condicin If. 14.- Swich, Case. 15.- Es el conjunto de redes interconectadas (LAN) que nos permite comunicarnos con personas de otras partes del mundo, buscar informacin, conseguir productos u otras cosas que buscamos.

INSTITUTO TECNOLOGICO DE ACAPULCO EXAMEN DE ALGORITMOS UNIDAD I y II CURSO HOMOGENEIZACION 2011 FECHA: 20/JUL/11 (RESPUESTAS) 1.-

Numricos (float, Int, double, long) Simples Lgicos (And, or, Not) Alfanumricos (Char)

Tipos de datos *Arreglos Estructurados **Cadena de caracteres ***Registros

* Hace referencia a un grupo de casillas. ** Se refiere a un grupo de casillas pero aqu se define la cantidad. *** Lo componen varios grupos de casillas de forma estructurada.

2.- Es el orden en que el compilador realiza una operacin de expresiones. El () es el smbolo de mayor precedencia. Ejemplo: 5*3+6= 21 (la multiplicacin tiene mayor precedencia que la suma). 3.- Es una secuencia de caracteres que identifican una produccin en la memoria. Se forma por letras, dgitos y carcter de subrayado (_).

4.PROBLEMA ALGORITMO ANALISIS DE DATOS DISEO DE LA SOLUCION

MANTENIMIENTO

DOCUMENTACION

PRUEBA Y DEPURACION

CODIFICACION

IMPLEMENTACION 5.- El compilador traduce de forma ms rpida y general; el interprete lo hace lnea por lnea de forma lenta utilizando cdigo fuente, de ensamblaje y cdigo maquina. 6.(1) Despertarme (2) Baarme (3) Arreglarme (4) Desayunar (5) Salir Con Mis Cosas A Tomar El Taxi (6) Subir Al Taxi (7) Bajar En La Direccin Del ITA (8) Mostrar Mi Identificacin Para Pasar (9) Pasar (10) Caminar Al Saln 203 (11) Sentarme En Una Butaca/Silla. 7.- Son el sistema de cdigos que nos permiten comunicarnos con una computadora para que esta realice una funcin. Ejemplos: C++, Java, Cobol, Pascal, Ada. 8.- Es realizar una descripcin de cada parte de un programa que deseemos implementar. Explicando cmo funciona y que sea entendible para una u otra persona. 9.- Programa es la herramienta que nos permite realizar una funcin en una computadora; programacin es el proceso que se realiza para modificar o crear un programa. 10.Computadora: Dispositivo electrnico compuesto por hardware y software que realiza varias operaciones aritmticas y complejas y nos permite crear u modificar datos. Codificacin: Es la escritura que realizamos en una computadora para que esta realice una funcin. Hardware: Son los elementos fsicos de la computadora y que mediante sus funciones nos facilitan crear un archivo o usar la misma computadora. Software: Son todos los programas y sistemas operativos que hacen funciones en la computadora para crear u modificar datos/archivos. Lenguaje Maquina: es el nico lenguaje que entiende una computadora, est compuesto por 0 y 1.

Unidad III.- TCNICAS PARA LA FORMULACIN DE ALGORITMOS 3.1...DIAGRAMAS DE FLUJO

-Diagramas de flujo Las tres tcnicas de formulacin de algoritmos mas populares son:

-Pseudocdigos

-Diagramas estructurados (Nassi-Schneiderman)

Diagrama de flujo.- Es la representacin grafica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grafica de cmo deben realizarse los pasos en la computadora para producir resultados. Esta representacin grafica se da cuando varios smbolos, que indican diferentes procesos en la computadora se relacionan entre s mediante lneas que indican el orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el instituto norte americano de normalizacin (ANSI). Smbolo Descripcin Indica inicio y final de nuestro diagrama de flujo

Indica la entrada y salida de datos Representa un proceso. Se colocan asignaciones, operaciones aritmticas, cambian de valor de celdas en memoria. Impresin de resultado

Expresa conexin dentro de una misma pagina Expresa conexin entre paginas diferentes Expresa un modulo de un problema o sub-problema

Smbolo de decisin, indica la realizacin de una comparacin de valores

Direccin del flujo del diagrama

INICIO

LECTURA DE DATOS

Etapas de la construccin de un diagrama de flujo

PROCESO DE DATOS

IMPRESION DE RESULTADOS

FIN

Ejemplo: Obtener el rea de un rectngulo A= b x h Algoritmo 1.-inicio 2.-leer los valores de b y h 3.-multiplicar el valor de la base por la altura 4.-el resultado asignarlo a A 5.-imprimir o desplegar el valor de A 6.-fin

INICIO

b,h

A<----b*h

"EL AREA DEL RECTANGULO ES" A

FIN

TAREA INICIO Obtener el rea de un triangulo A=b*h/2 Algoritmo 1.-Inicio 2.-leer los valores de b y h 3.-multiplicar el valor de b por el valor de h y dividirlo entre 2 4.-el resultado asignarlo a A 5.-imprimir o desplegar el valor de A 6.-fin b,h A<----b*h

"EL AREA DEL TRIANGULO ES" A

FIN

INICIO Obtener el rea de un Circulo A=Pi*r^2 Algoritmo 1.-Inicio 2.-Leer el valor de r 3.-asignar a Pi el valor de 3.1416 4.-multiplicar el valor de Pi por la elevacin al cuadrado de r 5.-el resultado, asignarlo a A 6.- imprimir el valor de A 7.-fin r Pi<----3.1416

A<----Pi*(r^2)

"EL AREA DEL CIRCULO ES" A

FIN

NOTA: CUANDO EXISTAN MAS DE DOS OPERACIONES ES NECESARIO INCLUIR LOS PARENTESIS ( ) . EJEMPLO.- A<----Pi*(r^2)

3.2...PSEUDOCDIGO.- es utilizado por programadores para describir algoritmos en un lenguaje humano simplificado que no es dependiente de ningn lenguaje de programacin. Por este motivo puede ser implementado en cualquiera lenguaje por cualquier programador que utilice el pseudocdigo. Las principales caractersticas de este lenguaje son: 1. 2. 3. 4. 5. Se puede ejecutar en un ordenador Es una forma de representacin sencilla de utilizar y de manipular. Facilita el paso del programa al lenguaje de programacin. Es independiente del lenguaje de programacin que se vaya a utilizar. Es un mtodo que facilita la programacin y solucin al algoritmo del programa.

Estructura a seguir en su realizacin: 1. Cabecera. 1. Programa. 2. Modulo. 3. Tipos de datos. 4. Constantes. 5. Variables. 2. Cuerpo. 1. Inicio. 2. Instrucciones. 3. Fin.

3.3...DIAGRAMAS ESTRUCTURADOS.

(NASSI-SHNEIDERMAN).- es una representacin grfica que muestra el diseo de un programa estructurado. Basado en un diseo top-down (de lo complejo a lo simple divide y vencers), el problema que resolver es dividido en sub-problemas cada vez ms pequeos - y simples - hasta que solo queden instrucciones simples y construcciones para el control de flujo. El diagrama Nassi-Shneiderman refleja la descomposicin del problema en una forma simple usando cajas anidadas para representar cada uno de los sub-problemas. Para mantener una consistencia con los fundamentos de la programacin estructurada, los diagramas NassiShneiderman no tienen representacin para las instrucciones GOTO.
Los diagramas Nassi-Shneiderman se utilizan muy raramente en las tareas de programacin formal. Su nivel de abstraccin es muy cercano al cdigo de la programacin estructurada y ciertas modificaciones requieren que todo el diagrama sea redibujado. Los diagramas Nassi-Shneiderman son (la mayora de las veces) isomrficos con los diagramas de flujo. Todo lo que se puede representar con un diagrama NassiShneiderman se puede representar con un diagrama de flujo. Las nicas excepciones se dan en las instrucciones GOTO, break y continue.

EJERCICIO.- Elaborar un algoritmo diagrama estructurado Nassi, el diagrama de flujo y el Pseudocdigo en la lectura de dos nmeros enteros y que despliegue como resultado cul de ellos es mayor. INICIO A,B IF A>B SI
"el mayor es" A

Diagrama de Flujo inicio NO

NASSI

A,B

"el mayor es" B

SI FIN Pseudocdigo Start Scanf A,B IF A>B Printf "el mayor es" A else Printf "el mayor es" B End

IF A>B

NO

"el mayor es" A

"el mayor es" B

FIN

EJERCICIO.-Elaborar un algoritmo diagrama estructurado Nassi y el diagrama de flujo, en la lectura de dos nmeros enteros y que despliegue cul de ellos es mayor, tomando en cuenta la posibilidad de la igualdad entre ellos. Diagrama de Flujo Nassi INICIO A,B IF A==B SI
"los nmeros son iguales"

inicio

A,B

NO
IF A>B

si "los num. son iguales" NO si "el mayor es" A

IF A==B no IF A>B no "el mayor es" B FIN

SI "el mayor es" A

"el mayor es" B

TAREA.- Elaborar un diagrama de flujo condicionando 3 nmeros enteros, tomando en cuenta su posible igualdad, y desplegar cual de ellos es mayor

INICIO

A,B,C

IF A>C NO SI "el mayor es" A

SI

IF A>B

NO

IF B>C SI "el mayor es" B

NO "el mayor es" C

A==B&& B==C NO IF A==B && A>C NO

SI

"los num son iguales"

SI

"A es igual a B y son mayores"

"el mayor es" C

IF A==C && A>B NO IF A==C && A>B

SI

"A es igual a C y son mayores"

SI

"B es igual a C y son mayores"

FIN

TAREA.- Realizar un Diagrama de flujo en el que se desplieguen los primeros 10 nmeros naturales INICIO M=0

SI IF M<10 IMPR. M M=M+1

NO "Proceso Terminado"

FIN

TAREA.- Realizar el diagrama de flujo que despliegue los nmeros pares hasta el 10 y su suma, y otro que despliegue los nmeros nones hasta el 10 y su suma PARES INICIO suma<---0 num<---0 num<---num+2 suma<---suma+num num si IF num<11 no suma fin fin suma IF num<9 no NONES INICIO suma<---0 num<--- -1 num<---num+2 suma<---suma+num num si

3.4...COMPLEJIDAD DE LOS ALGORITMOS La complejidad de los algoritmos es la expresin o tamao en espacio en que se desarrolla un algoritmo, la complejidad corresponde al tamao del problema que se desea solucionar. Complejidad es el estudio de la cantidad de tiempo y espacio en memoria que toma la ejecucin de un punto dado. 3.4.1...TIEMPO DE EJECUCION DE UN ALGORITMO El tiempo de ejecucin de un programa en funcin de (N) numero de datos, se denomina T(N) y se calcula sobre el cdigo conteniendo las instrucciones a ejecutar y multiplicando por el tiempo requerido para cada instruccin. Ejemplo.S1; (Sentencia=S) For (int i=0; i<N; i++) S2 Requiere ; T(N)= T1 + T2 * N Los algoritmos bien estructurados combinan las sentencias de algunas de las formas siguientes: a)Sentencias sencillas: Completa las sentencias de asignacin, entrada y salida de datos y tiene la complejidad constante, que se establece orden 1= 0(1) 3.4.2...COMPLEJIDAD DE ESPACIO Es el estudio de la cantidad de espacio en memoria que forma la ejecucin de un programa o proceso. La memoria se divide en: Memoria Esttica: Para calcularse, se suma la memoria que ocupan las variables declaradas en el algoritmo. Memoria Dinmica: Su clculo no es tan simple, ya que dependen de cada ejecucin del algoritmo.

EXAMEN UNIDAD III


No hubo examen, pero la siguiente tarea fue tomada en cuenta para la evaluacin de la III Unidad (Examen sin respuestas) 1.-Diagrama de Flujo: Elaborar un diagrama de flujo que despliegue los primeros 100 nmeros naturales y la suma de todos ellos. 2.-Diagrama Nassi: Elaborar un diagrama de flujo condicionando 3 nmeros enteros, tomando en cuenta su posible igualdad, y desplegar cul de ellos es mayor (este diagrama Nassi est basado en el diagrama de flujo que se elabor anteriormente, el cual es el ms extenso de la unidad III)

RESPUESTAS EXAMEN UNIDAD III

1.-

INICIO

suma<---0 num<--- -1 num<---num+1 suma<---suma+num "imprime numero" num

IF num<=99

"imprimir" suma

FIN

2.inicio leer A,B,C A==B&&B==C si "Los nmeros son iguales" A==B&&A>C si "A es igual a B y son los mayores" A==C&&A>B si "A y B son iguales y mayores" B==C&&B>A si "B y C son iguales y mayores" si "el mayor es" A FIN no IF A>B si IF A>C no "el mayor es" C si "el mayor es" B no IF B>C no "el mayor es" C no no no

UNIDAD IV.-ESTRUCTURAS ALGORITMICAS Las estructuras lgicas selectivas se encuentran en la solucin algortmica de casi todos los tipos de problemas. Estas estructuras se utilizan cuando se debe tomar una decisin en el desarrollo de la solucin de un problema. La toma de decisin se basa en la evaluacin de una o mas condiciones que nos sealan como consecuencia la rama a seguir. Es frecuente que nos encontremos con situaciones en las que debemos tomar varias decisiones cuando esto ocurre y decimos que se realiza en cascada. Es decir se toma una decisin que seala el camino a seguir, no encontramos con otra decisin y tambin se marca el siguiente camino y as sucesivamente. Estos casos prcticamente debemos construir un rbol de decisin para plantear la solucin.

4.1... ESTRUCTURAS SECUENCIALES Las estructuras secuenciales son aquellas en las que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as hasta finalizar el proceso.

inicio Accin 1 Accin 2 = = Accin N Fin

4.1.1 ASIGNACION La asignacin consiste en el paso de valores o resultados a una zona de la memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La asignacin se puede clasificar de la siguiente forma:

saaa *Simple Asignacin as *Contador *Acumulador *De trabajo Simple: Consiste en pasar un valor constante a una variable, ejemplo: a=15 num 0

Contador: Consiste en usarlo como un verificador del numero de veces que se realiza un proceso, ejemplo: a=a+1 num num+1 i++= contador en C++ Acumulador: Consiste en usarlo como un sumador en un proceso. Ejemplo: a=a+b suma suma+num

suma=suma+num De trabajo: Es aquel donde puede recibir el resultado de una operacin matemtica que involucre muchas variables. Ejemplo:

a=c+b*2/4

area

(b*h)/2

4.1.2 ENTRADA En los lenguajes y sistema s computacionales, la entrada corresponde a la lectura, captura o introduccin de datos desde un dispositivo de entrada (teclado, mouse, lector ptico, etc). Por ejemplo con algunas tcnicas de programacin se utilizan smbolos y en los lenguajes de programacin se utilizan palabras reservadas para leer o capturar datos enteros como en C++ es scanf y alfanumricos (gets).

4.1.3 SALIDA La escritura o salida de datos consiste en mandar por un dispositivo de salida (monitor, impresora, etc) un resultado o mensaje. Esta instruccin presenta en pantalla en mensaje escrito entre comillas as como el contenido de la variable El mayor es: , A.

4.2 CONDICIONALES Las estructuras condicionales comparan una variable contra otro valor o valores, para que en base al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe mencionar que la comparacin se puede hacer contra otra variable o contra una constante segn se necesite. Existe tres tipos bsicos de condicionales:

4.2.1SIMPLE

Estructura selectiva simple (IF): La estructura condicional simple se les conoce como tema de decisiones. Estos temas de decisiones tienen la siguiente forma: si condicin entonces accin(es) fin si

4.2.2 MLTIPLE Estructura selectiva mltiple SWITCH La estructura de comparacin mltiple son tomas de decisiones especializadas que permiten compara unas variables contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificadas. La forma ms comn es:

Si <condicin> entonces accin(es) sino si <condicin> entonces sino fin-si

Sintaxis: Switch (<selector>) { Case <valor>; <accin (es)>; Break; /*es necesario para avanzar con los otros casos/* Case <valor>; <accin (es)>; Break; }

4.3 VECTORES Un vector (array-arreglo), es un conjunto finito y ordenado de elementos homogneos o datos en el que se hace referencia a cada elemento de arreglo por medio de un ndice, este ultimo indica la casilla en la que encuentra el elemento. La propiedad (ordenados) significa que el elemento primero, segundo, tercero y hasta el ensimo puede ser identificado. Los elementos del array o arreglo son homogneos es decir de un mismo tipo de datos. En otras palabras un arreglo es un espacio de variable que contiene muchos valores, pero cada uno con una posicin diferente. Un arreglo puede ser unidimensional o vectorial, bidimensional o matricial, y multidimensional. El arreglo unidimensional es el tipo mas simple y consta de N elementos. Permite almacenar elementos del mismo tipo (enteros, reales, caracteres, cadena de caracteres etc.) y acceder a ellos por medio de un ndice.

Sintaxis: int a [10]; Printf a [5]; 0 1 2 En este caso imprimir 3 La casilla marcada con el 4 4. 5 6 7 8 9

4.4 MATRICES Las matrices se indican basadas en cero: una matriz con N elementos se indican desde cero hasta N. Los elementos de una matriz pueden ser de cualquier tipo incluido el de tipo matriz. Los tipos de matriz son tipos de referencia derivada del tipo base abstracta array. Los array tambin se conocen como matrices en matemticas y tablas en clculo financiero. Un arreglo puede ser una matriz unidimensional o vectorial, bidimensional o matricial y multidimensional.

Sintaxis; int a [4] [4]; Printf [1,1];

Imprimir este recuadro

UNIDAD V.- INTRODUCCION A LA PROGRAMACION DE ALGORITMOS 5.1... INTRODUCCIN AL LENGUAJE DE PROGRAMACIN C++ Lenguaje de programacin Un lenguaje de programacin es un conjunto de smbolos (signos de puntuacin, operadores, caracteres especiales, etc.) palabras reservadas que se combinan a base una sintaxis o gramtica propia del lenguaje con la finalidad de establecer comunicacin entre el hombre y la computadora y viceversa. Entre los lenguajes de programacin tenemos el c++, java, SQL, visual c, visual Basic, etc. Programa Consta de una secuencia de proposiciones, cada una de las cuales especifica ciertas operaciones que debe realizar la computadora. Ejemplo: # include <stdio.h>; Main () { Printf( bienvenidos al ITA); }

Proposicin

Es una lnea de cdigo escrita a un lenguaje de programacin y de acuerdo al lenguaje de programacin que se utilice se indica el formato o sintaxis correspondiente. Cada lenguaje tiene su propio repertorio de programacin. Ejemplo: Printf(bienvenidos al ITA);

Programacin Es la actividad de expresar un algoritmo en un lenguaje de programacin. Es un proceso por el cual se escribe, se prueba, se depura y se mantiene el cdigo fuente en un programa informtico. El lenguaje c++ contiene numerosas funciones cuando se emplean funciones de la biblioteca estndar, se incrementa la transportabilidad de los programas. Las funciones estndar se dividen en grupos, todas las funciones que pertenecen a un mismo grupo estn declaradas en el archivo de cabecera.

Archivos de cabecera

Para incluir alguna funcin pertenecientes a estas cabeceras debemos escribir el archivo de cabecera o librera correspondiente en el cdigo de nuestro programaal inicio del mismo antecediendo la instruccin # include Biblioteca de descripcin de uso

Nombre de La biblioteca Assert.h Alloc.h Ctype.h

Descripcin

Dir.h Conio.h Math.h Stdio.h Stdlib.h String.h Time.h

Es proporcionar una definicin de la macro assert que imprime un mensaje de error y aborta el programa. Existen funciones para asignar, liberar memoria u obtener informacin de bloques de memoria. Son funciones que nos permiten conocer la naturaleza de u carcter o bien para convertir de maysculas a minsculas y viceversa. Y valores enteros a cdigo ASCII. Permite ordenar, crear, modificar, mover y eliminar directorios Permite incorporar funciones de pantalla. Contiene las funciones matemticas estndar utilizadas en c y c++ Incorpora las funciones de entrada y salida tipos y macros Declara funciones que son tiles para diferentes propsitos, en especial de bsqueda y ordenacin. Esta librera contiene funciones para el manejo de cadena de caracteres. Contiene funciones relativas a fechas y horas.

5.2... ESTRUCTURA BSICA DE UN PROGRAMA EN C++

En general un programa en c++ consta de las siguientes partes:

a) b) c) d)

directivas al preprocesador definicin de tipo de datos declaracin de variables definicin de funciones

Nota: cualquier programa debe poseer una funcion llamada main () que es la funcion que toma el control cuando se corre el programa. Es decir es el cuerpo principal de un programa en c++. Ejemplo: /*Mi primer programa en c++*/ # Include <stdio.h>; Voit main() { Printf (bienvenido); Printf (al curso de homogenizacin); }

Ejercicio

Elaborar un diagrama de flujo y el pseudocdigo en el que se capturen 3 calificaciones del curso de homogenizacin y que despliegue el promedio correspondiente, enseguida desplegar el mensaje de alumno aprobado si el promedio es de 70 o mas, en caso contrario desplegar alumno reprobado.

1.- Start 2.- Scanf cal1, cal2, cal3 3.- p = (cal1, cal2, cal3)/3 4.- printf Promedio p 5.- if p>=70 6.pintf aprobado

7.- else printf reprbado IF P=>70 8.- end

5.3 CODIFICACIN DE ESTRUCTURAS ALGORTMICAS Declaracin de libreras Codificar el ejercicio anterior. /*Promedio de calificaciones del curso de homogenizacin # Include <stdio.h><math.h> Int cal1, cal2,cal3 Flota pro Void main () { Scanf: (cal1, cal2, cal3); pro=(cal1+cal2+cal3)/3 printf (pro) if pro=>70 printf (Alumno aprobado); else printf (Alumno reprobado); }

~DECLARACION DE LIBRERIAS La etapa de compilacin se realiza en dos fases, una en la que un procesador atiende todas las directivas que contiene el cdigo fuente. Y despus la etapa de traduccin a cdigo objeto. Todas las directivas al pre procesador comienza con el carcter #, y en particular la directiva #include instruye al pre procesador para que inserte el cdigo del archivo que se pasa como argumento a la directiva para su posterior compilacin. Ejemplo: Al iniciar el programa se incluyen cuatro libretas #Include <stdio.h> #Include <conio.h> #Include <string.h> #Include <etype.h>

-Definicin de Funciones Todas las funciones se definen colocando primero el tipo de retorno (Void) significa que la funcin no retorna nada como el resultado de ejecucin por defecto, si no se coloca un tipo de retorno, se asume que la funcin retorna un valor entero; al tipo de retorno le sigue el nombre de la funcin (Main), posee un significado especial ya que es la funcin que toma el control cuando se ejecuta el programa. El llamado a funciones, se realiza colocando su nombre seguido por los argumentos encerrados entre parntesis. En el caso de que la funcin retorne algo como resultado, se puede utilizar en el lado derecho de una asignacin.

Todas las sentencias terminan con el caractr (;) Void: Quiere decir que al ejecutar el programa no guarde ningn nmero. Parmetros ( ): Son variables que van a contener valores Las funciones, comparaciones y smbolos no llevan ( ; )

Void Main { area (); area de un circulo(); } Void area () { int b, h; Float area area= (b*h)/2; Printf ("el area del triangulo es", area); } Void area de un circulo { } -Variables locales y globales

Todas las instrucciones terminan con ( ; )

El lugar donde sea declarada una variable afectar el uso que el programa quiera hacer de esta variable. Las reglas bsicas que determinan como una variable puede ser usada donde se puede declarar. En primer lugar es dentro de cualquier funcin o procedimiento, a estas se les llaman variable locales y solo pueden ser usadas por instrucciones que est dentro de esa funcin o procedimiento.

En segundo lugar es como parmetro de una funcin donde despus de haber recibido el valor, podr actuar como variable local, en esa funcin o procedimiento. En esencia una variable local solo es conocida por el cdigo de esa funcin o procedimiento, y es desconocida por las dems funciones. En tercer lugar la declaracin fuera de todos los procedimientos o funciones a este tipo de variables, se les llama variables globales y podrn ser usadas por cualquier funcin o procedimiento del programa. 5.4...CODIFICACION DE ESTRUCTURAS DE CONTROL CICLO FOR Las instrucciones o estructuras de control para ciclos, resuelven el problema de repetir todo el programa o cierta parte de l ms de una vez. El ciclo for es uno de los ms usados para repetir una secuencia de instrucciones, sobre todo cuando se conoce la cantidad exacta de veces que se quiere que ejecute una instruccin simple o compuesta, su formato general es: Sintaxis: For (Inicializacin, condicin, incremento) { instruccin (es) } La condicin es una expresin relacional que evala a la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo. El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo. Se deben separar esos tres argumentos con ( ; ) Ejemplo: -Diagrama que captura las edades de 10 personas #Include <stdio.h> #include <conio.h> main ( ) { int i [10]; clrscr (); printf ("Programa que captura 10 nmeros enteros); For (i=0; i<=9; i[i]); { printf ("\n introduce la edad %d", i); Scanf ("%d", & i [i]); } getch ( ); }

Ejemplos de estructuras de un lenguaje de programacin en C++ #include <stdio.h> #include <conio> /* este es el primer programa en C++ void main () { clrscr ( ) printf ("mi primer programa en C++"); getch ( ); /* aqui se detiene el programa y hasta que presione una tecla continua en ejecucion ________________________________________________________________________ #include <stdio.h> #include <conio.h> #define p printf #define s scanf void main ( ) { clrscr ( ); float mat, alg, fis, pro, con; char alumno [25] p ("\n\t calificaciones del curso de homogeneizacin del ITA"); p (\n\n nombre del alumno:"); s ("%s", &alumno); p ("\n\n matematicas:"); s ("%f", &mat); p ("\n algoritmos:"); s ("%f", &alg); p ("\n fisica: \t\t"); s ("%f", &fis); pro= ((mat + alg + fis)/3); p ("\n\n El promedio calculado es: \t\t xf", pro); if (pro>=70) { p ("\n\n acreditado"); } else { gotoxy (40,20); p ("Reprobrado"); } getch ( ); } ________________________________________________________________________

#include <stdio.h> #include <conio.h> void main ( ) { clscr ( ); int i [10], j; gotoxy (2,2); printf ("programa que captura dies numeros entero"); for (j=0; j<=9; j++) { printf ("\n\n introduce el valor %d:", j+1); scanf ("%d",& i[ j ]); } getch ( ); } ________________________________________________________________________ #include <stdio.h> #include <conio.h> #define p printf #define s scanf void main ( ) { clrscr ( ); int a, b, c; p ("\n programa de captura y comparacion de tres numeros"); p ("introduce numero 1: "); s ("%d",& num1); p ("introduce numero 2: "); s ("%d",& num2); p ("introduce numero 3: "); s ("%d",& num3); if (num1==num2 && num1==num3) p ("los numeros son iguales: %d %d", num1, num2, num3); else { if (num1==num2&&num1>num3) p ("el numero 1 y dos son iguales y mayores: %d, %d", num1, num2); else { if (num1==num3&&num1>num2) p ("el numero 1 y el 3 son iguales y mayores: %d, %d", num1, num3); else { if (num2==num3&&num2>num1) p ("el numero 2 y el numero 3 son iguales y mayores: %d, %d", num2, num3); else

{ if (num1>num2) { if (num1>num3) p ("el mayor es el numero 1: %d", num1); else p (" el mayor es numero 3: %d", num3); } else { if (num2>num3) p ("el mayor es numero 2: %d", num2); else p ("el mayor es numero 3: %d", num3); } } } } } getch ( ); }

Você também pode gostar