Está en la página 1de 64

Programación en

Lenguajes
Estructurados
Segundo de Bachillerato Técnico en Comercio y
Administración Especialidad Aplicaciones
Informáticas
Informáticas.

Alumn@:

_______________________________________________________________

Ing. Víctor Martínez Falcones


Http://Cewr.schools.officelive.com
“…Porque no es lo mismo instruir que formar para la vida…”
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


2
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Víctor Martínez Falcones
Página Web: avenetenterprise.web.officelive.com
E-mail:
mail: avenet_enterprise@hotmail.com
Derechos Reservados.

Ninguna parte de este documento puede ser reproducido por medio alguno,
grabada en sistemas de almacenamiento o transmitido por forma alguna ni por
cualquier procedimiento sin autorización
autorización previa y por escrito del autor.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


3
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

POLÍTICAS BASADAS EN LOS REGLAMENTOS Y ESTATUTOS DEL CENTRO


EDUCATIVO PARTICULAR “WENCESLAO RIJAVEC”

DE LOS CUADERNOS Y MODULOS DE TRABAJO:


1. Los módulos deben ser calificados por cada día que se reciba la materia respectiva, en el caso de
no presentarse podrá sacar fotocopiado de las páginas en el tema correspondiente.
2. Para la edición del cuaderno se utilizara exclusivamente esteros de color Negro, Azul o verde y
para los códigos o algoritmos utilizar lápiz (Recomendable lápiz con minas).
3. Se calificara resuelto únicamente TODAS las actividades propuestas en cada una de las

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


unidades del modulo

DE LAS TAREAS EXTRACLASES.


1. Las tareas deben presentarse en el DÍA y la HORA que indique el profesor de lo contrario
obtendrá una penalidad del 50% de la nota total si el estudiante presenta sin justificación por
escrito.
2. Los trabajos individuales y lecciones realizadas deben presentarse y almacenarse en la carpeta
que ha solicitado el profesor, escritos con esferos negro y azul (no se acepta hechos en
computadoras, salvo el caso que autorice el profesor).
3. El estudiante que no presente trabajos extra clases (tareas y cuadernos) o Módulos de trabajo
en la fecha señalada se le citara a su respectivo representante LEGAL en caso de reincidencia.
4. Se tomara las pruebas escritas de los trabajos investigativos propuestos en la fecha señalada
con una acreditación del 75% de la calificación y el restante es la presentación escrito de la
investigación escrita a mano, puntualizando los siguientes tópicos: a)Tema, b) Resumen y
c)Conclusiones.
5. Si en trabajos individuales concurriesen indicios de copia COMPROBADO POR EL PROFESOR
la nota de su trabajo será dividido para el número de integrantes que realizaron dicha acción.

DE LOS PROYECTOS:
1. Los Proyectos deben presentarse en el día y la hora en que han quedado de acuerdo el profesor
y estudiantes.
2. La nota que se obtenga del trabajo grupal será la misma para todos los integrantes que la
conforman, para lo cual se considerara el material de exposición (Papelógrafo, diapositivas, etc.),
informe (computadora) y defensa del mismo.
3. Si un estudiante del grupo faltare (sin justificación) en la fecha señalada para su presentación o
exposición del trabajo, tendrá el 50 % de la calificación que obtenga el grupo.
4. Después de la fecha señalada se receptaran SOLO el informe del trabajo grupal con un plazo
máximo de una semana y con una penalización del 50% sobre la nota que obtenga el grupo.

DE LAS LECCIONES ESCRITAS:


1. Se tomara las lecciones escritas en cada clase sobre dos puntos, del tema tratado anteriormente
cuya duración será como máximo de 10 minutos.
2. Si el alumno faltare (sin justificación) en la fecha señalada de la lección, tendrá el 1% de la
calificación total de la misma.
3. Al final de cada parcial se sumara las lecciones escritas firmadas por el REPRESENTANTE
LEGAL y se sacara su promedio correspondiente.

DE LOS EXÁMENES:
1. No podrá rendir el examen si el estudiante no ha presentado el cuaderno o trabajos pendientes,
por lo cual dicha evaluación llevara un mayor grado de complejidad el día en que lo desarrolle.
2. Se tomaran los exámenes en el día y hora señalados por las autoridades del Centro Educativo
presentando el oficio o derecho correspondiente.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


4
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

CONTENIDO TEMÁTICO.

Contenido Temático. ----------------------------------------------------------------------------------4


Campo Ocupacional Del Estudiante De Bachillerato Técnico Informática. -------6
Iconografía. -----------------------------------------------------------------------------------------------7
Unidad N° 1: El Software. ----------------------------------------------------------------------------8
Competencia. -------------------------------------------------------------------------------- 8
¿Qué es un Programa informático? ------------------------------------------------------- 8

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Ciclo de Vida de una Aplicación Informática. ------------------------------------------- 9
Errores en la depuración de los programas. ------------------------------------------- 11
Documentación del programa ------------------------------------------------------------ 12
Objetos de Un Programa. ----------------------------------------------------------------- 13
Lenguaje de Programación. --------------------------------------------------------------- 14
Unidad N° 2: Metodología de la Programación. -------------------------------------------- 22
Competencia. ------------------------------------------------------------------------------- 22
El Algoritmo. -------------------------------------------------------------------------------- 22
Técnicas de programación ---------------------------------------------------------------- 24
Unidad N° 3: C, un lenguaje procedimental estructurado. ---------------------------- 28
Competencia. ------------------------------------------------------------------------------- 28
Breve historia del lenguaje C. ------------------------------------------------------------ 28
¿Qué es el Lenguaje C? -------------------------------------------------------------------- 29
Anatomía de un programa en C. --------------------------------------------------------- 30
Unidad N° 4: Comenzando a programar en C. ---------------------------------------------- 37
Competencia. ------------------------------------------------------------------------------- 37
Variables y Constantes. ------------------------------------------------------------------- 37
Operadores. --------------------------------------------------------------------------------- 41
Proposiciones para el control de flujo de programa ----------------------------------- 42
Funciones.----------------------------------------------------------------------------------- 47
Ámbito de las variables (scope) ----------------------------------------------------------- 51
Unidad N° 5: Estructuras estáticas. ----------------------------------------------------------- 54
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


5
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Competencia. ------------------------------------------------------------------------------- 54
Estructuras --------------------------------------------------------------------------------- 54
Arreglos -------------------------------------------------------------------------------------- 56
Arrays y strings como argumentos de funciones -------------------------------------- 58
Arreglos bidimensionales------------------------------------------------------------------ 60
Array de estructuras. ---------------------------------------------------------------------- 62
Bibliografía---------------------------------------------------------------------------------------------- 64

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


6
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

CAMPO OCUPACIONAL DEL ESTUDIANTE DE BACHILLERATO TÉCNICO


INFORMÁTICA.

Programación en lenguajes Estructurados.

Competencia General. Elaborar, adaptar y probar programas en lenguajes de programación


estructurados y de cuarta generación.

Información (naturaleza, tipo y soportes):

 Información sobre elaboración de algoritmos.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


 Información sobre simbología para la elaboración de diagramas de flujo. Información
sobre metodología de la programación.
 Manuales de referencia de lenguaje C (editor, compilador, depurador, librerías, etc.).
 Información sobre programación orientada a objetos (C++, Visual Basic).
 Información sobre diseño de interfaces de usuario (pantallas, menús, informes, etc.).

Equipos informáticos y software:

 Computadores, impresoras.
 Lenguajes de programación estructurados y de 4ª generación (lenguaje C, C++, Visual Basic)
para realizar aplicaciones amigables al usuario.

Procesos, métodos y procedimientos:

 Procedimientos de elaboración de algoritmos para la resolución de problemas.


 Procedimientos de programación en lenguaje C (editores traductores, depuradores).
 Procedimientos de uso y manejo de librerías del sistema.
 Procedimientos de programación orientada a objetos (C++).
 Interpretación de mensajes de error de compilación y de ejecución.

Principales resultados del trabajo:

 Obtención de código ejecutable por el computador.


 Pruebas del funcionamiento del programa.
 Instrucciones de uso de las aplicaciones desarrolladas.
 Integración y enlace de programas y rutinas.
 Adaptación de aplicaciones existentes para que satisfagan nuevos requerimientos.

Personas y/u organismos destinatarios del servicio:

 Usuarios finales.
 Programadores.
 Analistas de sistemas.
 Técnicos de sistemas.
 Clientes.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


7
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

ICONOGRAFÍA.

Icono Significado

Actividad Intraclase.

Actividad Extra clase.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Diagnostico

Investigación.

Nota.

Practicar en el laboratorio.

Código compilado en lenguaje de Programación.


Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


8
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

UNIDAD N° 1: EL SOFTWARE.
SOFTWARE

Competencia.
Competencia.

Emplear los componentes básicos del desarrollo del software en un lenguaje de


Programación con agilidad y precisión.
precisión

1. Conteste: ¿Qué es un computador?


2. ¿Qué es la programación?
3. Realice una explicación referente a la siguiente grafica de procesos del

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


procesamiento de datos:

Salida
Proceso

Entrada

4. ¿Cuáles son los tipos de datos que soporta el computador?


5. ¿Cuáles son los tipos de operadores?
6. Escriba una diferencia y una similitud entre
entre los operadores de relación y los
operadores lógicos.

¿Qué es un Programa informático?

Un programa informático o software es s una lista de instrucciones que la


computadora debe seguir para procesar datos y convertirlos en información. Las
instrucciones se componen de enunciados usados en lenguajes de programación
como Basic, Pascal o C.

Características del programa:


 Debe ser confiable y funcional
 Advertir errores de entrada obvios y comunes
 Documentado adecuadamente
 Ser comprensible
 Codificado en el lenguaje apropiado
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


9
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Ciclo de Vida de una Aplicación Informática.

Se aplica el término de ciclo de vida en las ciencias naturales, especialmente en la


biología en la que se refiere a las diferentes etapas que recorre un ser vivo durante su
vida. Este término también se puede aplicar al mundo empresarial y más
concretamente al marketing, que distingue el ciclo de vida de los productos
(crecimiento, madurez y senectud).

En la ingeniería informática el término de ciclo de vida viene citado intrínsecamente


en la definición de la ingeniería del software que tiene como objeto el proceso de
desarrollo de aplicaciones informáticas. Este proceso comprende la definición de

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


requisitos, la especificación funcional, la descripción del diseño, la realización de los
programas, los métodos de prueba, y el mantenimiento. Es decir, este proceso
comprende el ciclo de vida. (Modulo de Análisis y diseño.)

Modelo Lineal - Secuencial.


El modelo lineal – Secuencial o Cascada pura es el más antiguo de todos los
modelos de ciclo de vida y sirve de modelo para otros modelos de ciclos de vida.

En un modelo en cascada un proyecto progresa a través de un secuencia ordenada de pasos


que son:
1. Análisis de requerimientos.
Se conoce también como definición del problema o análisis del programa. En este paso se
determinan la información inicial para la elaboración del programa. Es donde se
determina qué es lo que debe resolverse con el computador, de qué presupuestos se debe
partir... en definitiva, el planteamiento del problema.
Se requiere de 5 tareas: Determinación de los objetivos del programa, Determinación de
la salida deseada, Determinación de los datos de entrada, Determinación de los
requerimientos de procesamiento, Documentación del Programa1.
2. Diseño global.
Es diseñar cualquier sistema nuevo o las aplicaciones que se requieren para satisfacer las
necesidades. En este paso se genera una solución con técnicas de programación como
flujogramas, DFD, DER, DTE, etc. 2
3. Codificación y depuración.
Es la generación real del programa con un lenguaje de programación. En esta etapa se
hace uso de la lógica que desarrolló en el paso del diseño del programa para
efectivamente generar un programa. Se debe seleccionar el lenguaje apropiado para
resolver el problema.

1 La Documentación del Programa se mencionará detalladamente en temas posteriores.


2 Modulo de análisis y diseño de aplicaciones. Segundo de Bachillerato.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


10
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

4. Prueba del sistema.


Consiste en verificar la funcionalidad del programa a través de varios métodos para
detectar errores posibles: Chequeo de escritorio, Prueba manual de datos de muestra,
Prueba
ba de datos de muestra en la computadora, Prueba por un grupo selecto de usuarios
potenciales. (Pruebas BETA).
5. Mantenimiento del programa.3
Es el paso final del desarrollo del software. Alrededor del 75% del costo total del ciclo de
vida de un programa se destina al mantenimiento. El propósito del mantenimiento es
garantizar que los programas en uso estén libres de errores de operación y sean eficientes
y efectivos

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Ilustración 1 Funcionamiento del modelo Lineal - Secuencial.
Secuenci

Ventajas y desventajas del Modelo Lineal - Secuencial.


Este modelo contiene una serie de etapas que no se solapan, y el proyecto se va
revisando tras cada una de las etapas. Para poder pasar a la siguiente etapa se
tiene que haber conseguido todos los objetivos de la etapa anterior, es un proceso
secuencial.

e una buena aplicación cuando el problema es estable y cuando se trabaja con


Tiene
metodologías técnicas conocidas. Este modelo será apropiado para la migración de
una aplicación o a una versión de mantenimiento bien definida.

Con este modelo se tiene un seguimiento


seguimiento de todas las fases del proyecto y del
cumplimiento de todos los objetivos marcados en cada etapa tanto de costes, fechas
de entrega y lo más importante que pueden comprobar al final de cada etapa si el
proyecto cumple todas las necesidades del usuario.
usuari

A su vez esto es un problema ya que si el usuario se da cuenta de que falta una


tarea de la empresa en el proyecto una vez pasada esta etapa, el trabajo que hay

3Para ciertos autores definen del Modelo Lineal – Secuencial que esta etapa sea parte de la
PRUEBA, pero
ero se considera a esta etapa independiente de la misma.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


11
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

que realizar se retrasa en fechas de entrega y el coste es mayor. Por lo tanto esto
produce un fracaso en la industria ya que es reacio a las modificaciones de última
hora.

Por este motivo se puede modificar el modelo en cascada pudiendo pasar de una
etapa a la anterior, pero suele ser difícil ya que hay que rehacer la etapa anterior,
este modelo es el ciclo de vida del salmón. Por lo tanto este es un modelo poco
apropiado para proyectos con fecha de entrega corta, pero su rendimiento puede
mejorar notablemente variando el modelo de la cascada pura.

1. ¿Qué ventajas y desventajas posee el modelo


modelo de desarrollo de sistemas en que se está
tratando?
2. ¿En qué consiste cada una de las etapas del modelo propuesto?

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


3. Realizar la técnica didáctica del PNI (Positivo, Negativo e Interesante) Referente a la
metodología de desarrollo de sistemas en que se está
está tratando.
4. Realiza una línea del tiempo referente a las fases del modelo de desarrollo de
sistemas en que se está tratando.
5. Explique ¿Qué tareas s realizan en cada una de las actividades del modelo
propuesto?
6. ¿Cuándo es factible aplicar el modelo propuesto?
propuest

Errores en la depuración de los programas.

Depurar es correr el programa en una computadora y corregir las partes que no


funcionan. En esta fase se comprueba el funcionamiento de cada programa y esto
se hace con datos reales o ficticios. Cuando los programas están depurados, se
prueban. Cuando los programas se depuran, se pueden encontrar los siguientes
errores:

Errores de sintaxis o de compilación


Es una violación de las reglas del lenguaje de programación. Son más fáciles de
corregir, ya que son detectados
etectados por el compilador (posible error de escritura), el cual
dará información sobre el lugar donde está y la naturaleza de cada uno de ellos
mediante un mensaje de error.

Errores de Ejecución
Se deben generalmente a operaciones no permitidas como dividir
dividir por cero, leer un
dato no numérico en una variable numérica, exceder un rango de valores
permitidos, etc. Se detectan porque se produce una parada anormal del programa
durante su ejecución.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


12
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Errores de Lógica
Corresponden a la obtención de resultados que no son correctos y la única manera
de detectarlos es realizando suficientes pruebas del programa. Son los más difíciles
de corregir, no sólo por la dificultad de detectarlos, sino porque se deben a la propia
concepción y diseño del programa.

Errores de Especificación
Es el peor tipo de error y el más difícil de corregir. Se deben a mal diseño del
programa posiblemente por mala comunicación usuario programador y se detectan
cuando ya se ha concluido el diseño e instalación del programa, lo cual puede
implicar repetir gran parte del trabajo realizado

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Documentación del programa

Consiste en describir por escrito a nivel técnico los procedimientos relacionados con
el programa y su modo de uso. También se debe documentar el programa para que
sea más entendible.

¿Para quiénes son la documentación?


 Usuarios (Digitadores)
 Operadores
 Programadores
 Analistas de sistemas

Los documentos que se elaboran son el Manual de Usuario y el Manual del Analista.

A los usuarios se les elabora un manual de referencia para que aprendan a utilizar
el programa. Esto se hace a través de capacitaciones y revisión de la documentación
del manual de usuario. El manual del usuario no está escrito a nivel técnico sino al
de los distintos usuarios previstos y explica en detalle cómo usar el programa:
descripción de las tareas que realiza el programa, instrucciones necesarias para su
instalación puesta en marcha y funcionamiento, recomendaciones de uso, menús
de opciones, método de entrada y salida de datos, mensajes de error, recuperación
de errores, etc. Y a los operadores también por si se presentan mensajes de error,
sepan cómo responder a ellos. Además que se encargan de darle soporte técnico al
programa.

A los programadores a través del manual del analista para que recuerden aspectos
de la elaboración del programa o en caso que otras personas puedan actualizarlo o
modificarlo (darle mantenimiento) y no son necesariamente las personas que lo
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


13
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

diseñaron. Es por ello, que la documentación debe debe contener algoritmos y


flujogramas de los diferentes módulos que lo constituyen y las relaciones que se
establecen entre ellos; listados del programa, corridas, descripción de variables que
se emplean en cada módulo, cuáles son comunes a diferentes módulos módulo y cuáles
locales; descripción de los ficheros de cada módulo y todo lo que sea de importancia
para un programador.

A los analistas de sistemas que son las personas que deberán proporcionar toda la
información al programador. Estos se encargan de hacer una
una investigación previa
de cómo realizar el programa y documentar con las herramientas necesarias para
que el programador pueda desarrollar el sistema en algún lenguaje de
programación adecuado.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


1. Presente un informe, contestando: ¿Por qué la lógica es un aspecto
specto fundamental en la
programación? Considere además:: Definiciones de lógica, Lógica deductiva.
Siga las siguientes pautas:
Investigar el contenido de diferentes fuentes
Analizar el contenido investigado.
Establecer comparaciones.
Elaborar de cuadros esquemáticos.
es
Presentar el trabajo en plenaria.

Objetos de Un Programa.

Objeto. Concepto Tipos.


Dato. Es la expresión general
que describe los objetos Numéricos.
con los cuales opera el Alfanumérico.
programa.
Variables. Son zonas de memoria
cuyo contenido cambia
durante la fase de
procesamiento de
información
Identificadores. Son palabras creadas por
los programadores para
dar nombre a los objetos y
demás elementos que
necesitamos declarar en
un programa
Expresiones. Son representaciones de
un cálculo necesario para
la obtención de un
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


14
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

resultado.
Tipo de dato.
Operación de Es el modo de darle
asignación. valores a una variable.
Instrucción. Son órdenes. a) Instrucciones de
inicio/fin
b) Instrucciones de
asignación
c) Instrucciones de lectura
(entrada)
d) Instrucciones de escritura
(salir)
e) Instrucciones de

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


bifurcación
Operador. 1. Aritméticos (su resultado
es un número): potencia,
Un operador es un * , / , mod, div, + , -
símbolo o palabra que 2. Relacionales (su
significa que se ha de resultado es un valor de
realizar cierta acción verdad): =, <, >, <=, >=,
entre uno o dos valores <>
que son llamados 3. Lógicos o Booleanos (su
operandos. resultado es un valor de
Se aplica la jerarquía de verdad): not, and, or
los operadores. 4. Alfanuméricos : +
(concatenación)
5. Asociativos. (paréntesis)
Información. Es el conocimiento
relevante producido como
resultado del
procesamiento de datos y
adquirido por la gente
para realzar el
entendimiento y cumplir
ciertos propósitos.
Procesamiento de datos. Consiste en la recolección
de datos de entrada que
son evaluados y
ordenados para ser
colocados de manera que
produzcan información
útil.

Lenguaje de Programación.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


15
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Es un conjunto de símbolos junto a un conjunto de reglas para combinar dichos


símbolos que se usan para expresar programas. Constan de un léxico, una sintaxis
y una semántica.

Léxico:: Conjunto de símbolos permitidos o vocabulario

Sintaxis:: Reglas que indican cómo realizar las construcciones del


lenguaje

Semántica:: Reglas que permiten determinar el significado de cualquier

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


construcción del lenguaje.

Tipos de lenguajes de Programación.


Atendiendo al número de instrucciones necesarias para realizar una tarea
específica podemos clasificar los lenguajes informáticos en dos grandes bloques:

 Lenguaje de bajo nivel


 Lenguaje de alto nivel

Lenguaje de bajo nivel


Es el tipo de lenguaje que cualquier computadora es capaz de entender. Se dice que
los programas escritos en forma de ceros y unos están en lenguaje de máquina,
porque esa es la versión del programa que la computadora realmente lee y sigue.

Lenguajes de alto nivel


Son lenguajes de programación que se asemejan a las lenguas humanas usando
palabras y frases fáciles de entender.

En un lenguaje de bajo nivel cada instrucción corresponde a una


acción ejecutable por el ordenador, mientras que en los lenguajes de
alto nivel una instrucción suele corresponder a varias acciones.

Sus características son:

- Son independientes de la arquitectura física de la computadora.


- Permiten usar los mismos programas en computadoras de diferentes arquitecturas
(portabilidad), y no es necesario conocer el hardware específico de la máquina.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


16
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

- La ejecución
ución de un programa en lenguaje de alto nivel, requiere de una traducción del
mismo al lenguaje de la computadora donde va a ser ejecutado.
- Una sentencia en un lenguaje de alto nivel da lugar, al ser traducida, a varias
instrucciones en lenguaje entendible
entendib por el computador.
- Utilizan notaciones cercanas a las usadas por las personas en un determinado ámbito.
- Se suelen incluir instrucciones potentes de uso frecuente que son ofrecidas por el
lenguaje de programación.

Generaciones de Lenguajes.
1. Lenguajes dee máquina
2. Lenguajes ensambladores

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


3. Lenguajes de procedimientos
4. Lenguajes orientados a problemas
5. Lenguajes naturales

1. Presente un informe individual sobre las generaciones de los lenguajes


le indicadas en
este tema
Siga las siguientes pautas:
a. Considere: características
c de cada generación, ventajas
entajas y desventajas.
b. Investigar el contenido de diferentes fuentes.
c. Analizar el contenido investigado.
d. Establecer comparaciones.
e. Elaborar cuadros esquemáticos.
f. Presentar el trabajo en plenaria mencionando además su bibliografía.
bibliog
g. Formular conclusiones.

Clasificación de los lenguajes de alto nivel


Lenguajes de propósito general

- PL/1 - Pascal - Logo.


- Basic - Modula II - Forth
- C - Cobol. - ADA.
Lenguajes de cálculo científico.

- Fortran - ALGOL - Pascal


- ADA - APL
Lenguajes orientados a la gestión.

- Cobol - RPG.
Lenguajes de Simulación en general.

- GPSS. - Simula - Mimic


En el sistema educativo.

- ASSET - LOGO - Pascal.


- C - Basic
- Modula II - Pilot
Lenguajes orientados a Objetos.

- SmallTalk

Lenguajes Interrogativos.

- Prolog. - Base.
Lenguajes de Inteligencia Artificial.

- LISP. - Prolog.
1. Investigar en grupo de 2 personas sobre cada uno de los lenguajes de alto nivel
mostrados en la lista,
lista, considerando: características, creador(es), ejemplos de código
imágenes de programas compilados, ventajas y desventajas.
Se calificará:
ificará: Informe, Diapositivas,
Diaposit defensa oral y defensa escrita grupal.

Intérpretes y compiladores.
Los compiladores, los intérpretes y los ensambladores se encargan de traducir lo
que haya escrito en lenguaje de alto nivel (código fuente) y lo convierten a código
objeto (casi ejecutable).

Ilustración 2 Función de los compiladores, los intérpretes y los ensambladores

Compilador.
Es un programa que traduce un programa escrito en un lenguaje de alto nivel, por
ejemplo C++, en un programa en lenguaje de máquina que la computadora es capaz
de entender y ejecutar directamente. Ejemplo:

- Pascal - Ada
- Cobol - C, C++
- Fortran
El compilador, informa al usuario de la presencia de errores en el programa fuente,
pasándose
dose a crear el programa objeto cuando está libre de errores. El código objeto
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


18
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

puede ser ejecutado posteriormente. Una vez traducido un programa, su ejecución


es independiente
endiente de su compilación, esto involucra dos pasos en su operación:

1. Convertir código fuente


fu a objeto
2. Ejecutar el código objeto

Intérprete.
Es el que permite que un programa fuente escrito en un lenguaje vaya
traduciéndose y ejecutándose directamente sentencia a sentencia por la
computadora. Convierte uno por uno los enunciados del código fuente fu a código
objeto antes de ser ejecutados, esto involucra tres pasos en su operación:
operación

1. Análisis de la instrucción de esa línea

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


2. Traducción de esa línea (si ya está correcta) a código objeto
3. Ejecución de esa línea

Con el intérprete, cada vez que necesitamos ejecutar el programa


tenemos que volver a analizarlo porque no hay código objeto. Con el
compilador, aunque más lenta la traducción, sólo se realiza una vez.

Ejemplo práctico sobre los lenguajes de Programación:

Supongamos que se han almacenado


almacenado tres valores 5 = 01012, 25 = 110012 y 58 =
1110102 en las posiciones de memoria con direcciones 4,5 y 6.

Queremos multiplicar los dos primeros valores, sumar el tercero y almacenar el


resultado en la palabra de memoria 7.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


19
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Para llevar a cabo este cálculo, se deben ejecutar las siguientes instrucciones:

1. Recuperar el contenido de la palabra de memoria 4 y cargarlo en el registro


acumulador de la unidad aritmético lógica.
2. Recuperar el contenido de la palabra de memoria 5 y calcular el producto de este
valor y el valor situado en el acumulador.
3. Recuperar el contenido de la palabra de memoria 6 y sumar su valor con el valor
situado en el registro acumulador.
4. Almacenar el contenido del registro acumulador en la palabra de memoria 7.

Para almacenar estas instrucciones en la memoria de la computadora, deben estar


representadas en forma binaria.

Las direcciones de los datos no presentan problemas, puesto que pueden ser
convertidos fácilmente a direcciones binarias:

4 = 100 6 = 110

5 = 101 7 = 111

Las operaciones de cargar, multiplicar, sumar, almacenar y otras instrucciones


máquinas básicas se representan mediante códigos numéricos, llamados códigos de
operación, por ejemplo:

LOAD = 16 = 100000 MULTIPLY = 36 = 100100

STORE = 17 = 100010 SUB = 37 = 100101

ADD = 35 = 100011 DIV = 38 = 100110


Usando parte de una palabra para almacenar el código de operación y otra para la
dirección del operando, podemos representar nuestra
nuestra secuencia de instrucciones en
lenguaje máquina como sigue:

1. 0010000000000100
2. 0010010000000101
3. 0010001100000110
4. 0010001000000111

Estas pueden ser almacenadas en cuatro palabras consecutivas de memoria.


Cuando se ejecuta el programa, la unidad de control recuperará cada una de las
instrucciones, la decodificará para determinar la operación y la dirección del
operando, recuperará el operando, y entonces ejecutará la operación requerida,
usando la unidad aritmético lógica cuando sea necesario. Los programas para las
primeras computadoras tuvieron que ser escritos en lenguaje de máquina.

Posteriormente fue posible escribirlos en lenguaje ensamblador usando códigos


nemotécnicos en lugar de códigos de operación numéricos y nombres de variables
en lugar de direcciones
cciones numéricas. Por ejemplo la secuencia de instrucciones
anteriores se escribiría así:

1. LOAD A
2. MULT B
3. ADD C
4. STORE X

Luego que se crearon los lenguajes de alto nivel,, las instrucciones se escribían en
forma más entendible para el programador. El ejemplo anterior podría ser como lo
siguiente usando C++:

X=A*B+C

El producto en la programación se representa por asterisco. En cada uno de estos


casos (ensamblador y lenguajes de alto nivel), el compilador traduce cada
instrucción del programa en una secuencia
secuencia de cuatro instrucciones máquina y
genera un programa objeto.

1. Usando mnemónicos de instrucción y códigos de operación, escriba una secuencia de


instrucciones en a) Lenguaje ensamblador b) Lenguaje de máquina, equivalente a las
instrucciones de C++:
1.1. X = (A - B) * C
1.2. X = (A+B) / (C+D)
1.3. X = (A + B) - C
Para las instrucciones máquina, suponga que los valores de A, B, C y D son
almacenados en las palabras de memoria 15,16, 17 y 18 respectivamente, y que los
valores de X se almacenarán en la palabra de memoria
memor 23.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


21
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

1. Conocimiento.
Conocimiento
1.1. ¿Qué es un programa informático?
1.2. Defina: ¿Qué es el ciclo de vida de una aplicación informática?
1.3. Defina ¿Qué es un lenguaje de programación?
2. Comprensión
Comprensión.
2.1. ¿Qué se debe considerar para que un programa informático sea cómodo y
seguro de usar?
2.2. Explicar. ¿Por qué es importante aplicar una secuencia ordenada el ciclo de vida
de una aplicación informática?
2.3. Explicar: ¿En qué consiste la ingeniería del Software?
2.4. Explique ¿En qué consiste el manual de usuario y el manual de analista?
3. Análisis.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


3.1. ¿Cuál es la diferencia fundamental entre los lenguajes de alto nivel y bajo nivel?
3.2. Investigar analogías y diferencias entre el código máquina y el lenguaje
ensamblador.
3.3. Buscar información que permita decidir cuáles serían los lenguajes de
programación másmás apropiados para realizar: aplicaciones para gestión de
oficinas, complejos cálculos científicos, un sistema experto en medicina, un
simulador de vuelo, manipulación de bases de datos, control de un robot
industrial.
3.4. Sugerencias de ampliación: Tema Clasificación
Clasificación de los lenguajes de alto nivel.
3.5. Distinga y explique: 2 diferencias y 1 similitud entre intérpretes y
compiladores.
3.6. Mencione 3 características de un Software Beta.
4. Síntesis.
4.1. Diseñe una cuadro sinóptico referente a los errores en la depuración de los
programa.
4.2. Construya un mapa conceptual referente a los tipos de lenguajes de
programación.
5. Aplicación.
5.1. Empleando los conocimientos de la documentación del software, diseñe un
esquema sobre la forma de redacción del mismo.
6. Valoración.
6.1. ¿Qué aprendió de la unidad estudiada?
6.2. Reflexione: ¿Qué aspectos debemos considerar en el desarrollo y uso de una
aplicación informática?
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


22
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

UNIDAD N° 2: METODOLOGÍA DE LA PROGRAMACIÓN.


PROGRAMACIÓN.

Competencia.

Valora las metodologías de desarrollo de software para la codificación en


e un
lenguaje de programación de una manera ágil y ordenada.
ordenada

1. ¿Para qué se utiliza el algoritmo?


2. ¿Por qué es importante enumerar las instrucciones de los algoritmos con incremento
de 10 o 100?

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


3. Realizar una explicación sobre la jerarquía de los operadores aritméticos.
4. ¿Por qué es importante el uso de la ejecución manual de algoritmos o prueba de
escritorio?
5. Mencione 6 reglas para graficar correctamente un Flujograma.
6. Diseñe el Flujograma del siguiente algoritmo y mencione de que se trata el mismo:
a) Inicio
b) Pi = 3.1416
c) Radio = 5
d) AreaCirculo =Pi*Radio**2
e) LongCirculo =2*Pi*Radio
f) Escribir (AreaCirculo, LongCirculo)107.
g) Fin
7. Desde el punto de vista de la programación. Conteste: ¿Qué es un software?
8. ¿Para qué se utiliza el modelo de desarrollo Lineal – Secuencial? ¿Existe
¿ otra
metodología? Liste al menos dos metodologías.
9. ¿Cuál es la diferencia entre codificación y depuración?
10. Escriba tres aspectos que referente a la importancia de la documentación del
Software.

El Algoritmo.

Un algoritmo se e utiliza para bosquejar los detalles de un problema,


problema buscando
identificar la lógica en la solución de un problema.
problema El estilo de desarrollarlo es
personal.

Ejemplos de Algoritmos.

1. Para calcular la nómina de unos empleados se utilizan las horas trabajadas y el salario
por hora. Ambos datos se multiplican y se obtiene el salario bruto. A ese salario bruto se
le restan las deducciones y se obtiene el salario neto.
Algoritmo:
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


23
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

10 Inicio
20 Ingresar las horas trabajadas
30 Ingresar el salario por hora
40 Multiplicar las horas trabajadas por el salario por hora.
50 Obtengo el salario bruto
60 Resto al salario bruto las deducciones y obtengo salario
neto.
70 Fin
2. En una empresa de ventas, cada vendedor tiene su salario particular. Adicional, se le
otorga un 10% de las ventas que realice en la quincena (una comisión). Cada quincena su
cheque incluye su salario más la comisión que se ganó por sus ventas.
Algoritmo

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


10 Inicio
20 Se ingresa el salario del vendedor
30 Se ingresa sus ventas para la quincena
40 Se calcula la comisión, multiplicando ventas por .10
50 Se suma su salario a la comisión calculada para obtener su
60 salario final
70 Fin

Representación grafica de algoritmos.


Los algoritmos son una herramienta de diseño y desarrollo del software, es por ello
que muchos autores han considerado diferentes representaciones que llegan a un
mismo objetivo:

Representación Concepto breve. Ejemplo


Algoritmo para asistir a clases:
1. Levantarse
2. Bañarse
Este algoritmo es caracterizado
3. Vestirse
porque sigue un proceso de
4. Desayunar
ejecución común y lógico,
5. Cepillarse los dientes
Descripción Narrada describiendo textualmente
6. Salir de casa
paso a paso cada una de las
7. Tomar el autobús
actividades a realizar dentro de
8. Llegar al ITCA
una actividad determinada
9. Buscar el aula
10. Ubicarse en un asiento

Diseñar un algoritmo que lea


cuatro variables y calcule e
El pseudocódigo no es imprima su producto, suma y
realmente un código sino una media aritmética.
Pseudocódigo imitación y una versión 1. Inicio
abreviada de instrucciones
2. Leer (a, b, c, d)
reales para las computadoras.
3. Producto <-- (a * b * c * d)
4. Suma <-- (a + b + c + d)
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


24
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

5. Media <--
< (a + b + c + d) / 4
6. Escribir (producto, suma,
media)
7. Fin
Son una herramienta que Del ejercicio anterior, se puede
favorece la programación representar así:
estructurada y reúne
características gráficas propias
Diagramas N- S (Nassi-
de diagramas de flujo y
Schneiderman o de
lingüísticas propias de
Chapin)
pseudocódigos. Constan de
una serie de cajas contiguas
que se leerán siempre de
arriba
arriba-abajo

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Son la representación gráfica
de la solución algorítmica de
un problema. Para diseñarlos
Diagramas de Flujo se utilizan determinados
deter
símbolos o figuras que
representan una acción dentro
del procedimiento.
procedimiento

1. Presentar un informe escrito referente a los tipos de estructuras del diagrama N-S.
N
considere la representación de la estructura secuencial, selectiva simple, selectiva
doble, selectivas múltiples, repetitivas.
Se calificara: informe y defensa individual expositiva o escrita.
2. Los datos que residen en la memoria pueden cambiar o permanecer con el mismo
valor durante la ejecución del programa ¿Cuál de los siguientes términos
término se refieren
a los datos que se establece al inicio y permanecen sin cambio durante la ejecución
del programa? A) Variable, B) Constante, C) Operador, D) Procedimiento.

Técnicas de programación

Programación convencional.
Fue el comienzo de la programación. Es la realización de programa sin seguir un
método de programación riguroso los problemas son:
son
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


25
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

χ Los programas son excesivamente rígidos presentando problemas para adaptarlo a


distintas configuraciones
χ Los programadores gastan la mayoría de su tiempo corrigiendo errores producidos
χ Las modificaciones de estos programas son difíciles de hacer

Programación estructurada
La programación estructurada es una técnica que consiste en olvidarse del lenguaje
y el ordenador hasta encontrarnos en el último nivel. Uno de los objetivos de esta
programación es la minimización de errores humanos.

Se caracterizan por los siguientes puntos:

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


 Estudio de la programación desde planteamientos globales a concretos
escalonadamente que es lo que se conoce como diseño descendente o Top−Down que
consiste en abordar la aplicación desde el problema principal hasta los problemas
más particulares en los que se puede dividir; consiguiendo así una comprensión más
fácil de todo el problema
 Obtener programas de fácil interpretación y fácil mantenimiento
 Consecución de un programa propio que es aquel capaz de ser recorrido de principio
a fin sin realizar ningún salto en su configuración.
 La característica principal de la programación estructurada es que cualquier
programa con un solo punto de salida puede resolverse con tres únicos tipos de
estructuras de control:
o Secuencial.
o Alternativa o condicional.
o Repetitiva.

Programación modular
Los problemas complejos se pueden resolver más eficazmente cuando se dividen en
sub-problemas que sean mas fáciles de solucionar que el original este método se
conoce como divide y vencerás y consiste en dividir un problema complejo en otros
más simples con autonomía propia. La descomposición del problema original en sus
problemas más simples y así sucesivamente se llama diseño descendente. A cada
subprograma se le llama módulo y se codifica con pila y ejecuta por separado.
Existe un módulo llamado módulo raíz o módulo principal que relaciona a todos los
demás. Cada módulo se prueba por separado y cuando todos funcionan se prueba
todo el conjunto.

Ventajas de la programación modular:

 El problema se comprende más fácilmente al dividirse en módulos


Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


26
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

 Las modificaciones de los módulo son más fáciles


 La comprobación del problema se puede verificar fácilmente
 Aumenta la calidad y legibilidad de los programas
 Reduce el tiempo de desarrollo aprovechando módulos que están ya previamente
desarrollado

Programación
ogramación orientada a objetos.
Parte de la programación en el sentido de realizar una división del problema en
partes
rtes más pequeñas relacionadas entre sí. Pero introduce un nuevo concepto que
es el de objeto como un conjunto de datos en los procedimientos que se pueden
realizar con dichos datos. Estos objetos se pueden construir partiendo de otros

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


objetos ya construidos
os anteriormente, permitiendo de esta forma una construcción
compleja por partes.

La diferencia entre la programación estructurada y la programación orientada a


objetos es que la 1ª considera esencialmente los algoritmos o las operaciones que se
pueden realizar con unos datos previamente definidos mientras que la
programación orientada a objetos considera que los datos y las operaciones está
totalmente interconectados entre sí formando un único conjunto.
conjunto

Ventajas de la programación orientada a objetos

 Protección de la información.
procedimiento Junto con unos niveles de acceso a
 Encapsulamiento de los datos y su procedimiento.
la información proporcionan protección a la información contenida en el objeto.
 Rápido desarrollo. La posibilidad de volver a usar objetos ya definidos permite que
el desarrollo de programas se realice con rapidez
mantenimiento: En el caso de una modificación o mejora de una aplicación
 Fácil mantenimiento:
desarrollada con objetos las características de la programación orientada a objetos
permite que se realice
realice con gran facilidad porque se reduce a modificar los
componentes de algunos objetos o a crear nuevos objetos aprovechando los ya
existentes.

1. Mediante el uso de ejemplos explique: ¿Qué diferencias hay entre el uso de las
técnica de programación convencional, estructurada, modular y Orientado a
Objetos?
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


27
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

1. Conocimiento.
Conocimiento
1.1. Defina: ¿Qué es un Algoritmo?
1.2. Defina: ¿Qué es la programación?
2. Comprensión
Comprensión.
2.1. Dentro de las ventajas de la programación orientado a objetos esta: Protección de
información Explique este enunciado.
la información.
3. Análisis.
3.1. Los lenguajes de programación tienen reglas que establecen la manera en cómo
se deben nombrar las contantes y variables ¿Cuál de las siguientes reglas cree
Ud. que se aplican al nombrar a las constantes y variables?
i) Los nombres
nombres de las variables y constantes no deben llevar el mismo nombre
de alguna palabra reservada en un lenguaje de programación.
ii) Los nombres no deben empezar con un digito.
iii) Los nombres no deben empezar con una letra.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


iv) No se debe utilizar ciertos caracteres en los nombres de las variables.
3.2. ¿Qué tipo de dato se utiliza para almacenar caracteres individuales?
i) Entero.
ii) Carácter.
iii) Real.
iv) Cadena.
v) Booleano.
3.3. Mencione 2 diferencias entre la descripción narrada de algoritmos y el
Pseudocódigo.
3.4. Mencione 2 diferencias entre
entr el diagrama N-S S y el diagrama de flujo.
3.5.
4. Síntesis.
4.1. Listar las diferentes técnicas de programación.
4.2. Desarrolle la técnica PNI sobre la programación estructurada.
4.3. Explique: ¿En que se asemeja la técnica de programación modular y la
programación Orientada a objetos?
5. Aplicación.
5.1. Crear y diseñar un algoritmo con su respectivo enunciado.
5.2. Desarrolle un ejemplo referente a la programación orientada a objetos.
6. Valoración.
6.1. ¿Qué relación tiene el uso de la programación convencional y el valor del
orden?
6.2. Explique: Cuál
Cuál de las cuatro técnicas de programación considera usted que sea:
i) Productiva?
ii) Difícil?
iii) Fácil?
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


28
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

UNIDAD N° 3: C, UN LENGUAJE PROCEDIMENTAL


PROCEDIMENTAL ESTRUCTURADO.
ESTRUCTURAD

Competencia.

Relaciona los aspectos básicos


básico del lenguaje de programación C++ para el desarrollo
de software de una manera precisa y ordenada.
ordenada

1. ¿Qué tipo de lenguaje considera usted al lenguaje C++?


2. ¿Para qué se utiliza los operadores de relación y los operadores lógicos?
3. Efectúe los siguientes operadores lógicos:

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


a) (5=6) And (2<=4)
b) (2*2<=4) And (4>3)
c) (2>=8*5) Or (19-20<0)
(19
d) (19.90<=10+9.9) Or (4/4=1)
e) (2+[8*-3]<0)
3]<0) And (-5+(2+3)=0)
(
4. Resuelva las siguientes tablas de Verdad:
a) (P Or Q)And {Not(P Or Q)}
b) Not{Not[Not(P And Q)] }
c) Not{[(P(P And Q)Or (P Or Q)]And
Q) [(P
(P And Q)And (P Or Q)]}
Q)
5. ¿Cuál es laa diferencia entre funciones y formulas?
6. Obtenga una expresión algorítmica a partir de las siguientes expresiones
matemáticas.
a) x=ab+c
b) x=a^2+b^2
c) Cos a=√(1√(1-(Sen a)^2 )
7. Dado las siguientes ecuaciones, expréselos en función de la variable x (es decir: y=x)
a través de despejes y obtenga una expresión algorítmica.
a) 3y=12-12x12x
b) 4x+4y=4
c) 7x=21y
d) (7y+28)/7=)/7=14x
e) 10x+12y=0
12y=0
8. Diseñe el Flujograma, algoritmo y prueba de escritorio que me permita sumar los
valores de las contantes A=10 y ̟ (pi), además
además de este resultado realizar la división
con un numero ingresado por teclado. Imprima todos los resultados.
9. Mencione 5 desventajas de la programación convencional.

Breve historia del lenguaje C.

EL lenguaje C es el resultado de un proceso de desarrollo que inició con un lenguaje


denominado BCPL. Este influenció a otro llamado B (inventado por Ken Thompson).
En los años 70; éste lenguaje llevó a la aparición del C.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


29
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Con la popularidad de las microcomputadoras muchas compañías comenzaron a


implementar su propio C por lo cual surgieron discrepancias entre sí.

Por esta razón ANSI (American National Standars Institute, por sus siglas en
inglés), estableció un comité en 1983 para crear una definición no ambigua del
lenguaje C e independiente de la máquina que pudiera utilizarse en todos los tipos
de C.

Algunos de las C existentes son:

- Quick C - Borland C
- C++ - Borland C++
Turbo C Microsoft C

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


- -
- Turbo C ++ - etc.
El lenguaje C inicialmente fué creado para la programación de

-Sistemas operativos -Ensambladores

-Intérpretes -Compiladores

-Editores -Administradores de bases de datos.

Actualmente, debido a sus características, puede ser utilizado para todo tipo de
programas.

¿Qué es el Lenguaje 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" ya 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.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


30
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

La descripción del lenguaje se realiza siguiendo las normas del ANSI C, por
p 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,
dependientes, explicitándose en estos casos la singularidad de
las mismas.

Anatomía de un programa en C.

Siguiendo la tradición, la mejor forma de aprender a programar en cualquier


lenguaje es editar, compilar, corregir y ejecutar pequeños programas

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


descriptivos.. Analicemos por lo tanto el siguiente ejemplo:

#include <stdio.h>
stdio.h>
main()

printf("Bienvenido a la Programación en lenguaje C \n");

return 0;

Al momento de copiarlo y pegarlo en el editor del C++ nos mostraría la siguiente


pantalla:

Y al compilarlo nos resultaría la siguiente pantalla:


Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


31
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

En Turbo C++ se utiliza las combinaciones:

> Para copiar o pegar se utilizan CTRL + Insertar o Mayus + Insertar

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


respectivamente.
> Para Compilar F9.
> Para ejecutar Ctrl + F9.

1. Ingresa
resa el código de este ejemplo, realizar su ejecución y presentar un informe
Contestando las siguientes preguntas:
a) ¿Sobre qué trata el ejercicio?
b) ¿Qué dificultades obtuvo al momento de ejecutar el código?
c) ¿Qué aparece luego de ejecutar el código sin errores?
d) ¿Qué factores debe considerar para programar en C++?

A partir de este código analicemos su estructura:


estructura

Encabezamiento
Las líneas anteriores a la función main() () se denominan ENCABEZAMIENTO
(HEADER) y son informaciones que se le suministran al Compilador.

La primera línea del programa está compuesta por una directiva: " #include " que
implica la orden de leer un archivo de texto especificado en el nombre que sigue a la
misma (<stdio.h>)>) y reemplazar esta línea por el contenido de dicho archivo.

En este archivo están incluidas declaraciones de las funciones luego llamadas por
el programa (por ejemplo printf() () ) necesarias para que el compilador las procese.
Por ahora no nos preocupemos por el contenido del archivo ya que más adelante, en
el capítulo de funciones, analizaremos exhaustivamente dichas declaraciones.

Hay dos formas distintas


istintas de invocar al archivo, a saber, si el archivo invocado está
delimitado por comillas (por ejemplo "stdio.h") el compilador lo buscará en el
directorio activo en el momento de compilar y si en cambio se lo delimita con los
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


32
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

signos <.......> lo buscará en algun otro directorio, cuyo nombre habitualmente se le


suministra en el momento de la instalación del compilador en el disco (por ejemplo
C:\TC\INCLUDE). Por lo general estos archivos son guardados en un directorio
llamado INCLUDE y el nombre de los mismos está terminado con la extensión .h.

La razón de la existencia de estos archivos es la de evitar la repetición de la


escritura de largas definiciones en cada programa.

Nótese que la directiva "#include" no es una sentencia de programa sino una orden
de que se copie literalmente un archivo de texto en el lugar en que ella está
ubicada, por lo que no es necesario terminarla con ";".

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Cuerpo.
La función main() indica donde empieza el programa, cuyo cuerpo principal es un
conjunto de sentencias delimitadas por dos llaves, una inmediatamente después de
la declaración main() " { ", y otra que finaliza el listado " } ". Todos los programas C
arrancan del mismo punto: la primer sentencia dentro de dicha función, en este
caso printf ("......").

En el EJEMPLO el programa principal está compuesto por sólo dos sentencias: la


primera es un llamado a una función denominada printf(), y la segunda, return,
que finaliza el programa retornando al Sistema Operativo.

La secuencia \n que aparece al final del mensaje es la notación que emplea C para
el caracter "nueva línea" que hace avanzar al cursor a la posición extrema izquierda
de la línea siguiente. Más adelante analizaremos otras secuencias de escape
habituales.

La segunda sentencia (return 0) termina el programa y devuelve un valor al


Sistema operativo, por lo general cero si la ejecución fué correcta y valores distintos
de cero para indicar diversos errores que pudieron ocurrir. Si bien no es obligatorio
terminar el programa con un return, es conveniente indicarle a quien lo haya
invocado, sea el Sistema Operativo o algún otro programa, si la finalización ha sido
exitosa, o no. De cualquier manera en este caso, si sacamos esa sentencia el
programa correrá exactamente igual, pero al ser compilado, el compilador nos
advertirá de la falta de retorno.

Cada sentencia de programa queda finalizada por el terminador "; ", el que indica al
compilador el fin de la misma. Esto es necesario ya que, sentencias complejas
pueden llegar a tener más de un renglón, y habrá que avisarle al compilador donde
termina.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


33
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

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 lineas de código, permitiendo
abundar en ellos tanto como se desee.

En el lenguaje C se toma como comentario todo caracter interno a los simbolos: /*


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

#include <stdio.h>
main()

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


{
/* este es un comentario corto */

/* este otro

es mucho

más largo

que el anterior */

printf("Bienvenido a la Programacion en lenguaje C \n");

return 0;

Capture y ejecute los programas que se muestran a continuación:


1. /*Programa que despliega un mensaje de bienvenida en la pantalla*/
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
gotoxy(20,10);
printf("BIENVENIDO AL CURSO DE C ESTANDAR");
}
2. /*Programa que calcula el número de dias vividos*/
#include<stdio.h>
#include<conio.h>
void main()
{
char nombre[50];
int edad;
clrscr();
printf("¿Cómo te llamas?\n
llamas? ");
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


34
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

scanf("%s",nombre);
printf("¿Cuántos años tienes?\n");
scanf("%i",&edad);
edad=edad*365;
gotoxy(5,10);
printf("%s, has vivido %i dias",nombre,edad);
gotoxy(40,22);
printf("Pulsa cualquier tecla para terminar...");
getch();
}
3. /*Programa que saca el promedio de 3 números*/
#include<stdio.h>
#include<conio.h>
void main()

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


{
float numero;
float promedio=0;
clrscr();
printf("Dame el primer número: ");
scanf("%f",&numero);
promedio+=numero;
printf("Dame el segundo número: ");
scanf("%f",&numero);
promedio+=numero;
printf("Dame el tercer número: ");
scanf("%f",&numero);
promedio+=numero;
promedio=promedio/3;
printf("El promedio es %f",promedio);
gotoxy(40,22);
printf("Presione cualquier tecla para terminar...");
getch();
}
4. /*Programa que convierte un número decimal entero a octal*/
#include<stdio.h>
#include<conio.h>
void main()
{
int numero;
clrscr();
printf("Numero entero en decimal: ");
scanf("%i", &numero);
printf("\n\nSu representacion en octal es %o");
gotoxy(40,22);
printf("Presione cualquier tecla para terminar...");
getch();
}
5. /*Programa que manda un mensaje de advertencia*/
#include <dos.h>
#include<conio.h>
#include<iostream.h>
int main(void)
{
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


35
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

clrscr();
gotoxy(28,11);
cout<<"¡ P E L I G R O ! ";
sound(250);
delay(600);
sound(80);
delay(600);
delay(600);
nosound();
return 0;
}

1. Sobre los seis ejercicios codificados y ejecutados en C++, presentar un informe

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Contestando las siguientes preguntas:
a) ¿Qué dificultades obtuvo al momento de ejecutar los códigos?
b) ¿Qué aparece en cada ejercicio luego de ejecutar el código sin errores?
c) ¿Qué nuevos factores debe considerar para programar en C++?
2. Trate de modificar los argumentos de las funciones: GOTOXY, PRINTF, SOUND Y
DELAY y deduzca cual es la función de cada una de ellos.

1. Conocimiento.
Conocimiento
1.1. Defina. ¿Qué es el lenguaje C?
1.2. ¿Cómo inicio el lenguaje C?
1.3. ¿Cuál fue el objetivo principal por lo cual se haya creado el lenguaje C?
2. Comprensión
Comprensión.
2.1. Mencione los elementos con que cuenta la estructura del código en C y realizar
un ejemplo.
2.2. ¿Cómo se compila el programa?
2.3. ¿Cómo ejecutamos
ejecutamo un programa?
2.4. ¿Cómo creamos un archivo?
3. Análisis - Síntesis.
Síntesis
3.1. En un programa en C, ¿qué significa main()?
3.2. ¿Qué función desempeña <conio.h>en el programa?
3.3. ¿Para qué sirven la llave abierta y la llave cerrada{}
4. Aplicación.
4.1. Diseñe un programa en C que permitapermita mostrar los datos personales de una
persona.
4.2. Realizar un panel referente al tema “Mis
“ primeras experiencia en el uso del lenguaje
C++ Siga las siguientes pautas:
de programación C++”.
a. Presentar a los miembros del panel.
b. Formular preguntas por cada estudiante.
estudian
c. Responder a la pregunta planteada por uno de los integrantes.
d. Continuar el dialogo
e. Plantear otras preguntas pos parte del coordinador.
f. Resumir brevemente el contenido expuesto.
4.3. Elabore una ficha de causas y consecuencias referente al uso del programa
Borland C++ enfatizando los errores que le han aparecido en el transcurso de la
codificación.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


36
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

g. Sintetizar las exposiciones por parte del coordinador.


h. Establecer un diálogo con los estudiantes.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


37
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

UNIDAD N° 4: COMENZANDO A PROGRAMAR


PROGRAM EN C++.

Competencia.

Desarrolla software
re de diferentes categorías para codificarlos en lenguaje C++ de
una manera ágil, ordenada y con pulcritud.

1. ¿Cuáles son los tipos de estructuras de programación?

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


2. ¿Por qué surge el lenguaje C++?
3. ¿Qué versión de lenguaje C++ se está utilizando en el presente curso?
4. Liste los pasos para abrir el programa C++.
5. ¿Cómo Compilamos un programa?
6. ¿Cómo ejecutamos un programa?

Variables y Constantes.

Si yo deseara imprimir los resultados de multiplicar un número fijo por otro que
adopta valores entre 0 y 9, 9 laa forma normal de programar esto sería crear una
CONSTANTE para el primer número y un par de VARIABLES para el segundo y
para el resultado del producto.
oducto. Una variable,
variable en realidad, no es más que un nombre
para identificar una (o varias) posiciones de memoria
memoria donde el programa guarda los
distintos valores de una misma entidad. Un programa debe DEFINIR a todas to las
variables que utilizará,, antes de comenzar a usarlas, a fin de indicarle al
compilador de que tipo serán, y por lo tanto cuanta memoria debe destinar
destina para
albergar a cada una
na de ellas. Veamos el EJEMPLO:
EJEMPLO

#include <stdio.h>
main()
{
int multiplicador; /* defino multiplicador como un entero */
int multiplicando; /* defino multiplicando como un entero */
int resultado; /* defino resultado como un entero */
multiplicador = 1000 ; /* les asigno valores */
multiplicando = 2 ;
resultado = multiplicando * multiplicador ;
printf("Resultad = %d\n", resultado);/*
printf("Resultado /* muestro el resultado */
return 0;
}
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


38
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

En las primeras líneas de texto dentro de main() () defino mis variables como
números enteros , es decir del tipo "int"
" seguido de un identificador
ntificador (nombre) de la
misma.. Es conveniente darle a los identificadores de las variables, nombres que
tengan un significado que luego permita una fácil lectura del programa. El lenguaje
C es sensible al tipo de letra usado;
usado; así tomará como variables distintas
dis a una

Los compiladores reservan determinados términos ó palabras claves (Keywords)


para el uso sintáctico del lenguaje, tales como: asm, auto, break, case, char, do,
for, etc. Si bien estas palabras están definidas para el ANSI C, los distintos
compiladores extienden esta definición a OTROS términos, por lo que es
aconsejable leer la tabla completa de palabras reservadas
reservadas del compilador que

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


se vaya a usar, para no utilizarlas en nombres de variables.

llamada "variable",, de otra escrita como "VARIABLE". Es una convención entre los
programadores de C escribir los nombres de las variables y las funciones con
minúsculas, reservando las mayúsculas para las constantes.

Vemos en las dos líneas subsiguientes a la definición de las variables, que puedo ya
asignarles valores (1000
00 y 2) y luego efectuar el cálculo de la variable "resultado".
" Si
prestamos ahora atención a la función printf(), (), ésta nos mostrará la forma de
visualizar el valor de una variable. Insertada en el texto a mostrar, aparece una
secuencia de control de impresión
impre "%d"" que indica, que en el lugar que ella ocupa,
deberá ponerse el contenido de la variable (que aparece luego de cerradas las
comillas que marcan la finalización del texto , y separada del mismo por una coma)
expresado como un número entero decimal. Así, si compilamos y corremos el
programa, obtendremos una salida:

Inicialización de variables
Las variables del mismo tipo pueden definirse mediante una definición múltiple
m
separándolas mediante ",
" " a saber:

Int
nt multiplicador, multiplicando, resultado;
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


39
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Esta sentencia es equivalente a las tres definiciones separadas en el ejemplo


anterior. Las variables pueden también ser inicializadas en el momento de definirse.

int multiplicador = 1000, multiplicando = 2, resultado;


De esta manera el EJEMPLO podría escribirse:

#include <stdio.h>
main()
{
int multiplicador=1000 , multiplicando=2 ;
printf("Resultado = %d\n",
%d n", multiplicando * multiplicador);
return 0;
}

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Obsérvese que en la primera sentencia se definen e inicializan simultáneamente
ambas variables. La variable "resultado"
" " la hemos hecho desaparecer ya que es
innecesaria. Si analizamos la función printf() () vemos que se ha reemplazado
"resultado"" por la operación entre las otras dos variables. Esta es una de las
particularidades del lenguaje C:
C en los parámetros pasados a las funciones pueden
ponerse operaciones (incluso llamadas a otras funciones),
funcio , las que se realizan
ANTES de ejecutarse la función, pasando finalmente a esta el valor resultante
result de
las mismas. El EJEMPLO funciona exactamente igual que antes ntes pero su código
ahora es mucho más compacto y claro.

Tipos de variables
Variables Del Tipo Entero
En el ejemplo anterior definimos a las variables como enteros (int). Si se quisiera un
alcance menor al de int, podría definirse "short int " ó simplemente
simplemen "short", aunque
por lo general, los compiladores modernos asignan a este tipo el mismo alcance que
"int".

Variables de número real o punto flotante


Un número real ó de punto flotante es aquel que además de una parte entera, posee
fracciones de la unidad. En nuestra convención numérica solemos escribirlos de la
siguiente manera: 2,3456, lamentablemente los compiladores usan la convención
del PUNTO decimal
imal (en vez de la coma).
coma). Así el número Pi se escribirá : 3.14159 Otro
formato de escritura, normalmente
normalmente aceptado, es la notación científica. Por ejemplo
podrá escribirse 2.345E+02, equivalente a 2.345 * 100 ó 234.5

Variables de tipo carácter.


El lenguaje C guarda los caracteres como números de 8 bits de acuerdo a la norma
ASCII extendida, que asigna a cada
c carácter un número
ero comprendido entre 0 y 255
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


40
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

(un byte de 8 bits) Es común entonces que las variables que vayan a alojar
caracteres sean definidas como:

char c ;

Las variables del tipo caractér también pueden ser inicializadas en su definición,
por ejemplo es válido escribir:

char c = 97;

Para que c contenga el valor ASCII de la letra "a", sin embargo esto resulta algo
engorroso, ya que obliga a recordar dichos códigos. Existe una manera más directa
de asignar un caractér a una variable; la siguiente inicialización es idéntica a la

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


anterior :

char c = 'a' ;

Es decir que si delimitamos un caracter con comilla simple, el compilador


entenderá que debe suplantarlo por su correspondiente código numérico.

Lamentablemente existen una serie de caracteres que no son imprimibles, en otras


palabras que cuando editemos nuestro programa fuente (archivo de texto) nos
resultará difícil de asignarlas a una variable ya que el editor las toma como un
COMANDO y no como un caracter. Un caso típico sería el de "nueva línea" ó
ENTER.

Con el fin de tener acceso a los mismos es que aparecen ciertas secuencias de
escape convencionales. Las mismas están listadas en la siguiente tabla y su uso es
idéntico al de los caracteres normales, así para resolver el caso de una asignación
de "nueva línea " se escribirá:

char c = '\n' ; /* secuencia de escape */

CODIGO SIGNIFICADO VALOR ASCII VALOR ASCII


(decimal) (hexadecimal)
'\n' nueva línea 10 0x0A
'\r' retorno de carro 13 0x0D
'\f' nueva página 2 x0C
'\t' tabulador horizontal 9 0x09
'\b' retroceso (backspace) 8 0x08
'\'' comilla simple 39 0x27
'\"' comillas 4 0x22
'\\ ' barra 92 0x5C
'\? ' interrogación 63 0x3F
'\nnn' cualquier caracter (donde nnn es el código ASCII expresado en octal)
'\xnn' cualquier caracter (donde nn es el código ASCII expresado en
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


41
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

hexadecimal)
%d Muestra decimal
%o Muestra en octal
%x Muestra entro hexadecimal (minúsculas)
%X Muestra entro hexadecimal (mayúscula)
%f Notación científica (10E20)
%c Carácter
%s Modificador de cadena (string)

1. Explique: ¿Cuáles son las funciones que posee la librería Math.h en C++?
Considere: Nombre de la función, uso, sintaxis y ejemplo. Se calificará informe y

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


defensa escrita.

Operadores.

Si analizamos la sentencia siguiente:

var1 = var2 + var3;

Estamos diciéndole al programa, por medio del operador +, que compute la suma
del valor de dos variables, y una vez realizado esto asigne el resultado a otra
variable var1. Esta última operación (asignación) se indica mediante
median otro operador,
el signo =.

El lenguaje C tiene una amplia variedad de operadores, y todos ellos caen dentro de
6 categorías, a saber: aritméticos , relacionales, lógicos, incremento y decremento,
manejo de bits y asignación. Todos ellos se irán describiendo
describiendo en los párrafos
subsiguientes.

Operadores Aritmeticos.
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
+ SUMA a+b 3
- RESTA a-b 3
* MULTIPLICACION a*b 2
/ DIVISION a/b 2
% MODULO a%b 2
- SIGNO -a 2
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


42
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Operadores relacionales
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
< menor que (a < b) 5
> mayor que (a >b) 5
<= menor o igual que (a < = b) 5
>= mayor o igual que ( a >>= b ) 5
== igual que ( a = = b) 6
!= distinto que ( a != b) 6

Operadores de relación.
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


&& Y (AND) (a>b) && (c < d) 10
|| O (OR) (a>b) || (c < d) 11
! NEGACION (NOT) !(a>b) 1

Operadores de incremento y decremento


SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
++ incremento ++i ó i++ 1
-- decremento --i ó i-- 1

Operadores de asignación
SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION
= igual a a=b 13
op= pseudocodigo a += b 13
=?: asig.condicional a = (c>b)?d:e 12

1. Mediante los problemas propuestos en el modulolo de Introducción a la Programación


(primero de bachillerato), desarrollar individualmente los respectivos programas
referente a ESTRUCTURAS SECUENCIALES en el lenguaje de programación C++.
Se calificará: Enunciado enumerado, Código fuente y Ejecución exitosa del programa

Proposiciones para el control de flujo de programa

En lo que sigue de este capítulo, denominaremos BLOQUE DE SENTENCIAS al


conjunto de sentencias individuales incluídas dentro un par de llaves. Por ejemplo :

{
sentencia 1 ;
sentencia 2 ;
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


43
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

.............sentencia n;
}
Este conjunto se comportará sintácticamente como una sentencia simple y la llave
de cierre del bloque NO debe ir seguida de punto y coma .

Un ejemplo de bloque ya visto, es el cuerpo del programa principal de la función


main() .

#include <iostream
iostream.h>
main()

{
Cout<< “Hola mundo”;
return 0;

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


}

En las proposiciones de control de flujo de programa, trabajaremos


alternativamente con sentencias simples y bloques de ellas.

Proposición If-Else.
Esta proposición sirve para ejecutar ciertas sentencias de programa,
programa si una
expresión resulta CIERTA ú otro grupo de sentencias, si aquella resulta FALSA.

El caso más sencillo sería :

if(expresión)
sentencia ;
ó

if(expresión) sentencia ;
Cuando la sentencia que sigue al IF es única, las dos formas de escritura
expresadas arriba son equivalentes. La sentencia sólo se ejecutará si el resultado de
"expresión"
n" es distinto de cero (CIERTO),
(CIERTO), en caso contrario el programa salteará
dicha sentencia , realizando la siguiente
sig en su flujo.

En casos más complejos que los anteriores, la proposición IF puede estar seguida
por un bloque de sentencias:

if(expresión)
{
Sentencia 1;
Sentencia 2;

}
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


44
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

El indentado de las sentencias (sangría) es también optativo , pero sumamente


recomendable
ecomendable ,sobre todo para permitir la lectura de proposiciones muy complejas
ó anidadas , como se verá luego. El bloque se ejecutará en su conjunto si la
expresión resulta CIERTA. El uso del ELSE es optativo, y su aplicación resulta en la
ejecución de una,
na, ó una serie de sentencias en el caso de que la expresión del IF
resulta FALSA.

Su aplicación puede verse en el ejemplo siguiente:

if(expresión)
{
sentencia 1 ;
sentencia 2 ;

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


}
else
{
sentencia 3 ;
sentencia 4 ;
}

Proposición Switch.
El SWITCH es una forma sencilla de evitar largos,
largos, tediosos y confusos anidamientos
de ELSE-IF .

Supongamos que estamos implementando un Menu , con varias elecciones


posibles.. El esqueleto de una posible solución al problema usando if-else
if podría ser
el siguiente:

#include <stdio.h>
<stdio.h
main()
{
int c ;
printf("\nMENU
nMENU :") ;
printf("\n n A = ADICIONAR A LA LISTA ") ;
printf("\n n B = BORRAR DE LA LISTA ") ;
printf("\n n O = ORDENAR LA LISTA ") ;
printf("\n n I = IMPRIMIR LA LISTA ") ;
printf("\n\nESCRIBA
nESCRIBA SU SELECCION , Y LUEGO <<ENTER>> : ") ;
if( (c = getchar()) != '\n'' )
{
if( c == 'A')
printf("
printf("\nUD. SELECCIONO AGREGAR") ;
else
if( c == 'B')
printf("
printf("\nUD. SELECCIONO BORRAR") ;
else
if( c == 'O' )
printf("
printf("\nUD. SELECCIONO ORDENAR") ;
else
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


45
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

if( c == 'I' )
printf("
printf("\nUD. SELECCIONO IMPRIMIR") ;
else
printf("
printf("\n\a\aUD.
aUD. APRETO UN CARACTER ILEGAL" ) ;
}
else
printf("\n¡
n¡ UD. NO HA SELECCIONADO NADA !" ) ;
}

Como es fácil de ver,, cuando las opciones son muchas, el texto comienza a hacerse
difícil de entender y engorroso de escribir.

El mismo programa, utilizando un SWITCH,


SWITCH, quedaría mucho más claro de leer, y

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


sencillo de escribir, como se aprecia en el EJEMPLO siguiente.
siguient

#include <stdio.h>
#include <conio.h>
main()
{
int c ;
printf("\nMENU
nMENU :") ;
printf("\n n A = ADICIONAR A LA LISTA ") ;
printf("\n n B = BORRAR DE LA LISTA ") ;
printf("\n n O = ORDENAR LA LISTA ") ;
printf("\n n I = IMPRIMIR LA LISTA ") ;
printf("\n\nESCRIBA
nESCRIBA SU SELECCION , Y LUEGO <<ENTER>> : ") ;
c = getchar() ;
switch (c)
{
case 'A' :
printf("
printf("\nUD. SELECCIONO AGREGAR") ;
break ;
case 'B' :
printf("
printf("\nUD. SELECCIONO BORRAR") ;
break ;
case 'O' :
printf("
ntf("\nUD. SELECCIONO ORDENAR") ;
break ;
case 'I' :
printf("
printf("\nUD. SELECCIONO IMPRIMIR") ;
break ;
case '\n':
n':
printf("
printf("\n¡ UD. NO HA SELECCIONADO NADA !" ) ;
break ;
default :
printf("
printf("\n\a\aUD. APRETO UN CARACTER ILEGAL" ) ;
break ;
}
}
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


46
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

1. Mediante los problemas propuestos en el modulo de Introducción a la Programación


(primero de bachillerato), desarrollar individualmente los respectivos programas
referente a ESTRUCTURAS SELECTIVAS en el lenguaje de programación C++.
Se calificará: Enunciado enumerado, Código fuente y Ejecución exitosa del programa

La iteración while
El WHILE es una de las tres iteraciones posibles en C.. Su sintaxis podría
expresarse de la siguiente forma:

while(expresión) {
proposición 1 ;

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


proposición 2 ;
...
proposición n ;
}
Esta sintaxis expresada en palabras significaría: mientras (expresión) dé un
resultado CIERTO
ERTO ejecútese la proposición 1,
1, en el caso de la izquierda ó ejecútese
el bloque de sentencias, en el caso después de la llave “}”.
“}”

Por lo general, dentro de la proposición ó del bloque de ellas , se modifican términos


de la expresión condicional , para controlar la duración de la iteración .

La iteración do - while
Su sintaxis será :

do {
Proposición 1 ;
Proposición 2 ;
...............
} while (expresión) ;
Expresado en palabras, esto significa: ejecute las proposiciones , luego repita la
ejecución mientras la expresión dé un resultado CIERTO . La diferencia
fundamental entre esta iteración y la anterior es que el DO-WHILE
DO se ejecuta
siempre
re AL MENOS una vez, sea cual sea el resultado de expresión.

Iteración for
El FOR es simplemente una manera abreviada de expresar un WHILE , veamos su
sintaxis :

for ( expresión1 ; expresión2 ; expresion3 ) {


proposición1 ;
proposición2 ;
..............
}
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


47
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

La sentencia break
El BREAK, ya brevemente descrito
descrito con el SWITCH , sirve también para terminar
loops producidos por WHILE , DO-WHILE
DO WHILE y FOR antes que se cumpla la condición
normal de terminación . En el EJEMPLO siguiente vemos su uso
us para terminar un
WHILE indeterminado.

#include <stdio.h>
#include <conio.h>
main()
{
char c ;
printf("ESTE ES UN LOOP INDEFINIDO ") ;
while(1) {

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


printf( "DENTRO DEL LOOP INDEFINIDO (apriete una tecla):" ) ;
if( (c = getch()) == 'Q' )
break ;
printf( "\nNO
" ES LA TECLA CORRECTA PARA ABANDONAR EL LOOP")
LOOP ;
}
printf("\\nTECLA
nTECLA CORRECTA : FIN DEL WHILE ") ;
}

1. Mediante los problemas propuestos en el modulo de Introducción a la Programación


(primero de bachillerato), desarrollar individualmente los respectivos programas
referente a ESTRUCTURAS REPETIIVAS en el lenguaje de programación C++.
Se calificará: Enunciado enumerado, Código fuente y Ejecución exitosa del programa

Funciones.

Una Función es una parte del código independiente del programa que se llama
dentro de él, es importante considerar que C a diferencia de otros lenguajes de
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


48
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

programación no tiene procedimientos solamente funciones los procedimientos los


simula con funciones
s que no devuelven nada (Void).

El desarrollo de una función es

Tipo_de_valor_retorno
de_valor_retorno nombreFunción(lista de argumentos)
argumentos
{
declaracion de variables locales a la función
codigo ejecutable
return ( expresión ) // optativo
}
Las
as variables de nuestras funciones son locales es decir que solamente viven
cuando se esta ejecutando la llamada a la función; el código ejecutable son las

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


sentencias que el programa utiliza para funcionar y el valor de retorno es el
resultado que vaa a devolver la misma función (si
( i se dice que una función retorna un
entero en el return se debe poner un entero como valor de devolución).
devolución

Definición de las funciones


La definición de una función puede ubicarse en cualquier lugar del programa, con
sólo dos restricciones: debe hallarse luego
luego de dar su prototipo, y no puede estar
dentro de la definición de otra función (incluida
( main() ).

La definición debe comenzar con un encabezamiento, que debe coincidir totalmente


con el prototipo declarado para la misma, y a continuación del mismo, encerradas
por llaves se escribirán las sentencias que la componen; por ejemplo:

#include <stdio.h>
float mi_funcion(int i, double j ); /*DECLARACION*/
main()
{
float k ;
int p ;
double z ;
k = mi_funcion( p, z ); /* LLAMADA a la función */
} /* fin de la función main() */

//Diseño de la función MI_FUNCION

float mi_funcion(int i, double j )


{
float n
printf("%d", i ); /* LLAMADA a otra función */
return ( 2 * n ); /* RETORNO devolviendo un valor float */
}
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


49
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

1. Escribir un programa que introduzca una serie de enteros y que los pase una a la
vez a la función Par () que determina si el entero es par. Esta función deberá tomar
un argumento entero y regresar en su nombre 1 si el entero es par o 0 si no lo es.
2. Elaborar
borar una función que reciba un dato de tipo char, que debe devolver un
numero:
0 si es una letra mayúscula.
1 si es una letra minúscula.
2 si es una letra digito.
3 si es un carácter especial.
En un programa leer una serie de caracteres hasta hasta ingresar unu “*”, que serán
enviados a la función, luego utilizar el valor devuelto de la función para indicar el
tipo de carácter.
3. Realizar un programa que lea dos fechas cualquiera con el formato año/mes/día,
para calcular en una función el número de días que existe existe entre las dos fechas leídas

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


y por ultimo imprimir los datos leídos y calculados.
4. Escribir un programa que tenga una función que permita intercambiar los valores de
tres variables a, b, y c si es necesario, de tal manera que se cumpla la relación:
a<=b<=c
Ell programa debe leer los datos a, b, y c para llamar a la función, función y escribir los
resultados antes y después de llamar a la función.
5. Realizar un programa que lea la fecha actual en el formato año/mes/día, luego
enviar la fecha ingresada a una función para que imprima en palabras la fecha del
día siguiente. por ejemplo, si se lee:
2010/01/25. Imprimirá: 26 de enero del 2010
Validar los datos de ingreso para que se encuentren dentro del rango correcto de los
días, meses y años. Además validar en el caso caso que sea el año bisciesto.
6. Diseñar un programa para leer un númeronúmero entero largo entre 1 y 99, luego enviar el
número ingresado a una función para que imprima el número en letras.
7. Elaborar una función que reciba varios datos de tipo char y devuelva un dato dat de
tipo float que contenga el número formado por los datos recibidos. Por ejemplo, se
envía los siguientes cuatros datos ‘-‘,‘ ‘, ’4’, ’.’ y ‘2’, el numero que debe devolverse
será: -4.2
Si por algún motivo no se puede formar un número de tipo float con los lo datos
recibidos, se debe devolver el número -11 para indicar en el programa con un
mensaje.
8. Escribir un programa que tenga una función que despliegue en el margen izquierdo
de la pantalla, un cuadrado solido en base a cualquier carácter recibido en un
parámetro
rámetro de tipo carácter, cuyo lado esta especificado en otro parámetro de tipo
entero. Por ejemplo, si el lado es 5 y el carácter es ‘#’,, la función mostrara.

9. La función calculo_carga() determina la cuenta de cada cliente en un


estacionamiento público , con una base de 2 dólares de estacionamiento mínimo por
las primeras tres horas. El estacionamiento tiene 5 dólares adicionales por cada hora
o fracción. La cuenta máximo para cualquier periodo de 24 horas es de 10 dólares.
Suponer que no existe ningún
ningún vehículo que se quede más de 24 horas a la vez.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


50
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Escribir un programa que calcule e imprima las cuentas por estacionamiento de cada
cliente que ayer estacionaron sus automóviles en este garaje, para lo cual se deberá
introducir las horas de estacionamiento
estacionamiento para cada uno de los clientes.
El programa deberá imprimir los resultados en un formato tabular nítido y deberá
calcular e imprimir el total de los ingresos del dia de ayer. Por ejemplo, la salida
deberá aparecer en el formato siguiente:

10. Elabore una función recursiva que reciba un numero entero positivo o negativo y lo
imprima digito a digito en líneas diferentes. Por ejemplo si la función recibe el
numero: -240,
240, debe imprimir lo siguiente:
-

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


2
4
0
11. Elabore una función que reciba un valor n enero mayor o igual a cero y devuelva la
suma desde 0 hasta n por ejemplo si la función recibe el número 5, el valor devuelto
será: 1+2+3+4+5=15.
12. Elabore una función recursiva que reciba un número entero y lo devuelva invertido.
Por ejemplo si recibe 123, debe devolver
devolv 321.

//En el siguiente programa escriba exactamente el resultado de


la impresión.
sión.

#include <stdio.h>

Void imprimir (int n);

Void main()

{
int n = 2;
imprimir (n);
printf (“\n”);
(“

}
Void imprimir (int n)
{
If (n!=0){
Printf(“A %d: “, n);
Imprimir(n
Imprimir(n-1);
Printf(“B %d: “, n);
Imprimir(n
Imprimir(n-1);
Printf(“C %d: “, n);
Imprimir(n
Imprimir(n-1);
Printf(“D %d: “, n);
Imprimir(n
Imprimir(n-1);
}
Printf(“X %d: “, n);
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


51
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

//En el siguiente programa escriba exactamente el resultado de


la impresión.

# include <iostream.h>

void do_stuff (int wings, float feet, char eyes);

main()
{
int arm = 2;
float foot = 1000.0;
char lookers = 2;

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


do_stuff (3, 12.0, 4);
do_stuff (arm, foot, lookers);
}

void do_stuff (int wings, float feet, char eyes)


{
cout << "There are " << wings << "wings." << '\n';
cout << "There are " << feet << "feet. " << '\n';
cout << "There are " << int(eyes) << "eyes." << '\n';
}

Ámbito de las variables (scope)

Variables globales
Hasta ahora hemos diferenciado a las variable segun su "tipo" (int, char double,
etc), el cual se refería, en última instancia, a la cantidad de bytes que la
conformaban. Veremos ahora que hay otra diferenciación de las mismas, de
acuerdo a la clase de memoria en la que residen.

Si definimos una variable AFUERA de cualquier función (incluyendo esto a main() ),


estaremos frente a lo denominado VARIABLE GLOBAL. Este tipo de variable será
ubicada en el segmento de datos de la memoria utilizada por el programa, y existirá
todo el tiempo que esté ejecutándose este.

Este tipo de variables son automáticamente inicializadas a CERO cuando el


programa comienza a ejecutarse.

Son accesibles a todas las funciones que estén declaradas en el mismo, por lo que
cualquiera de ellas podrá actuar sobre el valor de las mismas. Por ejemplo:
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


52
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

#include <stdio.h>
double una_funcion(void);
double variable_global ;
main()
{
double i ;
printf("%f", variable_global ); /* se imprimirá 0 */
i = una_funcion() ;
printf("%f", i ); /* se imprimirá 1 */
printf("%f", variable_global ); /* se imprimirá 1 */
variable_global += 1 ;
printf("%f", variable_global ); /* se imprimirá 2 */
return 0 ;
}
double una_funcion(void)

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


{
return( variable_global += 1) ;
}

Variables locales
A diferencia de las anteriores, las variables definidas DENTRO de una función, son
denominadas VARIABLES LOCALES a la misma, a veces se las denomina también
como AUTOMATICAS, ya que son creadas y destruidas automáticamente por la
llamada y el retorno de una función, respectivamente.

1. Conocimiento.
Conocimiento
1.1. ¿Qué son los tipos de datos?
1.2. ¿Cuál es la forma general de la sentencia if?
1.3. ¿Qué es un bucle?
1.4. ¿Qué es una función?
2. Comprensión
Comprensión.
2.1. ¿Cuáles son los tipo de datos básicos que soporta C ?
2.2. ¿Cómo se declaran las variables?
2.3. ¿Cuando se utiliza switch?
2.4. ¿Cuál es la sintaxis general de la sentencia for?
2.5. Especifique la forma general de una función.
2.6. ¿Para qué se
2.7. utiliza la sentencia return?
3. Análisis.
3.1. ¿Cuál es la diferencia entre las variables locales y las variables globales?
3.2. Enumere
numere los operadores lógicos.
3.3. Enumere cinco palabras reservadas.
3.4. Nombre 3 diferencias entre while y do-while.
do
4. Síntesis - Aplicación.
Aplicación
Mediante el uso de funciones:
4.1. Elaborar un programa que determine si un número es par o impar.
4.2. Implementa un programa que resuelva una regla de tres y codifíquelo.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


53
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

4.3. Elabora un programa que realice la división de dos números que tengan
decimales.
4.4. Elabora un programa que devuelva el residuo de una división.
4.5. Elabora un programa que resuelva operaciones aritméticas básicas mientras el
usuario deseé ejecutar el programa.
4.6. Elabora un programa que presente la tabla de multiplicar que el usuario deseé.
4.7. Diseñe un programa que permita ingresar un carácter por teclado y finalizar el
programa cuando se haya ingresado todas las vocales.
4.8. Elabore una ficha de causas y consecuencias referente al uso del programa
Borland C++ enfatizando los nuevos errores que le han aparecido en el
transcurso de la codificación.
5. Valoración.
5.1. Elabore una mesa redonda referente al tema: “Programar en Borland C++.
Ventajas y dificultades”. Siga las siguientes pautas:

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


a. Presentar a los participantes de la mesa.
b. Señalar las normas de desarrollo del evento.
c. Realizar las exposiciones con la participación de cada estudiante.
d. Resumir el contenido expuesto por el moderador.
e. Inicia el foro.
f. Formular conclusiones.
5.2. Explique. ¿Es complicado programar en C?¿Por que?
5.3. ¿Qué es lo más difícil en C?
5.4. ¿Qué debemos considerar para programar correctamente en C?
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


54
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

UNIDAD N° 5: ESTRUCTURAS ESTÁTICAS.


ESTÁTICA

Competencia.

Construye software en lenguaje de programación C++ con estructuras estáticas de


diferentes tipos para
ara solucionar los problemas de una forma ordenada, ágil, precisa
y con pulcritud.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


1. ¿Por qué se utilizan las variables en el desarrollo de un software en general?
2. ¿Quéé aspectos debemos considerar al crear variables para el desarrollo de programas
en C++?
3. ¿Cuál es la sintaxis en el uso de variables en C++?
4. ¿Para qué se utiliza la sentencia #INCLUDE<LIBRERÍA.H>?
5. Liste el nombre de las librerías que ha usado para desarrollar
desarrollar programas en C++.
C++
6. ¿Por qué se debe escribir el punto y coma (;) después de cada instrucción en C++?
7. ¿Por qué no se utilizan procedimientos en C++?

Estructuras

La estructura es un tipo de datos compuesto que permite el C. Se define como un


conjunto de variables relacionadas lógicamente entre sí que se referencian bajo un
mismo nombre.

Su forma general de definición es

struct nombre_de_la_estructura{
tipo nombre_variable;
nombr
tipo nombre_variable;
tipo nombre_variable;
.
.
.
}variables_tipo_nombre_de_la_estructura;

Donde
onde nombre_de_la_estructura o bien
variables_tipo_nombre_de_la_variables_estructura pueden omitirse pero no ambos.

Veamos un ejemplo:
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


55
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

struct Agenda{
genda{
char nombre[30];
char direccion[20];
char ciudad[15];
int edad;
} Actor;
Agenda es el nombre de la estructura; nombre, dirección, ciudad y edad son los
campos o elementos de la estructura y actor es la variable declarada de ese tipo.

Los elementos individuales de la estructura se referencian utilizando el operador


punto. Por ejemplo:

Actor.nombre= "Harrison Ford";

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Aquí se está asignando la cadena "Harrison Ford" al campo nombre de la variable
actor.

El nombre de la variable tipo estructura


estructura seguido del punto y del nombre del campo,
referencia ese campo individual de la estructura. a todos los elementos de la
estructura se accede del mismo modo. La forma general es:

variable_estructura.nombre_elemento

Así, para imprimir en pantalla el campo edad de la variable actor, escribimos:

printf("%d",actor.edad);

De la misma forma podemos utilizar gets (función que leé una cadena desde el
teclado) para obtener un valor para actor, domicilio como se muestra aquí.

gets(actor.domicilio);

Las
as variables tipo estructura son útiles para crear unidades de información de
diferentes tipos lógicamente relacionada entre sí. Tal es el ejemplo de los datos de
una agenda (enen una variable guardas su nombre, dirección, número telefónico, etc.)
etc
o de los datos
atos de un elemento de la tabla periódica (en cada variable guardas su
nombre, símbolo, número atómico, etc.).
etc

Un ejemplo completo sobre estructura es:

#include <stdio.h>
#include <conio.h>

struct Persona
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


56
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

{
char nombre[30];
char direccion[20];
char ciudad[15];
int edad;
}Actor;

void main(void)
{
struct Persona Estudiante;

printf ("Ingrese los nombres del actor : ");


gets(Actor.nombre);
printf ("Ingrese los nombres del estudiante : ");
gets(Estudiante.nombre);

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


printf ("\n\nDatos Ingresados \n-------------------------------
------\nActor: %s \nEstudiante: %s", Actor.nombre,
Estudiante.nombre);
getch();

Arreglos

Un arreglo es un conjunto de elementos del mismo tipo agrupados en una sola


variable.

Su uso más común es en la implementación de cadenas de caracteres. Recuerda


que en C no existen variables de tipo cadena por lo cual se utiliza un arreglo de
caracteres.

Para ingresar a un elemento en particular, utilizamos un índice. Existen arreglos


unidimensionales, bidimensionales y tridimensionales.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


57
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

Arreglos Unidimensionales
La forma general para definir un arreglo de sólo una dimensión es la siguiente:

Tipo_de_dato
ipo_de_dato nombre_variable[tamaño]

Tipo_de_dato
ipo_de_dato se refiere al tipo de dato de cada elemento del arreglo y tamaño es la
cantidad de elementos agrupados en la misma variable.

Por ejemplo:

int var1[10] ;
char nombre[50] ;

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


float numeros[200] ;
long double cantidades[25] ;

ede referenciar a cada elemento,


Se puede elemento, en forma individual , tal como se ha hecho
con las variables anteriormente , por ejemplo :

var1[5] = 40 ;
contador = var1[3] + 7 ;
if(var1[0] >>= 37)
..................

También es posible utilizar como subíndice expresiones aritméticas, valores enteros


retornados por funciones, etc. Así podríamos escribir:

printf(" %d " , var1[++i]


var1[ ) ;
var1[8] = var1[ i + j ] ;
...............................
int una_funcion(void) ;
var1[0] = var1[una_funcion()]
var1[una_funcion() * 15 ;
Por supuesto los subíndices resultantes de las operaciones
operaciones tienen que estar
acotados a la dimensión del array y ser enteros. Por ejemplo.

#include <stdio.h>
#include <conio.h>

void main(void)
{
int A[3]= {10, 20, 30};
int i=0;

printf ("Valor de A : %d", A[++i]);


getch();

}
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


58
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

1. Investigue información referente a los métodos de ordenamiento de vectores.


Considere: Nombre del método, código de ordenamiento y corrida del programa.
Se calificara: Informe con conclusiones y defensa oral. Se recomienda:
Investigar desde diferentes fuentes.
Analizar
ar el contenido investigado.
Establecer comparaciones entre los métodos de ordenamiento.
Probar los algoritmos de ordenamiento en C++.
Presentar el trabajo en plenaria.

Conjunto ordenado de caracteres (strings)

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Los strings son simplemente arrays de caracteres, tal como los vimos hasta ahora ,
con el agregado de un último elemento constante : el carácter NULL ( ASCII == 0 ,
simbolizado por la secuencia de escape \0 ).. Este agregado permite a las funciones
que procesan
esan a los mismos,
mismos determinar fácilmente la finalización de los datos.
datos

Podemos generar un string , declarando :

char car_str[] = { 'A' , 'B' , 'C' , 'D' , 0 } ;


char car_str[] = { 'A' , 'B' , 'C' , 'D' , '
'\0'
0' } ;

Ambas maneras son equivalentes. Sin embargo hay,, en el lenguaje C , una forma
más compacta de declararlos :

char car_str[] = "ABCD" ;


char car_str[5] = "ABCD" ;

1. Presentar un informe individual referente al uso de las funciones: Strcmp, Strleen,


strcpy.
Se calificara: Concepto, sintaxis, ejemplo.

Arrays y strings como argumentos de funciones

Los arrays,, como todos los otros tipos de variables, pueden ser pasados como
argumentos a las funciones. Veamos esquemáticamente como sería la sintaxis:

double funcion_1( float numeros[10] , char palabra[] ) ;


Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


59
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

main()
{
float numeros[10] = { 1.1 , 2.2 , 3.0 } ;
char palabra[] = " Lenguaje C " ;
double c ;
c = funcion_1( numeros , palabra )
}

double funcion_1( float numeros[10] , char palabra[] )


{
..............................................
}

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


nguaje C se prefiere , para evitar el uso abusivo del stack , cuando hay que
En el lenguaje
enviar a una función una larga estructura de datos , en lugar de copiar a todos
ellos , cargar el stack sólo con la dirección de la posición de memoria donde está
ubicado el primeroro de los mismos.

Otra característica importante de los arrays es que , su nombre ( ó dirección del


primer elemento ) es una CONSTANTE y nó una variable . El nombre de los arrays
implican para el compilador el lugar de memoria donde empieza la estructura ded
datos por lo que , intentar cambiar su valor es tomado como un error , asI si
escribieramos por ejemplo :

char titulo[] = "Primer titulo" ;


....................................
titulo = "subtitulo" ;
La primer sentencia es correcta, ya que estamos inicializando al string, pero la
segunda produciría un error del tipo " LVALUE REQUERIDO " , es decir que el
compilador espera ver , del lado izquierdo de una expresión , a una variable y en
cambio se ha encontrado con una constante titulo (ó sea la dirección
direcc de memoria
donde está almacenada
nada la P de "Primer título") .

1. Diseñe un programa que permita ingresar 20 números en un vector del los cuales
solo los múltiplos de 5 se almacenan en otro vector. Mostrar los números ingresados
y los múltiplos de 5.
2. Ingrese dos vectores de igual dimensión para que estos sean sumados.
3. Cree un vector tipo entero de 10 elementos que permita ingresar los 9 primeros
dígitos de la cedula de identidad en los 9 primeros casilleros y calcule el ultimo
digito mediante la siguiente
sigui demostración:
Sea el siguiente numero de cedula: 131048163-1
131048163 procedemos a buscar el ultimo
digito:
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


60
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

1*2+3+1*2+0+4*2+8+1*2+6+3*2 = 2+3+2+0+8+8+2+6+6= 37 = 3+7 = 10 = 1+0 = 1


El ultimo digito es 1.
4. Diseñe un programa que permita
5. Diseñe un programa que permita ingresar un carácter por teclado y muestre por
pantalla dicho carácter siempre y cuando sea una vocal.
6. Desarrolle un programa que permita ingresar n elementos en un vector y
posteriormente calcule su media aritmética.
7. Diseñe un programa que permita determinar si un texto ingresado mediante
vectores es palíndromo. Diseñe un programa que permita ordenar un vector de n
números en forma ascendente.
8. Diseñe un programa que permita ordenar un vector de n números en forma
descendente.
9. Diseñe un programa que lea una serie de caracteres e imprima la cadena que
empiece con la letra “B”

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


10. Diseñe un programa que lea una serie de caracteres e imprima la cadena que termine
con la letra “a”.
11. Mediante un programa ingrese una cadena de caracteres y muestre cuantas veces se
repite cada carácter.

Arreglos bidimensionales

Un arreglo bidimensional es un arreglo de arreglos unidimensionales. Constituyen


la forma más simple de los arreglos multidimensionales. Su forma general de
declaración es:

tipo_dato variable[primer índice][segundo índice];

El primer índice corresponde a la filas y el segundo a las columnas.

Cuando se utiliza un arreglo bidimensional como argumento de una función,


realmente se pasa sólo la dirección del primer elemento (el[0][0]). Sin embargo, la
función que recibe un arreglo bidimensional como parámetro tiene que definir al
menos la longitud de la segunda dimensión. Esto es necesario debido a que el
compilador de C necesita "conocer" la longitud de cada fila para ordenar el arreglo
correctamente. Por ejemplo, si declaramos:

int matriz[3][4] ;

Esquemáticamente la disposición "espacial" de los elementos seria:

Columnas 0 1 2 3
Filas 0 [0][0] [0][1] [0][2] [0][3]
1 [1][0] [1][1] [1][2] [1][3]
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


61
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

2 [2][0] [2][1] [2][2] [2][3]

1. Desarrolle un programa que permita generar en una matriz de 4X4 la siguiente


grafica:

2. Desarrolle un programa que permita generar en una matriz de 4X4 la siguiente


grafica:

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


3. Desarrolle un programa que permita generar en una matriz de 4X4 la siguiente
grafica:

4. Desarrolle un programa que permita generar en una matriz de 4X4 la siguiente


grafica:

5. Desarrolle un programa que permita generar en una matriz de 4X4 la siguiente


grafica:

6. Diseñe una
na matriz identidad de NXN guiándose mediante la siguiente grafica:

7. Se tiene una matriz A de M filas y N columnas y un vector B con M elementos. Se


desea obtener un vector C con la siguiente operación:
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


62
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

8. Diseñe un software
software que permita leer una matriz MxN, debe cumplir la condición que
M debe contener hasta 100 elemento y N 200 elementos.
El programa debe ordenar la matriz de tal manera que todos los caracteres deben
almacenarse al comienzo de la matriz.
matriz Imprima la matriz leída y ordenada.
9.

Array de estructuras.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


Cuando hablamos de Arrays dijimos que se podían agrupar, para formarlos,
cualquier tipo de variables, esto es extensible a las estructuras y podemos entonces
agruparlas ordenadamente, como elementos de un array. Veamos un ejemplo:

typedef struct {
char material[50] ;
int existencia ;
double costo_unitario ;
} Item ;
Item stock [100];
[100]

Hemos definido aquí un array de 100 elementos, donde cada uno de ellos es una
estructura del tipo Item compuesta por tres variables, un int , un double y un
string ó array de 50 caracteres.

1. Se tiene la información de una persona: nombre y fecha de nacimiento. Realizar un


programa que lea la información de varias personas hasta ingresar una cadena nula
en lugar del nombre. Luego imprima un reporte en orden cronológico con la
siguiente cabecera:
Nombre Edad
2. Diseñe un programa que registre los nombres, apellidos, fecha de nacimiento
nacimi y edad,
considerando que la edad debe ser calculada. Muestre un reporte por pantalla.
3. Diseñe un programa que registre los datos de varios artículos (Nombre, stock, peso,
Precio de costo) el precio de venta se obtiene del 20% extra del precio de costo.
costo
Los artículos deben ser ingresados hasta que el usuario lo permita. Al finalizar
muestre un reporte de todos los artículos ingresados y el total del inventario.
4. Diseñe dos estructuras ESTUDIANTE (Código, Apellido, nombre y curso) y NOTA
(Código del estudiante,
estudiante, Actividades, Lecciones, Proyectos, Tareas, Evaluación y
promedio), el promedio debe ser calculado. Muestre los reportes correspondientes.
5. Elabore un programa que ingrese una serie de elementos tipo entero que se almacena
en un vector. Por último diseñe
diseñe una estructura de datos que muestre los elementos
ordenados con su frecuencia. Muestre un reporte similar a este:
Si la serie ingresada es: 6 2 1 4 1 2 4 1 4 la frecuencias de elementos ordenados seria:
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


63
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

6. Una estructura para un estudiante de informática


informática tiene los siguientes campos:
nombre y notas de materias (Programación, Sistemas, Análisis y Administración).
Realizar un programa para registrar la información de cada estudiante hasta digitar
<ENTER> en el nombre del estudiante o un máximo de 20 estudiantes.
estud Imprima un
reporte alfabético como el siguiente:
ORD NOMBRE PROGRAMACIÓN SISTEMAS ANÁLISIS ADMINISTRACIÓN
Realizar funciones para el ingreso, ordenamiento, intercambio y reporte
7. Elabore un programa que cree un directorio telefónico ordenado en forma alfabetica,
los campos de cada persona del directorio consta de nombre y numero de teléfono.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


El incremento de personas se realiza mientras se digite “S” cuando aparezca el
mensaje: “Desea
Desea ingresar otro (S/N)?”.
(S/N)?
Ademas, el programa debe realizar la búsqueda
búsqueda de un numero telefónico mediante
su nombre y por ultimo imprima el directorio completo

1. Conocimiento.
Conocimiento
1.1. ¿Qué es un arreglo?
1.2. ¿Qué es una estructura?
2. Comprensión
Comprensión.
2.1. ¿Qué relación posee las estructuras y los arreglos?
2.2. ¿Cuál es la forma de declararación de un arreglo?
2.3. De un ejemplo de inicialización de arreglos sin tamaño.
2.4. Explique: ¿Para qué se utilizan los arreglos?
2.5. ¿Qué relación tiente los arreglos y el conjunto ordenado de caracteres?
3. Análisis.
3.1. ¿Cómo se trabaja con estructuras?
3.2. ¿Cuál es la diferencia entre arreglos unidimensionales y arreglos
multidimensionales?
4. Síntesis - Aplicación.
Aplicación
4.1. Elabore una función que muestre el nombre del usuario al revés.
4.2. Elabore un programa que guarde los datos de una agenda con capacidad para
15 direcciones diferentes.
4.3. Implemente un programa que sume dos matrices.
4.4. Elabore una ficha de causas y consecuencias referente al uso del programa
Borland C++ enfatizando los nuevos errores que le han aparecido en el
transcurso de la codificación.
5. Valoración.
5.1. Elabore una mesa redonda referente al tema: “Programando
“Programando estructuras estáticas
dificultades”. Siga las siguientes pautas:
en C++. Ventajas y dificultades”.
a. Presentar a los participantes de la mesa.
b. Señalar las normas de desarrollo del evento.
c. Realizar las exposiciones con la participación de cada estudiante.
d. Resumir el contenido expuesto por el moderador.
e. Inicia el foro.
f. Formular conclusiones.
Material exclusivo para los alumnos del Centro Educativo “Wenceslao Rijavec”

Programación en Lenguajes Estructurados


64
©2010.
Prof. Víctor Martínez.
Área Técnico Profesional

BIBLIOGRAFÍA

Cote Portilla, J. C. (Julio de 2008). Programación Estructurada.

De Lobos, M. E. (9 de Marzo de 2005). Aprenda a Programar. Recuperado el 17 de


Febrero de 2009, de
http://www.mailxmail.com/curso/informatica/programacionestructurada

FUDIBEQ. (15 de Julio de 2002). Diagrama de Flujo.

García Herrero, G. (1996). Representación gráfica de sistemas de información. El


flujograma. En Analisis y diseño de sistemas de información en trabajo social (pág.

Víctor Martínez Falcones - http://avenetenterprise.web.officelive.com


7). España.

Kendall. (2000). Curso de C/C++ y Visual C++. España: EIDOS.

Lopez Zurita, M. A. (01 de Enero de 2008). Curso de Informatica. Recuperado el 17


de Marzo de 2009, de Manual de Programación:
http://www.mailxmail.com/curso/informatica/manualdeprogramacion

También podría gustarte