0% encontró este documento útil (0 votos)
31 vistas34 páginas

Libro de C++

El documento habla sobre lógica de programación, lenguajes de programación, algoritmos y pseudocódigos. Explica conceptos como código fuente, programa objeto, compiladores e intérpretes. También presenta algunos problemas de ejemplo para resolver.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas34 páginas

Libro de C++

El documento habla sobre lógica de programación, lenguajes de programación, algoritmos y pseudocódigos. Explica conceptos como código fuente, programa objeto, compiladores e intérpretes. También presenta algunos problemas de ejemplo para resolver.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 34

Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Introducción.

En la actualidad las computadoras se han convertido en una de las herramientas


más importantes en todas las actividades humanas. Por las grandes cantidades de
información que procesan a unas velocidades que el ser humano no podría igualar.

De aquí la importancia de aprender a manejar dicha herramienta pero lo más


importante es desarrollar la habilidad de resolver problemas con la utilización de
las computadoras. Problemas que estén relacionados a nuestro diario vivir, que
nos permita desenvolvernos en una sociedad competitiva, problemas que estén
inmersos en todas las disciplinas.

1
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Capitulo 1

Conocimientos Básicos de Diagramación y Programación

Lógica de Programación.

Según el diccionario de la lengua española, el concepto de


lógica dice “Ciencia formal que estudia el conocimiento,
entendido como proceso que resuelve”. En todo caso es el
proceso de razonar o método que podemos seguir para dar
solución a algo.

La Lógica de Programación será, el método razonado que


podemos seguir para resolver un problema planteado utilizando las herramientas
de programación como son: Algoritmos (diagramas de flujo, Pseudocódigos) y
codificación utilizando un determinado lenguaje de programación.

Lenguajes de Programación.

Los Lenguajes de Programación son Sistemas de


Comunicación. Constituyen un medio por el cual los
programadores se comunican con el ordenador. Todos los
Lenguajes de Programación están constituidos por un
conjunto de palabras y reglas de sintaxis. A través de los
Lenguajes de Programación podemos elaborar los
programas que luego serán ejecutados fielmente por el ordenador. Ej: Basic,
Pascal, C++, Fortran, Cobol, Delphi, FoxPro, Visual Fox, Visual Basic, etc.
Programa de Ordenador.

Es un conjunto de instrucciones escritas en un


determinado Lenguaje de Programación y que
indican la forma de capturar, procesar, almacenar y
transmitir la información, utilizando diferentes
dispositivos conectados al ordenador; y así obtener
resultados concretos.

Los programas que escribiremos más adelante serán utilizando un lenguaje de


programación muy popular como lo es el C++.
2
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Código Fuente: Le daremos el nombre de Código


fuente, a los programas que escribamos en un
determinado lenguaje de programación, que
simplemente estará compuesto por instrucciones
escritas por un programador. El código fuente no
constituye el software propiamente dicho pero es
una instancia mediante la cual se llega al
Software.

Los programas fuente no pueden ejecutarse. Son ficheros de texto, pensados


para que los comprendan los seres humanos, pero incomprensibles para los
ordenadores.

Programa Objeto: Para conseguir un programa ejecutable hay que seguir algunos
pasos. El primero es compilar o traducir el programa fuente a su código objeto
equivalente. Este es el trabajo que hacen los compiladores de C y C++. Consiste
en obtener un fichero equivalente a nuestro programa fuente comprensible para
el ordenador, éste fichero se conoce como fichero objeto, y su contenido como
código objeto.

Traductor: Los traductores son programas que, traducen los programas en


código fuente, escritos en lenguajes de alto nivel, a programas escritos en
lenguaje máquina. Los traductores pueden ser de dos tipos : compiladores e
intérpretes.

Compilador: Los compiladores son programas que leen un fichero de texto


que contiene el programa fuente y generan un fichero que contiene el
código objeto. Como una parte fundamental de este proceso de traducción,
el compilador le hace notar al usuario la presencia de errores en el código
fuente del programa.

El código objeto no tiene ningún significado para los seres humanos, al


menos no directamente. Además es diferente para cada ordenador y para
cada sistema operativo. Por lo tanto existen diferentes compiladores para
diferentes sistemas operativos y para cada tipo de ordenador.

3
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

El C++ es un lenguaje que utiliza un compilador y su trabajo es el de llevar


el código fuente escrito en C++ a un programa escrito en lenguaje máquina.
Entrando en más detalle un programa en código fuente es compilado
obteniendo un archivo parcial (un objeto) que tiene extensión .obj luego el
compilador invoca al linker que convierte al archivo objeto en un ejecutable
con extensión .exe que como ya sabemos es un archivo que está en
formato binario (ceros y unos) y que puede funcionar por si solo.

La siguiente figura muestra los pasos para tener un programa ejecutable


desde el código fuente:

Intérprete: Un intérprete lee el código como está escrito y luego lo


convierte en acciones, es decir, ejecuta en ese instante instrucción por
instrucción (línea por línea).
Existen lenguajes que utilizan un Intérprete, como por ejemplo JAVA, y su
intérprete traduce en el instante mismo de lectura, el código en lenguaje
máquina para que pueda ser ejecutado.
La siguiente figura muestra el funcionamiento de un intérprete.

4
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Diferencia entre Compilador e Interprete

Los compiladores difieren de los intérpretes en varios aspectos:

Un programa que ha sido compilado puede correr por si solo, pues en el proceso
de compilación se lo transformó en otro lenguaje (lenguaje máquina).

Un intérprete traduce el programa cuando lo lee, convirtiendo el código del


programa directamente en acciones.

La ventaja del intérprete es que dado cualquier programa se puede interpretarlo


en cualquier plataforma (sistema operativo), en cambio el archivo generado por el
compilador solo funciona en la plataforma en donde se lo ha creado.

Pero por otro lado un archivo compilado puede ser distribuido fácilmente
conociendo la plataforma, mientras que un archivo interpretado no funciona si no
se tiene el intérprete.

Hablando de la velocidad de ejecución, un archivo compilado es de 10 a 20 veces


más rápido que un archivo interpretado.

5
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Problemas propuestos de la Unidad.

Escriba los pasos necesarios para resolver dichos problemas:

1. Cuatro personas desean pasar un río. Disponen de una canoa que soporta 100
kilos. Dos de ellas pesan 100 kilos cada uno y las otras dos 50 kilos cada una.
Escriba el algoritmo que permita que las 4 crucen el río a través de la canoa.
2. Con diez soldados, forme 5 filas cada una con 4 soldados.
3. Se tiene 6 botellas del mismo licor (botellas de iguales características) de las
cuales una está alterada (sustancia menos densa). Disponemos de una balanza
de brazo, con máximo dos pesadas, determinar cuál es la botella alterada.
4. Ana, Bertha, Carlos y Diana están sentados en una fila de 4 sillas numeradas
del 1 al 4. José los mira y dice:
“Bertha está al lado de Carlos”.
“Ana está entre Bertha y Carlos”.
Pero sucede que las dos afirmaciones que hizo José son falsas. En realidad
Bertha está en la silla No. 3. ¿Quién está en la silla No. 2 ?
a) Bertha c) Carlos
b) Diana d) Ana
5. En una carrera participan cuatro personas A, B, C, D. Si se sabe que:
 A llegó tres puestos antes que B.
 C llegó antes que D.
¿Quién ganó la carrera? ¿Quién llegó en tercer lugar?
a) A – B c) A - C
b) B – C d) B- D
6. Colocar los números del 1 al 9 en las 9 casillas de un tablero de 3 x 3 de tal
forma que la suma de los números de las filas (horizontales, verticales y
diagonales) de el mismo resultado. Da como respuesta la suma de cada fila:
a) 8 c) 12 e) 20
b) 10 d) 15

7. Pedrito rajó, de un pelotazo, en dos partes el vidrio de un reloj de pared. Si


la suma de los números que hay en cada parte resultó siendo la misma. ¿Cuál
es esta suma?.
a) 34 c) 50 e) 40
b) 49 d) 39

6
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Capitulo 2

Algoritmos. Pseudocódigos.

Algoritmo: Un Algoritmo es una serie finita (tiene principio y fin) de pasos


secuénciales (ordenados) que indican acciones precisas y concretas en la
resolución de un problema. Cualquier problema que quiera resolver por
computadora debe, primeramente, expresarse en forma de algoritmo. Después,
es necesario que ese algoritmo sea traducido en forma de programa usando un
lenguaje de programación, para que la computadora pueda ejecutarlo.

En la vida diaria cada uno de nosotros diseña y realiza algoritmos para solucionar
los problemas cotidianos, es así que al levantarnos de la cama ya tenemos en la
mente una serie de pasos que debemos seguir para llegar al sitio de estudio o al
sitio de trabajo. Una vez en el sitio de estudio, tenemos en nuestra mente una
serie de tareas que debemos realizar en unos horarios ya definidos.

Si quisiéramos realizar una comida especial, en nuestra mente construimos un


algoritmo o serie de pasos que debemos seguir en un orden específico para que
todo nos salga como queremos. Si quisiéramos transcribir estos pasos en una hoja
de papel, para que otra persona realizará las mismas tareas y obtenga el mismo
resultado que nosotros, debemos seguir una serie de normas para que esta otra
persona nos entienda. Por ejemplo debe estar escrito en el idioma que ella
comprende, se deben enumerar los pasos etc. Las normas que se deben seguir al
momento de transcribir el algoritmo depende de quien será el encargado de
ejecutarlo, por ejemplo si quisiéramos escribir la receta para que la ejecute una
persona adulta las normas serán diferentes a las que debemos seguir si
quisiéramos escribir la receta para que le ejecute una niña.

LAS CARACTERÍSTICAS DE LOS ALGORITMOS

1. Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

2. Un algoritmo debe estar definido. Si se sigue el algoritmo dos veces, se debe


obtener el mismo resultado cada vez.

3. Un algoritmo debe ser finito. Si se sigue el algoritmo. Se debe terminar en


algún momento, o sea debe tener un número finito de pasos.

7
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Los contenidos de un Algoritmo pueden ser: Cualitativos o Cuantitativos.


Un algoritmo es CUALITATIVO cuando en sus pasos o instrucciones no están
involucrados cálculos numéricos.
Ejemplo:
 Preparar una taza de café
 Cambiar una llanta de automóvil
 Realizar una llamada, utilizando la guía telefónica como directorio
telefónico
 Cocinar siguiendo una receta…. etc

Un algoritmo CUANTITATIVO involucra cálculos numéricos.


Ejemplo:
 Obtener el promedio de 4 notas
 Solución de un Factorial
 Solución de una ecuación de segundo grado.
 Encontrar el área de un cuadrado…. etc

Los algoritmos pueden ser representado en forma Literal o Gráfico.

Algoritmo Literal.

Enumeración de Pasos: Los pasos que deben seguir para la elaboración del
algoritmo se detallan secuencialmente de forma literal. Cada uno de estos pasos
se enumera en forma ascendente.

Ejemplo:

Pseudocódigo: La palabra pseudocódigo es una palabra compuesta por PSEUDO


que significa “supuesto” y CÓDIGO que es “conjunto de signos convencionales que
permiten representar los datos para su manejo en el ordenador”

Es una herramienta que permite escribir las instrucciones en lenguaje natural,


facilitando tanto la escritura como la lectura de los programas. En esencia, el
Pseudocódigo se puede definir como un lenguaje de especificaciones de
algoritmos, empleando palabras afines a ciertos lenguajes.

Para escribir los Pseudocódigos, debemos utilizar ciertas palabras que indican la
acción a tomar por el ordenador.

Español Inglés.
Constantes Constant - Cons
Variables Var
8
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Real Real, flota


Entero Integer - Int
Caracter Caracter - Char
Cadena Strin[longitud]
Lógico Bolean
Leer Read
Escribir Write
Imprimir Print
Inicio Start
Fin End

Si (condición) Entonces if (condición) then


Acción1 Accion 1
Sino else
Accion2 Accion 2
Fin_si endif

Hacer do
Instrucciones instrucciones
Mientras(condición) While(condición)

Mientras (condición) hacer While (condición)


Instrucciones Instrucciones
Fin Mientras enddo

Desde(Var=Val_ini hasta Val_final, var=var+#) For(Var=Val_inic To Val_fin,


var=var + #)
Instrucciones Instrucciones
Siguiente(var) Next(var)

Llamaremos a cada una de las palabras antes escritas como palabras reservadas
de los pseudocódigos y ninguna de estas podrán ser utilizada como nombre de
variables o constantes con nombres.

Algoritmo Gráfico.

Diagrama de Flujo: Un diagrama de flujo (flowchart) es una representación


gráfica de un algoritmo utilizando símbolos apropiados reconocidos
internacionalmente. Cada símbolo representa una acción y tiene relación con la
tarea que deberá realizar el ordenador. Un diagrama de flujo debe reflejar:
 El inicio del programa.
9
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

 Las operaciones
 La secuencia en que se realizan.
 El final del programa.

En el diseño de un diagrama es conveniente seguir las siguientes reglas:

 El símbolo de inicio debe aparecer en la parte superior.


 Los símbolos de inicio y fin deberán aparecer sólo una vez.
 El flujo de las operaciones debe representarse, si es posible, de arriba hacia
abajo y de izquierda a derecha, en cuyo caso pueden omitirse las puntas de
flecha.
 Las líneas de flujo siempre deben terminar en un símbolo o en otra línea. Caso
contrario provocará un llamado Cabo Suelto.
 Evite los cruces de líneas de flujo utilizando conectores o curvaturas.

Los símbolos más utilizados en un diagrama son los siguientes:

Símbolos Significado

Terminal (Inicio – Fin)

Operación de entrada/salida en general

Proceso o calculo en general.

Subprograma

Decisión: Caminos alternativos Si - No

Conector Interno (dentro de página)

Conector Externo (fuera de página)

Contador Automático: Proceso iterativo.

Teclado (ingreso de información por teclado)

Pantalla (presenta mensajes y/o resultados por


pantalla)
10
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Impresora (presenta mensajes y/o resultados por


impresora)

Ejemplos:

1. Algoritmo para lavarse las manos, se dispone de un grifo, jabón, papel y


corriente de aire caliente.

Enumeración de pasos
1. inicio
2. abrir el grifo
3. mojarse las manos
4. aplicarse jabón
5. enjuagarse las manos
6. cerrar el grifo
7. secarse las manos con papel
8. exponer las manos a la corriente de aire caliente
9 Fin.

Flujo-grama

INICIO Cerrar el grifo

Abrir el grifo
Secarse las manos
con papel

Mojarse las
manos Secarse las manos
con papel

Aplicarse jabón
Exponer las
manos a la
corriente de aire
Enjuagarse las caliente
manos

FIN
A

11
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

2. Desarrolle un algoritmo para cambiar la llanta de un auto.

Enumeración de pasos. Diagrama de Flujo


INICIO
1. Inicio
2. Abrir la cajuela Abrir la cajuela
3. Sacar llanta de emergencia y herramientas
4. Colocar la gata bajo el carro Sacar llanta de emergencia y
herramientas
5. Aflojar tuercas de la llanta dañada
6. Levantar el carro con la gata
Colocar la gata bajo el carro
7. Quitar las tuercas y sacar la llanta
8. Colocar la llanta de emergencia
Aflojar tuercas de la llanta
9. Bajar el carro dañada
10. Apretar las tuercas
11. Guardar herramienta y la llanta en la cajuela Levantar el carro con la gata
12. Cerrar la cajuela
13. Fin
Quitar las tuercas y sacar la
llanta

Colocar la llanta de
emergencia

Bajar el carro

Apretar las tuercas

Guardar herramientas y llanta


en la cajuela

Cerrar la cajuela

FIN
3. Algoritmo para lavarse las manos, se cuenta con un grifo de agua fría y
caliente, jabón, papel y corriente de agua caliente.

Enumeración de pasos
1. INICIO
2. Si (hace frío) Entonces
– Abrir el grifo de agua caliente
Sino
– Abrir el grifo de agua fría
Fin Si
12
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

3. Mojarse las manos.


4. Aplicarse jabón.
5. Enjuagarse las manos.
6. Cerrar el grifo de agua.
7. Secarse las manos con papel.
8. Exponer las manos a corriente de aire
caliente.
9. FIN

Diagrama de Flujo

Inicio

si ¿Hace no
frio?
Abrir grifo de Abrir grifo de
agua caliente agua fría

Mojarse las manos

Aplicarse jabón

Enjuagarse las manos

Cerrar el grifo de agua

Secarse las manos con papel

Exponer las manos a la


corriente de agua caliente

Fin

13
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Ejercicios propuestos de la Unidad.

Resolver los siguientes algoritmos y diga a que clases pertenecen (cuantitativo o


cualitativos)

1. Elaborar los pasos necesarios para cruzar una avenida, haciendo uso de un
semáforo.
2. Escriba los pasos para llegar al cine haciendo uso del siguiente bosquejo:

3. Elabore un algoritmo que permita obtener la suma de dos números.


4. Se desea obtener suma, resta, multiplicación y división de 2 números. Los
números no deben ser iguales, ni el primer numero menor que el segundo.
5. Un cliente ejecuta un pedido a una fábrica. La fábrica examina en su banco de
datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta
el pedido; en caso contrario, rechazará el pedido.

14
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Capitulo 3

Introducción a la programación con C++

El lenguaje de programación C está caracterizado por ser de uso general, con una
sintaxis sumamente compacta y de alta portabilidad.

Es común leer que se lo caracteriza como un lenguaje de "bajo nivel". No debe


confundirse el término "bajo" con "poco", ya que el significado del mismo es en
realidad "profundo", en el sentido que C maneja los elementos básicos presentes
en todas las computadoras: caracteres, números y direcciones.

Esta particularidad, junto con el hecho de no poseer operaciones de entrada-


salida, manejo de arreglo de caracteres, de asignación de memoria, etc , puede al
principio parecer un grave defecto; sin embargo el hecho de que estas
operaciones se realicen por medio de llamadas a Funciones contenidas en
Librerías externas al lenguaje en sí, es el que confiere al mismo su alto grado de
portabilidad, independizándolo del "Hardware" sobre el cual corren los
programas, como se irá viendo a lo largo de los siguientes capítulos.

La descripción del lenguaje se realiza siguiendo las normas del ANSI C, por lo
tanto, todo lo expresado será utilizable con cualquier compilador que se adopte;
sin embargo en algunos casos particulares se utilizaron funciones Compilador ó
Sistema Operativo-dependientes, explicitándose en estos casos la singularidad
de las mismas.

Objetivos

Aprender algunos conceptos del lenguaje C++ con el _n de poder utilizarlo a lo


largo de la asignatura. Es decir, no necesitamos saber todos los detalles y
conceptos de este lenguaje.

Contenidos

1 Conceptos básicos de C++.


2 Clases en C++.
3 Algunas librerías estándar.

Bibliografía
 C++ estándar , de Enrique Hern_andez Orallo et al.
 The C++ Programming Language, de Bjarne Stroustrup.

15
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

El lenguaje C++

Diseñado por Bjarne Stroustrup en los Laboratorios AT&T a principios de los


años 80. Es una extensión de C (salvo detalles, C es un subconjunto de C++).

Objetivos del diseño de C++:

 Soporte para la programación modular: Espacios de nombres.


 Soporte para la programación orientada a objetos: Clases.
 Soporte para la programación genérica (plantillas). No todos los lenguajes
orientados a objetos la soportan.

Al igual que C, se trata de un lenguaje donde la eficiencia en tiempo de ejecución


se considera importante.

Por tanto, hay dos clases de extensiones respecto de C:


 Extensiones no orientadas a objetos: Espacios de nombre, sobrecarga de
funciones y de operadores, plantillas, nuevos tipos de datos, funciones
inline, nuevos comentarios, nuevas librerías, etc.
 Extensiones relacionadas con la programación orientada a objetos: Clases.

C++ no tiene soporte (estándar) para:


 Concurrencia.
 Recolección automática de memoria (como ocurre, por ejemplo, en Java).

C++ soporta programación orientada a objetos, pero no es imprescindible (se


puede utilizar C++ sin objetos).

Compatibilidad con librerías C y herramientas UNIX (make) para reutilización de


código.

Se ha convertido en un estándar de programación: iso/iec 98-14882. Esto


proporciona estabilidad al lenguaje. Este estándar incluye una biblioteca
estándar muy amplia que incluye, entre otras cosas, la Standard Template
Library: STL consistente en contenedores (vectores, listas, diccionarios, etc.),
algoritmos e iteradores genéricos que se pueden instanciar a diversos tipos de
datos.

16
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Conceptos básicos de C++

Comentarios. La inclusión de comentarios en un programa es una saludable


práctica, como lo reconocerá cualquiera que haya tratado de leer un listado
hecho por otro programador ó por sí mismo, varios meses atrás. Para el
compilador, los comentarios son inexistentes, por lo que no generan líneas de
código, permitiendo abundar en ellos tanto como se desee.

En el lenguaje C se toma como comentario todo carácter interno a los


símbolos: /* */. Los comentarios pueden ocupar uno o más renglones, por ejemplo:

/* este es un comentario corto */

/* este otro
es mucho
más largo
que el anterior */

Estos comentarios no se pueden anidar.


// ... comentario hasta el final de la línea

Tipos de datos

Tipos fundamentales

Vienen definidos por el propio lenguaje, en C++ se dividen en:

 Enteros o discretos (integral types)


 Tipos máquina: bool, char, short, int, long.
 Tipos enumerados: enum.

 Reales (coma flotante): float, double, long double.

float 32 bits
Tamaño dependiendo de la arquitectura, ejemplo: double 64 bits
 void. long double 96 bits
 se usa en funciones y punteros.
 no se pueden declarar variables de ese tipo.
 no consume memoria y no hay ningún operador aplicable a él.

17
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Tipo bool

 Puede tener dos valores: true y false


 El tamaño no está establecido en el estándar, suele ser un byte.
 Los valores numéricos se convierten implícitamente a tipos booleanos.
Valores distintos de cero se convierten a true y el cero a false.
 Los punteros también se convierten implícitamente.
Puntero a NULL o cero se convierte a false y el resto se considera true.
Caracteres

 Tipo char, tamaño: 1 byte.


 Las variables y literales de tipo char se pueden sumar, restar, etc. ya que
son de tipo aritmético.

Literales: Se delimita por dos apostrofes ’’. El carácter de escape \ sirve para
codificar algunos caracteres como ’\n’, etc.

Cadenas: Secuencia (vector) de caracteres acabados en el carácter nulo ’\0’.


Las cadenas se delimitan con comillas "", ejemplo: "Hola\nmundo\n".

Tipos derivados

Se obtienen de los tipos fundamentales usando los siguientes símbolos de


declaración:

18
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Expresiones. Operadores.

Pasos para obtener un Programa de Computadora:

1. Enunciado del problema.


2. Análisis y Formulación Matemática.
3. Definición de variables.
4. Diseño de salida de datos y resultados (Diseño de Pantalla)
5. Diagramación.
6. Prueba de Escritorio.
7. Codificación.
8. Digitación.
9. Compilación y Depuración.
10. Ejecución y Verificación.
11. Documentación.

1. Enunciado del problema: Este debe ser claro, concreto y preciso, es


decir debe indicar la información de la cuál se dispone y qué cálculos se
desea realizar.
2. Análisis y Formulación Matemática: Consiste en desarrollar manualmente
el problema planteado y obtener de ser menester, las fórmulas que
permitan realizar los cálculos necesarios para llegar a la respuesta
correcta.
3. Definición de Variables: Consiste en que a cada ítem (elemento) del
problema debe asignársele un identificador (nombre de variable).
4. Diseño de Salida de Datos y Resultados: Consiste en codificar en una
hoja de diseño de salida de computación, la forma como el programador
desea que salgan sus datos y resultados.
5. Diagramación: Es la parte más importante en la obtención de un programa
fuente, en el se encuentran estructuradas en forma lógica y secuencial
todas las operaciones que se necesitan para resolver un determinado
problema.
6. Prueba de Escritorio: Consiste en ubicar en una sola línea todas las
variables que participan en el diagrama de flujo; reemplazadas por
19
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

valores y realizando un seguimiento desde su inicio hasta su fin. Cuando el


diagrama es funcional comprobado por la prueba de escritorio se puede
pasar al siguiente paso (codificación) caso contrario debe
reestructurarse el diagrama.
7. Codificación: Es el paso del contenido del diagrama de flujo a una hoja de
codificación orientada a un lenguaje de programación utilizando palabras
reservadas propias del mismo lenguaje.
8. Digitación (Edición): Es la fase en que por primera vez tenemos contacto
directo con el ordenador. En este paso realiza el proceso de ingreso del
contenido de la hoja de codificación al computador.
9. Compilación y Depuración: Este paso consiste en que nuestro programa
fuente, que está escrito en un lenguaje de programación de alto nivel, se
convierta en un programa objeto, el cual quedará en lenguaje de máquina
(entendible por el ordenador) mediante el uso de un compilador. Al
momento de compilar pueden detectarse errores.
Depurar, es eliminar esos errores; se pueden distinguir tres tipos de
errores:
a) Errores de Compilación: Se producen normalmente por el uso
incorrecto de las reglas de sintaxis que utiliza el lenguaje de
programación, si existen errores de sintaxis la computadora no
interpretará la instrucción y no se generará el programa objeto.
b) Errores de Ejecución: Se producen por instrucciones que el
computador pueda comprenderlas pero no ejecutarlas; estos tipos
de errores pueden producir la parada repentina del programa.
10. Ejecución y corrección de Errores Lógicos: En este proceso se utiliza
una amplia variedad de datos de entrada, llamados Datos de Test, estas
pruebas determinan si el programa no tiene errores lógicos.
Errores Lógicos: Estos errores se producen en la lógica del programa.
Cuando estamos corriendo (ejecutando) nuestro programa por primera
vez, introducimos como datos de entrada los utilizados en el análisis y
prueba de escritorio, con el fin de darnos cuenta si se consiguen los datos
esperados, si no es así puede ser por causa de una mala programación, que
la lógica utilizada no es la correcta en este caso se debe volver al diseño
del algoritmo, o que al momento de codificarlo y/o editarlo nos saltamos
unos o varios pasos.
11. Documentación: Consiste en la preparación de una carpeta, manual o
listado (manual de usuario) con instrucciones para ejecutar el programa e
interpretar sus resultados, con el propósito de que éste puede ser
utilizado por personas diferente al programador. Se incluyen los
numerales desde el 1 al 7.

Variables:
20
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Es una pequeña porción de memoria del computador, en la que se almacenan datos


o valores que pueden modificarse durante la ejecución de nuestro programa.
Antes de usar una variable, primero se debe definir el tipo de dato (numérico,
alfabético, alfanumérico, lógicos) y un identificador para poder llamarla.

Constante:

Al contrario que las variables, las constantes mantienen su valor durante la


ejecución de todo el programa y, a los mismos que las variables se necesita de un
identificador para llamarlas.

Identificador:

Un identificador son los nombres que damos a las variables o constantes,


funciones, etiquetas y otros objetos definido por el usuario. Está formado por
una secuencia de letras y dígitos, aunque también acepta el carácter de
subrayado ( _ ). Un identificador no acepta los acentos ni la ñ, Ñ.

Reglas para dar nombre a las Variables o Constantes:

1. El primer carácter de un identificador debe ser una letra o el carácter de


subrayado “_”.
2. Debe tener una longitud máxima de 32 caracteres.
3. No acepta espacios en blancos de por medio, ni algún carácter diferente
del guión “_”.
4. No pueden existir 2 o más variables con el mismo nombre.
5. Se diferencian las mayúsculas de las minúsculas, así nombre, Nombre,
NOMBRE, nombrE son identificadores distintos.

Variables:
Correcto -----> cont, cuenta23, balance_total, _direccion,
Incorrecto -----> 1cont, hola!, balance...total, dirección del domicilio.

Constantes:
Correcto ------> sueldo=560.79, Dia=6, mes=’Enero’, anio=2011, pi=3.141
Incorrecto -----> sueldo=$345.90, día=7, año=2011

Tipos de Datos que almacenan las variables:

Los datos que se manejan al interior de la memoria del ordenador son variados,
por ejemplo pueden ser solo números, solo letras, solo un carácter, solo valores
21
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

lógicos (verdadero – falso), o combinación de letras y números. Estos datos se


clasifican en:
Datos Numéricos: Lo constituyen los dígitos (0 al 9), valores numéricos, sean
estos enteros o reales (decimales). Ej. A=5, b=10, c=2450, x=34.05, y=324.704,
z=5*2+3, r=b+z, etc.

Datos Alfanuméricos: Son aquellos que se pueden expresar o representan una


idea, estos datos se escriben entre comillas o apóstrofos(comilla simple); estos
datos pueden ser cadena de caracteres (cuando se escriben más de un carácter)
o carácter (cuando solo sea de un carácter). Ej. C=“Hola”, a=‘Felicitaciones’,
‘INGRESE UN NUMERO’, op=“S”, opn=‘n’, nombre=”MARIA”, x=’12’

Datos Lógicos: Los valores lógicos están constituidos por verdadero y falso, .T. o
.V. (true=verdadero) , .F. (false=falso), 0 y 1 (falso y verdadero),o, cuando se
evalúe una expresión. X=false, Y=.t. , L=.f. S=true, bandera=5<2 PRO=3<-5

Expresiones Algebraicas.

Una expresión algebraica o aritmética, es la combinación de constantes con


variables unidas mediante caracteres operacionales aritméticos.

Para poder hacer uso de las expresiones algebraicas en los algoritmos, es


necesario transformarlas a expresiones algorítmicas; para ello debemos
ponernos de acuerdo en el uso de ciertos símbolos que son comunes en la
programación.

Una expresión aritmética está formada por dos términos, el término del lado
izquierdo representado por una variable y el término del lado derecho
representado por la expresión a evaluar; los dos términos están unidos por el
carácter de asignación que en un algoritmo es representado por una flecha con la
punta hacia la izquierda (←). Ejemplo:

 suma ← 5 + 3 +15 suma ← 23


Expresión
Variable
Carácter de asignación

Jerarquía de los Operadores Aritméticos.

1. Se evalúan las operaciones que están dentro de los paréntesis. Si se


encuentran anidadas (unas dentro de otras), se evalúa las que están más en el
interior.
22
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

2. Si se combinan operadores de igual jerarquía, los cálculos se realizan de


izquierda a derecha.
3. Cuando hay expresiones que tienen operadores de más de una categoría, se
resuelven primero las que tienen operadores aritméticos, luego las que tienen
operadores de comparación (tienen todos la misma prioridad) y por último los
operadores lógicos.
4. Las operaciones aritméticas, se evalúan de acuerdo al siguiente orden de
prioridad:

JERARQUÍA OPERADOR SIGNIFICADO


1 () Funciones.
2 ^, **, Exponentes
3 *, /, DIV(\), Multiplicación, División (decimal),
MOD(%) División (entera), Resto de División
(entera)
4 +, - Suma, Resta
5 <, >, =, < >, <=, Operadores de Relación.
>=
6 AND Conjunción Lógica
7 OR Disyunción Lógica
8 NOT Negación Lógica

Los operadores aritméticos DIV y MOD sólo trabajan con números enteros.

Operadores Lógicos:

Las expresiones de relación pueden combinarse para formar expresiones más


complejas utilizando los operadores lógicos. Básicamente son tres:

AND (Y, ^, &&) OR(O, v, ||)


Expresi Expresión Resultad
Expresi Expresión Resultad ón 2 o
ón 2 o
Verda Verdad Verdad
Verdad Verdad Verdad d
Verdad Falso Falso Verdad Falso Verdad
Falso Verdad Falso Falso Verdad Verdad
Falso Falso Falso Falso Falso Falso

NOT (NO, ¬, ~, !)
23
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Expresión Resultad
o
Verdade Falso
ro
Falso Verdade
ro

El operador lógico AND, produce un resultado verdadero sólo si las dos


expresiones son verdaderas; en los demás casos produce falso. El operador lógico
OR produce un resultado verdadero si ambas o una de las dos expresiones es
verdadera; si ambas son falsas produce un resultado falso. El NOT, simplemente
niega una expresión.

Ejercicios:
1) X=4+3>10 4) X=(“José” = “josé”)
2) A=(’las rosas son rojas’) y B=’el gato ladra’) 5) (5*6=30) v (45 > 60)
3) X= ! [(7>2) && (4 <> 15) 6) !(25 % 5=0)

Ejercicios de Aplicación:

1. Transformar las siguientes expresiones algebraicas a algorítmicas.


 4x + 5y
Solución: 4*x+5*y

 3x2 + 7x – 5
Solución: 3 * x^2 + 7*x – 5

 5x2 - ⅜x + 352
Solución: 5 * x^2 – 3/8 * x + 352

 Vot + ½ at2
Solución: Vo * t + 1/2 + a * t^2

2. Encontrar el valor numérico de las siguientes expresiones algorítmicas:

 14 – 4 / 2 + 89
14 – 2 + 89
101

 4+3*2+2*3
4+6+6
16
24
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

 -8 * 4 + 3 ^ 2 / 4 – 1
-8 * 4 + 9 / 4 – 1
-32 + 2.25 – 1
- 29.75

 (5 – 3 ^ 2) * 2 + 8 / 4 + 6 MOD 2
(5 – 9) * 2 + 8 / 4 + 6 MOD 2
- 4 *2 + 8 / 4 + 6 MOD 2
-8 + 2 + 0
-6

Problemas propuestos de la Unidad.

8. Encontrar el valor numérico de las siguientes expresiones:


 E = (8 + 3) * 4 DIV 3 MOD 5 + 3
 (3 + 15 DIV 2) / 2 ^ 3 MOD 5
 (7 > 5) AND (5 < 8)
 (15 MOD 7 = 1) AND (89 > 89)
 (6 * 2 = 10) OR (45 > 12)
 Si a=1, b=3 y c= -2, encontrar el valor numérico de:
 X←a+b+c
 X ← (a * b) - c
 Total ← 25 mod 8 + 4 ^ 2 * redondeo (10.51)
 Cuál es el valor de e, r, w luego de ejecutar las instrucciones siguientes:
e←2
r←4
w←e+r*3
r ← w mod r
e←r–w
w ← w div r

 8 / 4 * 6 / 12 + 6 / 2 / 3 / 5 ^ 3 / 4 * 3

Capitulo 4
Estructura de Control: Secuencia – Selección – Bucles.

Estructuras de Control.
25
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Teorema de la Estructura.

Este teorema establece que cualquier programa correcto puede ser escrito
usando solamente las estructuras de control de:

- Secuencia
- Selección.
- Control loops o Iteración (bucles).

 Secuencia:
En términos de diagramación, la secuencia está por representada por una
función después de otra.

A y B pueden ser desde simple sentencias hasta módulos completos.

Ejercicios de Aplicación:

1. Elaborar un diagrama que permite mostrar la suma, resta, producto y


cociente de dos números.

Análisis Matemático:
Suma = número1 + número2
Resta = número1 – número2
Producto = número1 x número2
Cociente = número1  número2

Definición de Variables:
PN= Primer número ingresado.
SN = Segundo número ingresado.
S = Suma
R = Resta
P = Producto
C = Cociente.

Diagramación:
26
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Algoritmos:
Literal: (Enumeración de pasos)}
1. Inicio.
2. Ingresar primer número; PN
3. Ingresar segundo número; SN
4. Procesos:
S ← PN + SN
R ← PN - SN
P ← PN * SN
C ← PN / SN
5. Visualizar resultados; S, R, P, C
6. Fin.

Pseudocódigo:
Inicio
Muchos programadores escriben las
Leer primer número; PN
instrucciones de un Pseudocódigo en el
Leer segundo número; SN idioma inglés:
S ← PN + SN Star
R ← PN – SN Read, (PN)
P ← PN * SN Read, (SN)
S ← PN + SN
C ← PN / SN
R ← PN – SN
Escribir; S P ← PN * SN
Escribir: R C ← PN / SN
Escribir; P Write, S,R,P,C
Escribir; C End

Fin

Diagrama de Flujo: INICIO

PN, SN

SPN+SN
RPN-SN
PPN*SN
CPN/SN

S, R, P, C

Prueba de Escritorio
FIN
PN SN S=PN+SN R=PN- P=PN*SN C=PN/SN S R P C
SN
10 5 S=10+5 R=10- P=10*5 C=10/5 15 5 50 2
5
27
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

15 2 S=15+2 R=15- P=15*2 C=15/2 17 13 30 7.5


2

2. Se desea obtener el área del cuadrado, teniendo como datos de entrada la


base y altura.

Análisis:
Área = base x altura

Definición de Variables:
B = Base
H = Altura
A = Área

Diagramación:
Algoritmo:
Pseudocódigo.
Inicio
Leer Base; B
Leer Altura; H
A←B*H
Escribir; A
Fin

Diagrama de Flujo:
INICIO

B, H

AB * H

 Selección:FIN
Es la selección entre dos acciones basadas en una condición, llamada
estructura IF …. THEN …… ELSE …. Donde IF evalúa la expresión; THEN
ejecuta una o varias sentencia si la expresión es verdadera; ELSE ejecuta
una o varias sentencias si la expresión es falsa. En ciertas ocasiones pueden
utilizarse estructuras que ejecuten unas o varias sentencias sólo si la
expresión es verdadera (THEN); en caso contrario el programa sigue su curso
28
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

(selección simple). El diagrama siguiente representa la estructura de


selección.

Selección Simple Selección Doble

SI NO SI
Condici Condici
ón ón

Sentencias Sentencias1 Sentencias2


NO

Ejercicio de Aplicación:

1. Se desea ingresar por teclado el sueldo de un empleado, si gana desde $ 500


en adelante, mostrar el mensaje “Crédito Aceptado”.

Análisis:
Sueldo >= 500 mostrar “Crédito Aceptado”

Definición de Variables:
n$ = Nombre del empleado
sueldo = Sueldo del empleado

Diagramación.
Algoritmo:
Pseudocódigo:
Inicio
Leer Nombre el empleado; n$
Leer Sueldo del Empleado; sueldo
Si (sueldo >= 500) entonces
Escribir “Crédito Aceptado”
Fin_Si
Fin
Diagrama de Flujo.

INICIO

n$, sueldo

sueldo SI “Crédito
>= 500 Aceptado”

NO 29

FIN
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

2. Elaborar un diagrama que permita el ingreso de dos números y mostrarlos en


orden ascendente (de menor a mayor) .

Análisis:
8 < 10 => SI (8, 10)
50 < 20 => NO (20, 50)
definición de Variables:
n1 = primer número
n2 = segundo número

Diagramación:
Algoritmo: Diagrama de Flujo
Pseudocódigo
INICIO
Inicio
Leer Primer número; n1
n1, n2
Leer Segundo número; n2
Si (n1 < n2) entonces
Escribir; n1, n2 n2, n1
NO
n1 < n2
SI
n1, n2
Sino
Escribir; n2, n1
Fin-Si
Fin FIN

3. Se desea determinar si un número ingresado por teclado es par o impar.


Elabórese el diagrama que permita cumplir tal objetivo.

Análisis:
Se conoce que un número es par cuando su último término es múltiplo de 2
(divisible para 2) o 0; al contrario será un número impar.
26 2 19 2 50 2
06 13 1 9 10 25
0 0

Observe que en los números pares el


residuo es 0. MOD lee el residuo.

Definición de Variables:
N1 = Número Ingresado por teclado
30
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

Op$ = Opción para continuar

Diagramación.
Algoritmo: Diagrama de Flujo.
Pseudocódigo:
Inicio INICIO

Leer Número; N1
N1
Si (N1 MOD 2 = 0) Entonces
Escribir “Es Par”
SI
SINO “impar”
NO N1 MOD 2
“Par”
Escribir “Es Impar” =0

Fin-Si
Leer Opción; Op$
Si Op$ = “S” Entonces
Ir al inicio FIN

Fin-Si
Fin.

 Iteración:
La estructura de iteración se utiliza para la ejecución repetida de
instrucciones mientras se cumpla una condición. El siguiente diagrama
representa la estructura de iteración.

Desde / Hasta Hacer/hasta que Mientras/hacer

Sentencias Sentencias
Sentencias

Condici
Condici ón
ón

Contadores:
Un contador es un campo de memoria cuyo valor se incrementa en una cantidad
fija. Un contador toma un valor inicial antes de empezar su función,
posteriormente, y cada vez que se realiza el suceso a contar, incrementa su valor
(1 en la mayoría de los casos). Un contador se utiliza en los siguientes casos:

- Para repetir una acción un número de veces.


- Para contar un suceso particular solicitado por el enunciado del problema.
- Se lo representa tomando como referencia la siguiente sintaxis:

31
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

a =a+1
Variable Incremento

Valor de Variable
Acumuladores:
Un acumulador es un campo de memoria cuyo valor se incrementa sucesivas veces
en cantidades variables. Se utiliza en aquellos casos en que se desea obtener un
total acumulado de un conjunto de cantidades, es necesario iniciarlo con valor 0.
Se los representa tomando en cuenta la siguiente sintaxis:

a=a+b
Variable Valor almacenar

Valor de Variable

Ejercicios de Aplicación:

1. Elaborar el diagrama que permita mostrar 10 veces el mensaje “Hola Amigos”.

Definición de Variables:
a = Contador
Diagramación:
Algoritmo: Diagrama de Flujo
Pseudocódigo. Inicio
Inicio
Desde a = 1 hasta 10 a = 1 hasta 10

Escribir “Hola Amigos”


“Hola Amigos”
Fin-Desde
Fin.

Fin

2. Se desea ingresar 10 número, determinar cuantos de ellos son positivos,


cuantos negativos y cuantos nulos.

Análisis:
5 p=p+1
-34 n=n+1
0 nu = nu + 1

Definición de Variables
N1 = Ingreso de número.
C = Contabiliza los 10 número
32
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

NU = Contador para números nulos


P = Contador para número positivos
N = Contador para números negativos.

Diagramación:
Algoritmo: Diagrama de Flujo
Pseudocódigo:
Inicio
Inicio
C=C+1
C  0: NU  0
Leer Número; N1 P  0: N  0
Si (N1 = 0) entonces
C=C+1
Escribir “Es Nulo”
NU = NU + 1 N1

SINO
SI NO
Si (N1 > 0) Entonces N1 = 0

Escribir “Es Positivo” NO N1 > 0 SI


P=P+1
“Nulo” “Negativo “Positivo”
SINO ”
Escribir “Es Negativo” NU = NU +1 N=N+1 P=P+1
N=N+1
Fin-Si
NO C = 10
Si (C = 10) Entonces
Escribir; NU, P, N SI
NU, P, N
SINO
Ir al segundo paso. Inicio
Fin-Si
Fin.

Problemas propuestos de la Unidad.

1. Una empresa cuenta con 20 empleados, el departamento de estadística


desea saber cual es el valor total que a pagado a sus empleados como
sueldo, teniendo como datos de entrada el nombre del empleado, cargo,
sueldo. Elabórese el diagrama que permita cumplir tal objetivo.
2. Obtener la suma de todos los número múltiplos de 3, desde el 3 hasta n
términos. El valor de n debe ser ingresado por teclado.
3. Se desea obtener los Divisores primos de un valor X
4. Elaborar un algoritmo que permita calcular y mostrar el área de un
rectángulo, teniendo como entrada la Base y Altura.

33
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.

5. Elaborar el algoritmo que permita leer un valor correspondiente a una


distancia en millas marinas y la escriba expresadas en metros. Sabiendo
que 1 milla marina equivale a 1852 mts.
6. Se desea obtener el factorial de un número.
7. Elaborar un diagrama que permita obtener la tabla de multiplicar de un
valor X, la misma que deberá ir desde 1 hasta el 20.
8. Se desea obtener la sumatoria de 20 números ingresados por el usuario.
9. Elaborar un diagrama de flujo que permita ingresar 20 números;
determinar cuántos son pares y cuantos son impares; y si la suma de los
mismos es par o impar.
10. Diseñe un algoritmo que permita ingresar el nombre y edad de una persona,
detectar si es mayor o igual que 40 presentar “Persona Madura”; si está
entre los 18 y 40 presentar “Adulto”; si es menor o igual que 18 presentar
“Joven”. En cualquiera de los casos finalizar.
11. Un hacendado desea saber cuál es el área de cada una de sus 10 haciendas
que tienen la forma de un triángulo rectángulo, ingrese los datos
necesarios y presentar cada uno de los resultados. No se puede ingresar
valores negativos.
12. Se desea ingresar un número positivo, multiplicarlo desde el 1 hasta el 12 y
presentar cada uno de los resultados, luego finalizar. (tabla de multiplicar)
13. Se desea mostrar el cuadrado de los números del 1 al 10.
14. Una empresa desea incorporar en el departamento de estadística 15
empleados. Para ello deberá ingresar el nombre, apellidos, edad y sexo;
mostrar cuantos de ellos son hombres y cuantos son mujeres.
15. En el ejército se desea detectar automáticamente a las personas que
tienen una estatura mayor a 1,60 metros. Realizar un diagrama que
ingresar el nombre, apellidos y la estatura de 20 personas. Si es mayor a
1,60 metro presentar “Puede ingresar al Ejercito” caso contrario
presentar “Persona no Idónea”. Además se desea contabilizar y mostrar el
total de personas Idóneas y el total de personas no idónea.

34

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy