You are on page 1of 42

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD

ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA


CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA

PROGRAMA DE INGENIERÍA DE SISTEMAS

301304 – INTRODUCCIÓN A LA PROGRAMACIÓN

MIRIAN BENAVIDES RUANO


(Director Nacional)

PASTO
Junio de 2016

1
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO

El presente módulo fue diseñado en el año 2004 por el Ing. IVAN


ARTURO LÓPEZ, docente de la UNAD, y ubicado en el CEAD de Popayán, el
Ing. López es Ingeniero de Sistemas, y especialista en Pedagogía para el
Desarrollo del Aprendizaje Autónomo y Estudiante master educación y tics
UOC (Universidad Oberta de Cataluña). Ha tenido tres actualizaciones, una
desarrollada por el Ing. Iván López en los años 2005, la segunda hecha en el
año 2008 por la Ing. IRINA NARVÁEZ ESPINOSA, quien ha sido tutora de la
UNAD en los CEAD de Acacias y José Acevedo y Gómez, desde el año 2001, es
Ingeniera de Sistemas, especialista en Pedagogía para el Desarrollo del
Aprendizaje Autónomo y aspirante al título de magíster en Informática
Educativa.

En el año 2009 el Ing. SERGIO BERMÚDEZ ROJAS, tutor del CEAD


Barranquilla, apoyó el proceso de revisión de estilo del módulo y dio aportes
disciplinares, didácticos y pedagógicos en el proceso de acreditación de
materialdidáctico desarrollado en el mes de JULIO de 2009.

En ENERO de 2011 el módulo fue actualizado por la Ing. MIRIAN


BENAVIDES RUANO, Docente Auxiliar en el CEAD Pasto, Ingeniera de
Sistemas, Especialista en Docencia Universitaria y Especialista en Informática y
Telemática, quien se desempeña como Directora del curso a nivel nacional desde
AGOSTO de 2010. Quien además realizó actualizaciones en JULIO de 2012 y en
JUNIO de 2016.

2
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

INTRODUCCIÓN

El curso de introducción a la programación es de gran importancia puesto que


permite familiarizar al estudiante con la metodología requerida para la resolución
de problemas a través de medios informáticos, presentando los elementos
básicos en la programación. Para ello, es indispensable que los estudiantes
cuenten con los conocimientos adquiridos en el curso de algoritmos. El lenguaje
de programación que se utilizará es C++, bajo los paradigmas de programación
estructurada y procedural.
Este módulo está organizado por unidades. Inicia retomando los aspectos
generales de la programación, un acercamiento al lenguaje de programación
C++, las características del editor que se utilizará y las estructuras de
programación básicas a utilizar como las sentencias de control selectivas y
repetitivas.

En la segunda unidad se aborda el tema deFunciones, haciendo enfásis en las


funciones diseñadas por el programador, que permiten depurar los programas y
aprovechar las potencialidades del lenguaje C++.

En la última unidad denominada Arreglos, se abordan los temas de las


estructuras estáticas para almacenamiento de información, como es el caso de
los arreglos unidimensionales y bidimensionales, con los respectivos métodos de
ordenación y búsqueda.

Aunque para la realización del módulo se han realizado esfuerzos por sintetizar
los temas más importantes de la programación, es indispensable que los
estudiantes no se queden únicamente con lo expuesto en este documento, sino
que traten de profundizar más, aprovechando las múltiples opciones que se
ofrecen en la red; esta tarea puede ser apasionante, pues es la base para
abordar los temas que se acercan cuando inicien el trabajo con bases de datos.
Para terminar, solo resta decir que este módulo está construido, con base en una
recopilación de conceptos de diferente autores, que llevarán al estudiante a un
aprendizaje significativo, complementado con ejercicios, una amplia referencia
bibliográfica y direcciones web, que posibilitarán una mayor autonomía y
confianza por partedel estudiante.

3
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

UNIDAD 1

Nombre de la INTRODUCCIÓN A LA PROGRAMACIÓN


Unidad
Introducción
Las temáticas a tratar en el curso de Introducción a la Programación
requieren de mucha disposición de su parte, puesto que es necesario
que desarrollen sus propias lógicas de programación y eso sólo se
consigue con mucha práctica, de tal manera que para lograr una
verdadera construcción de conocimiento significativo, usted debe:

1. Revisar de manera comprensiva y reflexiva el material


dispuesto en este espacio.
2. Instalar en su computador de trabajo el entorno de desarrollo
Falcon
3. Desarrollar los ejercicios correspondientes a las actividades
programadas, verificando que compilen adecuadamente, sin
errores de sintaxis, o de tipo lógico.
4. Consultar las referencias bibliográficas complementarias.
5. Participar de manera proactiva con sus compañeros de
pequeño grupo colaborativo en los entornos de Aprendizaje
Colaborativo y Aprendizaje Práctico.
6. Es fundamental que su participación se realice a tiempo y
dentro de las fechas establecidas en la guía de actividades.

A continuación encontrará el contenido académico correspondiente a la


Primera Unidad: Introducción a la Programación, en la cual se abordan
los temas iníciales para asimilar los conocimientos requeridos para
empezar a programar en el lenguaje C++, organizados de manera
secuencial, para avanzar de manera progresiva, desde los conceptos
más sencillos hasta los más complejos. El estudio del material aquí
dispuesto es de carácter obligatorio.

Después de los contenidos, encontrará las Referencias bibliográficas


complementarias, que corresponden, como su nombre lo indica a
material complementario que pueden consultar para apoyar su
aprendizaje.
Justificación
La primera unidad permite que el estudiante realice un repaso sobre la
conceptualización del tema de programación de computadores, y lo va
involucrando en actividades prácticas utilizando el editor para el
lenguaje C++.

Es importante que los estudiantes retomen el modulo de algoritmos,


para recordar algunos de los conceptos olvidados, y consulten
bibliografía de los temas que se van abordando.

Intencionalidades
Formativas Afianzar conocimientos referentes a la programación de
computadores, con un lenguaje especifico.

Propósitos de la unidad

4
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

• Realizar recuento de las principales características de la


programación de computadores.
• Manejar el entorno de programación con el compilador C++

Objetivos de la unidad

• Conocer la funcionalidad del editor del compilador aquí utilizado.


• Motivar a descubrir que otras funciones tiene el editor del
lenguaje.
• Determinar las técnicas de programación, utilizando C++,
como lenguaje de base.

Competencias de la unidad

• El estudiante reafirma los conceptos previos necesarios para


el desarrollo de programas en C++.
• El estudiante reconoce el funcionamiento general del editor de
C++.
• El estudiante aplica las estructuras básicas de selección e
iteración en el diseño de soluciones utilizando el lenguaje C++.

Metas de aprendizaje

El estudiante es capaz de desarrollar programas en el lenguaje C++


integrando estructuras básicas.

5
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

CONCEPTOS GENERALES DE PROGRAMACIÓN

Es fundamental iniciar el curso de introducción a la programación, abordando


conceptos básicos que tienen que ver con la utilización de un lenguaje de
programación para diseñar soluciones a problemas de información.

Revisión de conceptos generales de programación

Programación: es un proceso mediante el cual se convierten especificaciones


generales de la solución de un problema, en instrucciones que el computador
puede interpretar y que producen los resultados deseados (desarrollo de
software).

Programa: lista de instrucciones que el computador sigue para convertir datos en


información. Estas dependen del lenguaje de programación que se utilice.

Un programa debe ser:


• Confiable y funcional
• Comprensible
• Documentado

Fases para la creación de un programa

• Definición del problema: clara y precisa


• Análisis del problema: requiere identificar
o Datos de salida (información que debe producir el programa)
o Datos de entrada (datos que debe suministrar el usuario para lograr
los resultados esperados
o Datos de proceso (fórmulas necesarias para procesar los datos)
• Diseño de la solución: lista ordenada y cronológica de los pasos a seguir
para lograr resultados (diagramas de flujo, pseudocódigo, etc.). Debe ser
simple, clara, precisa, exacta, tener un orden lógico e indicar su inicio y
final.
• Codificación: escribir la solución del problema en un lenguaje de
programación (traducir el diagrama de flujo o pseudocódigo en
instrucciones que puedan ser interpretadas por el computador)
• Prueba y depuración: ejecutar el software para identificar y eliminar los
errores (de sintaxis o de tipo lógico)
• Documentación: guía que facilita futuras modificaciones del software

Programación estructurada: se caracteriza por organizar las instrucciones de


manera secuencial, de tal manera que es posible leer la codificación desde el
inicio hasta el final en forma continua sin saltar de un lugar a otro, siguiendo el
camino lógico establecido por el programador.

6
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

En este paradigma de programación se debe prestar especial atención a la etapa


de diseño de la solución, una vez establecidos los pasos secuenciales, la
codificación es más fácil.

Características: la estructura del programa se realiza de la manera más clara y


precisa posible, para ello utiliza:
• Secuencia: sucesión simple de operaciones
• Selección: bifurcación condicional de una o más operaciones
• Iteracción: repetición de tareas mientras se cumple una o más condiciones

Ventajas:
• Tiene una estructura clara y por ende una buena presentación.
• Es más fácil de comprender
• Facilita la revisión de la codificación
• Reduce el tiempo de prueba y depuración

Programación Procedural:es un tipo de programación estructurada en donde el


código se divide en porciones llamadas "procedimientos" o "funciones". Este tipo
de programas permite que una porción de programa sea llamada varias veces sin
que tenga que volver a escribir todo el código, simplemente se realiza el llamado a
la función o procedimiento que se requiere. Este tipo de programación se basa en
subdividir un programa en piezas lógicas para reducir su complejidad según el
principio de "divide y vencerás".

Identación: utilización de sangrías (espacios) para facilitar la lectura del programa


puesto que muestra en forma gráfica las relaciones entre las instrucciones.

Para aprovechar la identación en un programa en C++ se sugiere:


• Escribir en la misma columna los indicadores de inicio y fin de cada bloque
de sentencias
• Utilizar diferentes sangrías para indicar anidamientos de instrucciones
• Escribir una instrucción por línea

Lenguaje de Programación C++

En 1980, se comenzó a desarrollar el lenguaje C++, su autor fue B. Stroustrup.


Al comienzo era una extensión del lenguaje C que fue denominada C with clases,
sin embargo es considerado por muchos autores como un lenguaje diferente al C.

La evolución de C++ ha continuado con la aparición de Java, un lenguaje creado


simplificando algunas cosas de C++ y añadiendo otras, que se utiliza para realizar
aplicaciones en Internet.

El C++ es a la vez un lenguaje procedural (orientado a algoritmos) y orientado a


objetos. Como lenguaje procedural se asemeja al C y es compatible con él,
7
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

aunque ya se ha dicho que presenta ciertas ventajas. Como lenguaje orientado a


objetos,se basa en una filosofía completamente diferente, que exige del
programador un completo cambio de mentalidad. Las características propias de la
Programación Orientada a Objetos (Object Oriented Programming, u OOP) de
C++ son modificaciones mayores que sí cambian radicalmente su naturaleza.

Es de anotar, que para el curso se trabajará con el lenguaje de programación C++,


utilizando los paradigmas de programación estructurada y procedural.

Ambiente de C++

El lenguaje C++ requiere de tres partes: un ambiente de desarrollo de programas,


el lenguaje y la biblioteca estándar de C++. Para desarrollar un programa es
necesario abordar seis fases: edición, preproceso, compilación, enlace, carga y
ejecución.

1. Edición: requiere de un programa de edición donde se escribe el código


necesario, este archivo se conoce como Archivo fuente que se almacena en un
dispositivo secundario, por ejemplo el disco duro. La extensión del archivo
fuente puede ser .cpp, .cxx, .cc o .c. Existen múltiples editores para el lenguaje
C++, entre los más conocidos están Borland C++, DEV C++, Visual C++,
Falcon.
2. Preproceso: antes de compilar una codificación de C++, un programa llamado
preprocesador ejecuta automáticamente los comandos denominados directivas
del preprocesador, que indican ciertas órdenes necesarias que no son visibles
para el programador, pero que son necesarias para desarrollar una buena
compilación.
3. Compilación: el programador debe ejecutar el comando necesario,
dependiendo del entorno de desarrollo que utilice, para realizar la compilación,
esto traduce el programa C++ a código en lenguaje máquina, denominado
Código objeto.
4. Enlace: un programa en C++ contiene referencias a funciones y datos ya
definidos en bibliotecas estándar o bibliotecas exclusivas creadas por
programadores para proyectos específicos, entonces la tarea del enlazador, es
conectar el código objeto con el respectivo código de las funciones que se
referencian.
5. Carga: corresponde a la fase en que el programa se carga en memoria, esta
acción la realiza el Cargador, tomando la imagen ejecutable del disco y
transfiriéndola a la memoria, junto con los componentes adicionales de las
bibliotecas que se utilizan en el programa.
6. Ejecución: el computador ejecuta el programa y se pueden observan,
entonces, los resultados de las instrucciones que se han incluido en la
codificación.

8
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Si se presentan errores, por diversas razones, se mostrará un mensaje de error y


es necesario volver a la fase de edición para interpretarlo y corregirlo.

Traductores de lenguaje

Para entender mejor el proceso de conversión, es necesario aclarar ciertos


términos:

• Programa fuente: es la codificación escrita por el programador en un lenguaje


de alto nivel, contiene las sentencias del programa en un lenguaje de
programación. Para que sea ejecutable debe ser traducido.
• Compilador: es el programa que se encarga de traducir los programa fuentes
escritos en el lenguaje de alto nivel a lenguaje de máquina y además
comprueba que las llamadas a las funciones de librería se realicen de manera
correcta.
• Programa objeto: es el programa fuente traducido por el compilador a código
máquina. Hay que recordar, que el programa aún no es directamente
ejecutable en esta etapa.
• Linker (montador o enlazador): Es el programa encargado de insertar
alprograma objeto el código máquina de las funciones de las librerías
(archivosde biblioteca) usadas en el programa y realizar el proceso de montaje,
queproducirá un programa ejecutable .exe. Las librerias son una colección
decódigo (funciones) ya programado y traducido a código máquina, listo
parautilizar en un programa y que facilita la labor del programador.
• Programa Ejecutable: Traduccióncompleta a código máquina,
realizadapor el enlazador, del programa fuentey que ya es directamente
ejecutable.

Representación de la compilación y linkado.

Programa Compilación Programa Enlazador Programa


fuente objeto ejecutable

FIGURA 1. Proceso de compilación y linkado

De lo anterior se deduce que el código escrito por el programador es el programa


fuente y para que ese programa se ejecute y cumpla el objetivo para el que fue
creado, debe pasar por los procesos de compilación (programa objeto) y enlace
9
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

(programa ejecutable). Al realizar el programa fuente se deben tener cuenta que


las sentencias y sintaxis sean correctas, de lo contrario no se puede compilar.

CONCEPTOS BÁSICOS DE LOS PROGRAMAS EN C++

C++ es un lenguaje de programación de propósito general que utiliza, en relación


a otros lenguajes,una cantidad bastante limitada de términos específicos, y cuenta
con control de flujo, estructuras sencillas y un buen conjunto de operadores. Se
podría decir que es un lenguaje pequeño, sencillo y no está especializado en
ningún tipo de aplicación, lo que lo convierte en un lenguaje potente, con un
campo de aplicación muy amplio que facilita los procesos de aprendizaje, porque
con dedicación en poco tiempo se puede conocer lo esencial para desarrollar
buenos programas

Estructura general de un programa en C++

Un programa en C++ está constituido básicamente por:

• Directivas del pre-procesador:


• [declaración de variables globales]
• [prototipos de funciones]
• Función main
• [definiciones de funciones]

Los elementos que se mencionan entre paréntesis cuadrados [ ] son opcionales y


dependen de la complejidad del programa. Por lo tanto se pueden construir
programas simples que sólo utilizan Directivas del pre-procesador y Funcion main.

Directivas del Pre-procesador: las directivas son instrucciones que se le dan al


compilador antes de que se compile el programa principal. Las más usuales son:
#include y #define. La directiva #include indica al compilador que lea el archivo
fuente que está a continuación, y su contenido lo inserte en la posición donde se
encuentra dicha directiva.

Los archivos mencionados se conocen como archivos de cabecera o archivos de


inclusión. Por ejemplo se puede indicarle al compilador que se va a hacer uso
de las funcionalidades que proporcionan ciertas bibliotecas (en este caso
predefinidas), de tal manera que para emplear la biblioteca de entrada/salida
iostream se debe incluir iostream.

#include <iostream>

10
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

La directiva #define, indica al compilador que defina un ítem de datos u operación


para el programa que se está desarrollando. Por ejemplo:

#define CANTIDAD 100

Esta instrucción indica que se sustituya CANTIDAD por el valor 100, cada vez que
aparezca en el programa.

Declaración de variables y constantes globales: las variables y constantes


globales son aquellas cuyo valor afecta a todo el programa, esto es que se
reconocen en todas las funciones donde se utilicen. Deben ubicarse antes de la
función main(), se indica el tipo de dato y el nombre de la variable. Ejemplo:

int VARIABLE1;

Las variables y constantes globales se definen antes de la función principal


main(); y las variables y constantes locales se declaran en dentro de la fución
donde se vaya a utilizar, ya sea la función principal main() u otra función definida
por programador.

Prototipo de funciones: se realiza una descripción a manera de prototipo


de las funciones que se crearan más adelante. Ejemplo:

int funcion1();

Función main(): todo programa escrito en C++ está constituido por funciones, y
la función principal es main(), que no puede faltar en ningún programa. Luego del
término main() se escribe el bloque de código, que generalmente incluye
llamadas a otras funciones definidas por el usuario. Ejemplo de su estructura:

int main()
{ sentencia 1;
sentencia 2;

return 0;
}

Las sentencias que se incluyen en las funciones, finaliza con punto y coma (;).

Definición de funciones: es necesario codificar las funciones cuyo prototipo ya


fue declarado antes de la función principal main(), para darle viabilidad al
programa. Las funciones se crean para realizar una tarea específica, pueden
devolver o no datos y utilizar o no argumentos. Todas las funciones tienen
nombre. Recuerde que debe declarar su prototipo antes de la función principal
main(), de lo contrario al compilar el programa se generará un error.

11
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Sentencias: cada una de las ordenes que se le da al compilador por medio del
lenguaje para que efectué una acción. Las sentencias finalizan con punto y coma
(;).
Elementos de un programa en C++

Los elementos más relevantes de un programa en C++ son:

• Identificadores: un identificador es una secuencia de caracteres, letras,


dígitos y subrayados (_). Para escribir un identificador se debe tener en cuenta:
o El primer carácter sólo puede ser una letra o un subrayado (no pueden
iniciar con dígitos).
o Son sensibles a las mayúsculas, esto es, existe diferencia entre: UNAD,
Unad, uNad.
o Pueden tener cualquier longitud, pero sólo son significativos los 32
primeros.
o No pueden ser palabras reservadas, como if, switch, int, entre otras.

• Palabras reservadas: son términos especiales que hacen parte del lenguaje y
tienen un significado especial. Estas palabras reservadas no se pueden utilizar
como nombre de identificador o función.

Lassiguientessonpalabrasreservadas:asm, enum, auto, extern, break, float,


case, for, char, goto, const, if, signed, sizeof, static, struct, switch, typedef,
continue, default, do, double, else, int, long, register, return, short, union,
unsigned, void, volatile, while.

• Comentarios: es toda la información que se añade al archivo del programa y


que es ignorada por el compilador. Generalmente son aclaraciones que se
realizan sobre las estructuras y datos que se están manejando. En C++ los
comentarios inician por /* y terminan con */ y cuando el comentario alcanza
en una sola línea se utiliza //ejemplo de comentario de una línea.

• Signos de puntuación y separadores: todas las sentencia en C++ terminan


con punto y coma (;). Los separadores son espacios en blanco, tabulaciones,
retornos de carro y avances de línea. Los signos que también se utilizan son:

!%[]^\&;*'(:)<->+?=,{.}/~"

• Secuencias de escape: se utilizan para indicar acciones específicas y para


referenciar caracteres no imprimibles. Las más comunes son:
Secuencia Acción
\n Salto de línea
\t Tabulación horizontal
\b Retroceso
\a Alerta, pitido
12
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

\’ Imprimir comilla simple


\” Imprimir comilla doble
\\ Imprimir barra invertida

• Archivos de cabecera:son archivos especiales que contienen declaraciones


de elementos y funciones de la biblioteca. Utiliza la directiva #include para
insertar los archivos de cabecera. Ejemplo: si va a utilizar las instrucciones de
entrada y salida cin y cout, debe declarar la librería iostream asi:

#include <iostream> /* o bien */ #include "iostream"

• Variables: son espacios de memoria, identificados con un nombre, que se


utilizan para guardar datos. Los datos que se trabajan en un programa deben
ser almacenados en variables, para luego ser procesados y recuperados para
su visualización.En el caso del lenguaje de programación C++, las variables
que se utilicen en un programa deben ser declaradas, antes de trabajar con
ellas.

La sintaxis para declara una variable es: tipo_de_dato identificador;


Ejemplo: int numero;

La sentencia indica que se reservado un espacio de memoria llamado numero


que almacenará un valor entero.

Si se requiere de más de una variable del mismo tipo, se pueden declarar en


una sola línea.
Ejemplo: int edad, cantidad, numero;
Se han declarado 3 variables de tipo int.

También se pueden asignar valores a las variables en el momento de la


declaración.
Ejemplo: int edad=30, cantidad=0, numero;
Se han declarado 3 variable de tipo int y a 2 de ellas se les han asignado
valores.

Es recomendable que los nombres de las variables guarden relación con su


contenido, para mayor claridad del programa. El nombre que se le da a una
variable es lo que se conoce como identificador.

Finalicemos con un ejemplo de lo explicado, resolviendo un problema sencillo.

Problema:
Calcular el promedio de 3 números e informar si el resultado es superior a 100.

13
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Análisis:
• Datos de entrada: valor de los 3 números, que se almacenarán en 3
variables de tipo entero que se llamarán n1, n2 y n3
• Datos de proceso: calcular el promedio utilizando la fórmula
promedio = (n1 + n2 + n3) / 3
• Datos de salida: resultado del promedio, que se encuentra en la variable
float promedio.

Diseño de solución: se presenta mediante pseudocódigo.

Programa: Promedio

INICIO
LEER n1, n2, n3
CALCULAR promedio = (n1+n2+n3) / 3
ESCRIBIR promedio
SI (promedio > 100) entonces
ESCRIBIR “Promedio superior a 100”
SI NO
ESCRIBIR “Promedio inferior a 100”
FIN SI
FIN

Prueba de escritorio:

Ejecución n1 n2 n3 promedio Salida


1 50 20 10 26 El promedio es 26
Promedio inferior a 100
2 10 10 10 10 El promedio es 10
Promedio inferior a 100
3 150 500 300 El promedio es 316
Promedio superior a 100

Codificación en lenguaje C++ (IDE Falcon)

/*Autor: Mirian Benavides - UNAD


Programa: Promedio */

//DIRECTIVAS DEL PRE-PROCESADOR


#include <iostream> //Biblioteca estándar de entrada y salida, para utilizar cout y
cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecución del programa hasta que el usuario digite
una tecla */
#define CANTIDAD 100

14
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

using namespace std; /*Indica al compilador que utilizará el espacio de nombres


estandar para no incluirlos cada vez que se utilice cout y cin */

int main() //Función principal


{ int n1, n2, n3; //Declaración de variables de tipo entero
float promedio; //Declaración de variable de tipo decimal
cout<<"PROMEDIO DE 3 VALORES"<<endl<<endl; //Imprime mensaje
cout<<"Digite el valor del primer numero : "; //Imprime mensaje
cin>>n1; //Almacena en la variable n1 el valor digitado por el usuario
cout<<"Digite el valor del segundo numero : "; //Imprime mensaje
cin>>n2; //Almacena en la variable n2 el valor digitado por el usuario
cout<<"Digite el valor del tercer numero : "; //Imprime mensaje
cin>>n3; //Almacena en la variable n3 el valor digitado por el usuario
promedio=(n1+n2+n3)/3; //Realiza un cálculo y almacen el resultado en la la
variable promedio
cout<<endl<<endl; //Realiza 2 saltos de línea
cout<<"El promedio es "<<promedio; //Imprime mensaje
if (promedio>CANTIDAD) cout<<endl<<endl<<"Promedio superior a "
<<CANTIDAD;
else cout<<endl<<endl<<"Promedio inferior a " <<CANTIDAD;
cout<<endl<<endl; //Realiza 2 saltos de línea
system("pause"); //Detiene la ejecución del programa hasta que el usuario
digite una tecla
return 0;
}

Atención: en el programa no se han utilizado variables globales, ni funciones


diseñadas por el programador, porque el problema que se resuelve es muy básico
y no las necesita.

TIPOS DE DATOS

C++ no cuenta con muchos tipos de datos predefinidos, sin embargo si tiene la
capacidad para crear sus propios tipos de datos.

La siguiente tabla muestra los distintos tipos de dato que se pueden usar en
C++para declarar variables.

TIPOS DE DATOS BÁSICOS


RANGO de Valores
TAMAÑO en
que
TIPO DESCRIPCIÓN Bytes de la Se usan
Puede
Variable
Almacenar

15
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

bool Dato de tipo 1 True o false Cuando la variable


lógico sólo puede tener dos
valores
char Caracter 1 -128 a 127 ‘Á’...’Z’, $

short Entero corto 2 -32768 a 32767 Para almacenar


números enteros
int Entero 4 -2147483648 a Para almacenar
2147483647 números enteros
long Entero largo 4 -2147483648 a Para almacenar
2147483647 números enteros
float Real (número en 4 -3.4E-38 a 3.4E38 Para almacenar
coma flotante) númerosreales.

Real doble 8 -1.7E-308 a 1.7E308 Para almacenar


double (número en coma números Reales
flotante de doble
precisión)

long double Real doble largo 10 -3.4E-4932 a 1.1E Para almacenar


(número en coma 4932 númerosreales.
flotante de doble
precisión)
void Vacio Funciones que no
retornan ningún valor

TABLA 1.Tipos de datos básicos

Existen tipos de datos adicionales que pueden ser creados por el programador,
utilizando typedef, enum o struct, los cuales no se tratarán en este curso.

Declaración de Variables

Antes del main() o dentro de él se deben definir las variables, ejemplo:


float a, b, x;

Las variables que se declaran dentro del main() se dice que son variables
locales, las que se declaran antes del main() se dicen globales.

Una variable se puede declarar de las siguientes maneras:


• Formato general: tipo_de_dato nombre_variable = valor_inicial. Ejemplo;
int variable1 = 100;
• Se pueden declarar múltiples variables en una línea, asi:
int edad, tipo, categoría = 2; //tipo de dato entero
int v1; int v2;
int serie1 = 123, serie2 = 456;
float nota1=2.5; //tipo de dato real
char letra = ´C´ //tipo de dato carácter

16
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Operadores y expresiones

Una expresión es una sucesión de operadores y operandos debidamente


relacionados que especifican un cálculo.
Ejemplo: int a=10, b=20, total=0;
total = a + b; //ésta es una expresión

Operadores

Los operadores se clasifican en:

• Operador de asignación: permite asignar un valor a una variable numérica. El


operador igual (=) asigna el valor de la expresión derecha a la variable situada
en la izquierda. Ej. A = 10; //almacena el valor 10 en la variable A.

• Operadores aritméticos: se utilizan para realizar operaciones aritméticas


básicas.
o Suma: +
o Resta: -
o Multiplicación: *
o División: /
o Módulo: % Se utiliza para encontrar el valor del residuo de una
división.Ej. x = 5 / 2; // el valor que se almacena en x es 1
o Incremento: ++ Incrementa el valor de una variable de tipo numérico en
1. Ej. int x = 10;
x++; // el valor de x es 11
o Decremento: -- Decrementa el valor de una variable de tipo numérico
en 1.Ej. int y = 5;
y--; // el valor de y es 4

Las prioridades de ejecución son:


o ++ y --,
o *, /, %
o +, -

• Operadores Lógicos

o and es conocido como && (y). Se utiliza para unir condiciones, para que
la expresión sea verdadera, todas las condiciones que se unen deben
ser verdaderas.
o or operador || (o). La sentencia es verdadera cuando una de las
condiciones es verdadera. (alt-124).
o ! niega la expresión o condición. Ej. !(a>b) indica a no es mayor que b

17
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

• Operadores Relacionales

• > mayor que


• < menor que
• >= mayor o igual que
• <= menor o igual que
• = = igual. Se utiliza para condiciones

• Otros operadores
o << inserción de flujo
o >> extracción de flujo

ENTRADAS Y SALIDAS

En C++ se utilizan los objetos de flujo cin (flujo de entrada estándar) y cout (flujo
de salida estándar) para la entrada y salida de datos, combinados con los
operadores de direccionamiento >> y << que se encargan de direccionan el flujo
de datos desde o hacia el dispositivo referenciado. Para su funcionamiento se
requiere incluir la biblioteca iostream.
#include<iostream>

cin >> se utiliza para almacenar datos, digitados por el usuario, en una variable
previamente definida. Al ejecutarlo se produce una pausa en el programa hasta
que el usuario introduzca un dato por teclado.

Ejemplo:

#include <iostream>
using namespace std;
int main()
{ int x;
cout << “Digite un valor numerico : ”;
cin >> x;
cout <<endl <<”El numero es: ” <<x;
cout <<endl;
return 0;
}

 Se ha declarado la variable x de tipo entero


 Se muestra un mensaje al usuario indicándole que digite un valor numérico.
 El programa realizará una pausa hasta que el usuario digite un valor
 El valor digitado por el usuario se almacena en la variable x.

18
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

 Se imprime un mensaje El numero es: y en seguida se muestra el número


digitado por el usuario (valor almacenado en la variable x)
 Se realiza un salto de línea.

Con un solo cin>>, se pueden leer varios datos, sin embargo es indispensable que
se le indique al usuario que después de cada dato digite enter para que el dato
sea almacenado en la variable respectiva (aunque lo que el compilador verifica es
que se haya digitado un espacio en blanco, o un equivalente como la pulsación de
las teclas de tabulado, espaciado o enter).

Ejemplo:

#include <iostream>
using namespace std;
int main()
{ int numero1,numero2,numero3;
cout << “Digite 3 valores numéricos. Por favor digite espacio o enter después de
cada valor ”;
cin >>numero1>>numero2>>numero3;
cout <<endl <<Los valores almacenados son: “ <<numero1 <<”\t” <<numero2
<<”\t” <<numero3;
cout <<endl;
return 0;
}

 Esta codificación permitirá que el usuario digite 3 datos que se almacenarán


en las variables numero1, numero2 y numero3.
 Después de cada dato digitado se debe pulsar enter, tabulado o espaciado.
 Al imprimir los datos almacenados se ha utilizado la secuencia de escape
“\t” para indicar espacios de tabulación.

19
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Es más recomendable que para cada dato requerido, se le informe al usuario


mediante un mensaje.
cout<< “Digite primer valor : “;
cin>> numero1;
cout<< endl <<“Digite segundo valor : “;
cin>> numero2;
cout<< endl <<“Digite tercer valor : “;
cin>> numero3;

Para almacenar datos de tipo carácter existen varias posibilidades:

Una de ellas es utilizando cin.get(), cuya sintaxis es: identificador = cin.get();


Ejemplo:
#include <iostream>
using namespace std;
int main()
{ char caracter1;
cout << "Digite una letra: ";
caracter1=cin.get();
cout <<endl<<"La letra digitada es: "<<caracter1;
return 0;
}

20
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Analice la siguiente codificación donde se almacenan 2 caracteres:

#include <iostream>
using namespace std;
int main()
{ char caracter1,caracter2;
cout << "Digite la primera letra: ";
caracter1=cin.get();
cout << endl <<"digite la segunda letra: ";
caracter2=cin.get();
cout <<endl<<"las letras son: "<<caracter1<<caracter2;
return 0;
}

Al ejecutarlo se puede observar que el programa, sólo permite al usuario digitar el


primer carácter e imprime resultados. Este error en la ejecución se produce porque
al digitar enter, esto se asume como el segundo carácter, (‘\n’), se almacena en la
variable caracter2 y provoca una lectura incorrecta. Para corregir el problema se
debe realizar una limpieza de buffer después de que se almacena cada variable.

21
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

La codificación corregida es:

#include <iostream>
#include <stdio.h> //librería necesaria para fflush(stdin), que se utiliza para realizar
// la limpieza de buffer.
using namespace std;
int main()
{ char caracter1,caracter2;
cout << "Digite la primera letra: ";
caracter1=cin.get();
fflush(stdin); //función que realiza la limpieza de buffer
cout << endl <<"digite la segunda letra: ";
caracter2=cin.get();
cout <<endl<<"las letras son: "<<caracter1<<caracter2;
return 0;
}

Al ejecutarlo, los procesos y resultados son correctos.

Otra alternativa para almacenar datos de tipo carácter, es utilizando cin>>

El ejemplo anterior utilizando cin>> quedaría así:

#include <iostream>
#include <stdio.h> //librería necesaria para fflush(stdin), que se utiliza para realizar
// la limpieza de buffer.
using namespace std;
int main()
{ char caracter1,caracter2;
cout << "Digite la primera letra: ";
cin>>caracter1;
fflush(stdin); //función que realiza la limpieza de buffer
cout << endl <<"digite la segunda letra: ";
22
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

cin>>caracter2;
cout <<endl<<"las letras son: "<<caracter1<<caracter2;
return 0;
}

En el curso utilizaremos cin>> para almacenar datos de tipo carácter. Recuerde


utilizar fflush(stdin) para la limpieza del buffer.

Almacenamiento de cadenas.

Si lo que va a almacenar es una cadena que no contendrá espacios se puede


utilizar cin >> sin ningún inconveniente

Ejemplo:
#include <iostream>
using namespace std;
int main()
{ char ciudad[20];
cout << “Digite el nombre de una ciudad ”;
cin >> ciudad;
cout << endl <<”La ciudad es : “ <<ciudad;
cout <<endl;
return 0;
}

Si el usuario digitó Cali, la palabra se almacenará bien, pero si digitó Santa Marta,
únicamente se almacenará Santa. Porque cin>> detiene la entrada cuando se
digita un espacio en blanco.

23
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Para solucionar este inconveniente se utiliza el método getline(), cuya sintaxis es:

cin.getline (arreglo, num)

El primer argumento (arreglo) corresponde al nombre asignado a la cadena y el


segundo (num) indica el número máximo de caracteres que puede contener el
arreglo.

Ejemplo:
#include <iostream>
using namespace std;
int main()
{ char ciudad[20];
cout << “Digite el nombre de una ciudad ”;
cin.getline(ciudad,20);
cout << endl <<”La ciudad es : “ <<ciudad;
cout <<endl;
return 0;
}

En este caso si el usuario digita como ciudad Santa Marta, las dos palabras se
almacenarán sin problema en la variable ciudad.

24
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

cout <<imprime en pantalla la información, sea esta una cadena de texto (se
escribe entre comillas dobles) o el valor que contiene una variable. Además se
puede incluir indicadores de formato que indican una tarea específica como saltar
una línea o tabular.

Ejemplo:

#include <iostream>
using namespace std;
int main()
{ int num = 10;
cout << “Programa de Ingenieria”; // imprime una cadena
cout <<endl<<endl; // ejecuta 2 saltos de línea
cout <<num; // imprime el valor que contiene la variable num
cout << “\n El valor de num es “; // imprime El valor de num es 10. \n es una
// alternativa para indicar un salto de línea. Además del mensaje se
// indica que imprima el valor de la variable num.
return 0;
}

Cuando se requiere presentar en una sola línea mensajes y contenidos de


diferentes variables, se debe tener en cuenta que los mensajes se escriben entre
comillas dobles (“ ”) y los datos se separan con el operador de direccionamiento
<<

Ejemplo: programa que solicita nombre y año de nacimiento, para calcular la edad.

#include <iostream>
using namespace std;
int main()
{ char nombre[20];
int edad, aa;
25
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

cout<< "Hola, qu\x82 tal."; // la expresión \x82 se utiliza para imprir


// la letra e con tilde (é)
cout<< endl <<"Por favor digite su nombre: "; // imprime una cadena
cin.getline(nombre,20); // almacena el nombre digitado por el usuario
cout << endl <<endl <<"Digite el a\xa4o de nacimiento: ";
// ejecuta 2 saltos de línea. La expresión a\xa4o se utiliza para imprimir la letra ñ
cin>> aa; //almacena el año digitado por el usuario
edad=2016-aa; //calcula la edad
cout<<endl<<endl<<nombre<<" tiene "<<edad <<" a\xa4os";
// imprime el nombre digitado por el usuario y la edad calculada
cout <<endl<<endl;
return 0;
}

En la codificación anterior, se puede observar que se utilizaron unas expresiones


especiales para imprimir las letras é y ñ. Esto ocurre porque los lenguajes de
programación C y C++ son americanos y utilizan el idioma inglés, en el cual no se
utilizan tildes, ni sígnos de apertura de exclamación o interrogación (¡¿).

Para solucionar este inconveniente en C++ se deben incluir la expresión \xnn

\ indica a C++ que se va a colocar una expresión de llamado.


x indica hexadecimal
nn es el número en hexadecimal del carácter ASCII que se desea imprimir.

A continuación se comparte la tabla de equivalencias para los caracteres


especiales

26
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Carácter Codigo ASCCI en Expresión a incluir en el


especial hexadecimal código.
á xa0 \xa0
é x82 \x82
í xa1 \xa1
ó xa2 \xa2
ú xa3 \xa3
Á xb5 \xb5
É x90 \x90
Í xd6 \xd6
Ó xe0 \xe0
Ú xe9 \xe9
ñ xa4 \xa4
Ñ xa5 \xa5
¿ xa8 \xa8

Otra situación bastante común es la necesidad de presentar datos numéricos con


un número fijo de decimales. En C++ se utilizan manipuladores paramétricos y se
trabajan como si se llamará a una función.

Para especificar el número de cifras decimales que se imprimirán en pantalla se


requiere incluir en el programa la librería iomanip (permite trabajar con los
manipuladores paraméticos) y los manipuladores :

fixed representa la notación normal de C++ para coma flotante.


setprecision(valor_entero) índica el número de cifras decimales que se imprimen

Asumiendo que se tiene una variable de tipo float identificada como NOTA, la cual
contiene el valor 3.7899999. Para imprimir el valor únicamente con 2 decimales, la
sentencia sería:
cout<< fixed <<setprecision(2) <<NOTA;

Ejemplo:
Calcular el promedio de los siguientes datos 45.2346, 67.982564, 100.3456790 e
imprimir el resultado con 2 posiciones decimales.

#include <iostream>
#include <iomanip> // biblioteca para utilizar los manipuladores paramétricos
// fixed y setprecision
using namespace std;
int main()
{ float n1=45.2346, n2=67.982564, n3=100.3456790, promedio;
promedio=(n1+n2+n3)/3;
cout<< "Promedio sin indicar cantidad de decimales : " <<promedio <<endl <<endl;
cout<< "Promedio especificando cantidad de decimales : "<< fixed
<<setprecision(2) <<promedio;
27
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

cout <<endl<<endl;
return 0;
}

Otros formatos de entrada y salida son las funciones printf( ) y scanf( ) aunque
estas son propias de C, también funcionan en C++ y requieren la librería stdio.

• printf( ) es una función standar de salida de C, está disponible al incluir stdio.h


tiene 2 partes: nombre de la función y sus argumentos. Ej. printf(“mi edad es
%d\n”, edad).
o Primer argumento: es una cadena de caracteres que puede tener
caracteres y/o secuencias de escape y/o códigos de formato. Las
secuencias de escape inician con \.
Ej. \n secuencia de escape que indica retorno de carro (nueva línea); y los
códigos de formato inician con %. Ej: %d indica que un entero se
visualizará en forma decimal entera.
o Segundo argumento contiene la o las variables que se van a mostrar. Los
argumentos se separan mediante una coma.
o El número de variables debe corresponder al número de indicadores de
formato que se tienen en el primer argumento.
o Ejemplo: int a = 10, b = 20, c;
printf(“\nEl valor de a es %d”,a); // 1 indicador y 1 variable
printf(“\nEl valor de b es %d”, b); // 1 indicador y 1 variable
c= a + b;
printf(“\n %d + % d = %d”, a,b,c); // 3 indicadores y 3 variables
• Los indicadores de formato son: %c caracter
%d int
%ld long int
%f float
%lf double
%s cadena
Un pequeño programa sería el siguente:

28
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

#include<stdio.h>
#include<conio.h>
int main()
{ int edad = 20;
printf(“Mi nombre es María y tengo %d”,edad);
getch();
return(0);
}

• scanf(): la función scanf(), disponible al incluir stdio.h, permite leer datos por
teclado. La función scanf se usa de un modo similar a printf(), su primer
argumento es una cadena con marcas de formato. A éste le siguen una o más
direcciones de memoria. Si desea leer por teclado el valor de una variable
entera a, puede hacerlo así:scanf ("%d", &a);

Observe que la variable cuyo valor se lee por teclado va obligatoriamente


precedida por eloperador &: es así como se obtiene la dirección de memoria
en la que se almacena el valor dela variable. Uno de los errores más comunes
es omitir el carácter & quedebe preceder a todas las variables escalares en
scanf .

Sintaxis: scanf(“indicador_de_formato”, identificador)


o Los argumentos indican los tipos de datos que se van leer y el nombre
de las variables donde se van a guardar. Ej: scanf(“%d”, &pies).
o A los identificadores les precede el &, salvo cuando se trata de vectores,
como es el caso de las cadenas.
o Para almacenar un carácter utilice cscanf( );
o Ejemplo: int a;
char letra, palabra[10];
printf(“Digite un número : ”);
scanf(“%d ”, &a);
printf(“\n Digite una vocal : ”);
cscanf(“%c”, &letra);
printf(“\n Digite una palabra : ”);
scanf(“%s”, palabra);

En el curso trabajaremos con cin>> y cout<< porque corresponden más al


lenguaje C++

Almacenar datos

Cabe recalcar los datos se pueden también almacenar en las variables mediante
operaciones de asignación, desde la codificación, a esto se le conoce como
asignar valores.

29
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Ejemplos: int a = 30; // declaración de una variable y asignación de valor


float b; // declaración de una variable
b = 35.45 // asignación de un valor a la variable b

ESTRUCTURAS DE CONTROL

La forma más razonable de encarar el desarrollo de un programa complicado es


aplicarlo que seha dadoen llamar "Programación Top-Down".

Esto implica que, luego de conocer cuál es la meta a alcanzar, se subdivide esta
en otras varias tareas concurrentes, por ejemplo:

Leer un teclado, procesar datos, mostrar los resultados. Luego a estas se las
vuelve a dividir en otras menores:

Y así se continúa hasta llegar a tener un gran conjunto de pequeñas y simples


tareas, del tipo de "leer una tecla"ó "imprimir un caracter". Luego sólo resta
abocarse a resolver cada una de ellas por separado. De esta forma el
programador, sólo se las tendrá que ver con diminutas piezas de programa, de
pocas líneas, cuya escritura y corrección posterior es una tarea simple.

Tal es el criterio con que está estructurado el lenguaje C++, donde una de sus
herramientas fundamentales son las funciones. Todo compilador comercial trae
una gran cantidad de Librerías de toda índole, matemáticas, de entrada - salida,
de manejo de textos, de manejo de gráficos, etc, que solucionan la mayor parte
de los problemas básicos de programación.

Ahora bien, para que esos bloques de código cumplan tareas específicas, es
indispensable incluir sentencias de control y repetitivas que apoyan el diseño
estructural de un programa y que se debe utilizar en atención a lo que se requiere
lograr en la tarea.

Sentencias de control selectivas if else, switch

Las sentencias condicionales permiten elegir entre dos o más opciones.

• if … else: Se utiliza para elegir entre dos opciones.


Sintaxis: if (condicion) sentencia si la condición es verdadera
else sentencia si la condición es falsa.

En C, si se utiliza más de una sentencia es necesario utilizar llaves.


Ejs: if (a= = b) cout<<“iguales”;

30
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

else cout<<“diferentes”;

if (a= = b)
{ c++;
x = z;
}
else
{ v--;
y = t;
}

Los if pueden anidarse para evaluar varias condiciones. Ej.


if (condicion1)
{ sentencia 1;
sentencia 2;
if (condición 2)
{ if (condición 3)
{ sentencia 3;
sentencia 4;
}
else
{ sentencia 5;
sentencia 6;
}
}
}
else
{ sentencia 7;
sentencia 8;
}

Ejemplo:

Problema: Analizar 3 números digitados por el usuario, indicando mayor,


menor e iguales.

Análisis:

 Datos de entrada: 3 números que se almacenarán en las variables A, B


y C.
 Datos de proceso: comparar los números
 Datos de saluida: mensaje de número mayor, número menor y números
iguales.

31
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Diseño de solución:

Programa: Comparación de 3 números

INICIO
LEER A, B, C
SI (A = B) and (B = C) entonces ESCRIBIR “A, B y C son iguales”
SI NO
SI (A=B) and (A>C) entonces ESCRIBIR “A y B son iguales; A y B
son mayores que C”
SI (A=B) and (A<C) entonces ESCRIBIR “A y B son iguales; A y B
son menores que C”
SI(A=C) and (A>B) entonces ESCRIBIR “A y C son iguales; A y C
son mayores que B”
SI (A=C) and (A<B) entonces ESCRIBIR “A y C son iguales; A y C
son menores que B”
SI(B=C) and (B>A) entonces ESCRIBIR “B y C son iguales; B y C
son mayores que A”
SI(B=C) and (B<A) entonces ESCRIBIR “B y C son iguales; B y C
son menores que A”
SI(A>B) and (B>C) entonces ESCRIBIR “A es el mayor y C es el
menor”
SI(A>C) and (C>B) entonces ESCRIBIR “A es el mayor y B es el
menor”
SI(B>A) and (A>C) entonces ESCRIBIR “B es el mayor y C es el
menor”
SI(B>C) and (C>A) entonces ESCRIBIR “B es el mayor y A es el
menor”
SI(C>A) and (A>B) entonces ESCRIBIR “C es el mayor y B es el
menor”
SI(C>B) and (B>A) entonces ESCRIBIR “C es el mayor y A es el
menor”
FIN SI
FIN

Prueba de escritorio

Ejecución A B C Salida
1 5 5 5 A, B y C son iguales
2 1 2 3 C es el mayor y A es el menor
3 3 2 1 A es el mayor y C es el menor
4 15 15 3 A y B son iguales; A y B son mayores que C
5 -5 -7 -7 B y C son iguales; B y C son menores que A

Codificación en lenguaje C++ (IDE FALCON)

32
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

/*Autor: Mirian Benavides - UNAD


Programa: Comparación de 3 números */

//DIRECTIVAS DEL PRE-PROCESADOR


#include <iostream> //Biblioteca estándar de entrada y salida, para utilizar cout
y cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecución del programa hasta que el usuario
digite una tecla */
using namespace std; /*Indica al compilador que utilizará el espacio de
nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Función principal
{ int A, B, C;
cout<<"COMPARACION DE 3 NUMEROS"<<endl<<endl;
cout<<"Digite el valor del primer numero : ";
cin>>A;
cout<<"Digite el valor del segundo numero : ";
cin>>B;
cout<<"Digite el valor del tercer numero : ";
cin>>C;
if((A==B) && (B==C)) cout<<endl<<endl<<"A, B y C son iguales";
else
{ if ((A==B) and (A>C)) cout<<endl<<endl<<"A y B son iguales; A y B
son mayores que C";
if ((A==B) and (A<C)) cout<<endl<<endl<<"A y B son iguales; A y B
son menores que C";
if ((A==C) and (A>B)) cout<<endl<<endl<<"A y C son iguales; A y C
son mayores que B";
if ((A==C) and (A<B)) cout<<endl<<endl<<"A y C son iguales; A y C
son menores que B";
if ((B==C) and (B>A)) cout<<endl<<endl<<"B y C son iguales; B y C
son mayores que A";
if ((B==C) and (B<A)) cout<<endl<<endl<<"B y C son iguales; B y C
son menores que A";
if ((A>B) and (B>C)) cout<<endl<<endl<<"A es el mayor y C es el
menor";
if ((A>C) and (C>B)) cout<<endl<<endl<<"A es el mayor y B es el
menor";
if ((B>A) and (A>C)) cout<<endl<<endl<<"B es el mayor y C es el
menor";
if ((B>C) and (C>A)) cout<<endl<<endl<<"B es el mayor y A es el
menor";
if ((C>A) and (A>B)) cout<<endl<<endl<<"C es el mayor y B es el
menor";
if ((C>B) and (B>A)) cout<<endl<<endl<<"C es el mayor y A es el
menor";

33
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

}
cout<<endl<<endl;
system("pause");
return 0;
}

• switch: es una sentencia de bifurcación múltiple, que permite comparar una


variable sucesivamente frente a una lista de constantes enteras o de carácter.
Al encontrar una coincidencia se ejecuta el bloque de sentencias respectivas.
Sintaxis: switch(variable)
{ case constante1:
{ bloque de sentencias;
break;
}
case constante2:
{ bloque de sentencias;
break;
}
case constante3:
{ bloque de sentencias;
break;
}
default:
{ bloque de sentencias;
}
}

La opción default se ejecuta cuando no hay coincidencias y es opcional.


Se diferencia de if en que sólo permite comprobar por igualdad.

Ejemplo:

Problema: identifificar si un caracter digitado por el usuario es vocal o no. Si es


vocal, a cuál corresponde.

Análisis:

 Datos de entrada: un carácter


 Datos de proceso: verificar que vocal es o que no es vocal
 Datos de salida: mensaje indicando que vocal es o que no es vocal

Diseño de solución:

Programa: Evaluación de un carácter

INICIO

34
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

LEER caracter
SEGÚN SEA caracter HACER
caracter = ‘A’
ESCRIBIR “Vocal A”
caracter = ‘a’
ESCRIBIR “Vocal a”
caracter = ‘E’
ESCRIBIR “Vocal E”
caracter = ‘e’
ESCRIBIR “Vocal e”
caracter = ‘I’
ESCRIBIR “Vocal I”
caracter = ‘i’
ESCRIBIR “Vocal i”
caracter = ‘O’
ESCRIBIR “Vocal O”
caracter = ‘o’
ESCRIBIR “Vocal o”
caracter = ‘U’
ESCRIBIR “Vocal U”
caracter = ‘u’
ESCRIBIR “Vocal u”
Si no
ESCRIBIR No es vocal
FIN SEGÚN SEA
FIN

Prueba de escritorio

Ejecución caracter Salida


1 i Vocal i
2 A Vocal A
3 6 No es vocal
4 E Vocal e

Codificación en lenguaje C++ (IDE FALCON)

/*Autor: Mirian Benavides - UNAD


Programa: Evaluación de un caracter */

//DIRECTIVAS DEL PRE-PROCESADOR


#include <iostream> //Biblioteca estándar de entrada y salida, para utilizar cout
y cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecución del programa hasta que el usuario
digite una tecla */

35
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

using namespace std; /*Indica al compilador que utilizará el espacio de


nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Función principal
{ char caracter;
cout<<"EVALUACION DE UN CARACTER"<<endl<<endl;
cout<<"Digite un caracter : ";
cin>>caracter;
switch (caracter)
{ case 'A': cout<<endl<<endl<<"Vocal A";
break;
case 'a': cout<<endl<<endl<<"Vocal a";
break;
case 'E': cout<<endl<<endl<<"Vocal E";
break;
case 'e': cout<<endl<<endl<<"Vocal e";
break;
case 'I': cout<<endl<<endl<<"Vocal I";
break;
case 'i': cout<<endl<<endl<<"Vocal i";
break;
case 'O': cout<<endl<<endl<<"Vocal O";
break;
case 'o': cout<<endl<<endl<<"Vocal o";
break;
case 'U': cout<<endl<<endl<<"Vocal U";
break;
case 'u': cout<<endl<<endl<<"Vocal u";
break;
default: cout<<endl<<endl<<"No es vocal";
break;

}
cout<<endl<<endl;
system("pause");
return 0;
}

Sentencias de control repetitivas for, while, do while

Las sentencias de control repetitivas, conocidas también como ciclos, permiten


repetir un conjunto de instrucciones, mientras se cumpla una condición. Utiliza una
variable control y puede interrumpirse mediante la instrucción break.

• for (inicialización ; condición ; incremento)


{ bloque de sentencias;
}

36
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

Ej. Imprimir los números pares comprendidos entre 0 y 20.


int i, residuo;
for (i=1 ; i<=20; i++)
{ residuo = i % 2;
if ( !residuo) cout<<“\n “<< i;
}
Si únicamente existe una sentencia que ejecutar la sintaxis es:
int i;
for(i=1; i<=10; i++) cout<< i;

La siguiente sintaxis for( ; ; ) crea un ciclo infinito, a menos que exista una
condición interna que obligue a salir del ciclo. Ej.
int i;
char r;
for ( ; ; )
{ cout<<“Desea continuar (s/n) : ”;
cin>>r;
if ( r != ‘s’) break;
}

Sentencia break: se utiliza para terminar la ejecución de un ciclo. Ejemplo:


int i;
for(i=0; i<=10; i++)
{ cout<<“\n ”<<i;
if (i= =5) break;
} // únicamente imprime los números del 0 al 5.

Ejemplo:

Problema: Imprimir la tabla de multiplicar que indique el usuario

Análisis:
o Datos de entrada: número de la tabla de multiplicar a imprimir y
almacenarlo en la variable tabla.
o Datos de proceso: resultado = tabla * 1 (se multiplica por los valores
comprendidos entre 1 y 10)
o Datos de salida: resultado (de todas las operaciones)

Diseño:

Programa: tabla de multiplicar

INICIO
LEER tabla
PARA n = 1 HASTA 10 HACER

37
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

resultado = tabla * n
ESCRIBIR tabla “x” n “=” resultado
FIN PARA
FIN

Prueba de escritorio
Iteración Tabla Resultado Salida
1 5 5 5x1=5
2 10 5 x 2 = 10
3 15 5 x 2 = 10
4 20 5 x 2 = 10
5 25 5 x 2 = 10
6 3 5 x 2 = 10
7 35 5 x 2 = 10
8 40 5 x 2 = 10
9 45 5 x 2 = 10
10 50 5 x 2 = 10

Codificación en lenguaje C++ (IDE FALCON)

/*Autor: Mirian Benavides - UNAD


Programa: Tabla de multiplicar */

//DIRECTIVAS DEL PRE-PROCESADOR


#include <iostream> //Biblioteca estándar de entrada y salida, para utilizar cout
y cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecución del programa hasta que el usuario
digite una tecla */
using namespace std; /*Indica al compilador que utilizará el espacio de
nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Función principal
{ int n, tabla, resultado;
cout<<"TABLA DE MULTIPLICAR"<<endl<<endl;
cout<<"Digite el numero de tabla que desea imprimir : ";
cin>>tabla;
cout<<endl;
for(n=1;n<=10;n++)
{ resultado = tabla*n;
cout<<tabla <<" x " <<n <<" = " <<resultado;
cout<<endl;
}
cout<<endl<<endl;
system("pause");
return 0;
}

38
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

• Ciclo while: ejecuta un bloque de sentencias mientras la condición que evalúa


es verdadera. Las condiciones que debe cumplir son:
o Antes del ciclo la variable que se evalúa debe tener un valor que haga la
condición verdadera.
o Dentro del ciclo la variable control debe cambiar para que en algún
momento la condición sea falsa y pueda terminar el ciclo.

Ejemplo:

Problema:verificar si el valor de una nota digitada por el usuario, se encuentra


dentro del rango 0 y 5.

Análisis:

 Datos de entrada: nota


 Datos de proceso: comparar si nota es >= 0 y es <= 5
 Datos de salida: mensaje nota correcta o nota incorrecta

Diseño de solución:

INICIO
LEER nota
MIENTRAS nota < 0 OR nota >5 HACER
ESCRIBIR “Nota incorrecta, digite nueva nota”
LEER nota
FIN MIENTRAS
ESCRIBIR “Nota correcta”
FIN

Prueba de escritorio

Ejecución nota Iteración Salida


1 3 1 Nota correcta
2 6 1 Nota incorrecta, digite nueva nota
-2 2 Nota incorrecta, digite nueva nota
4.5 3 Nota correcta

Codificación en lenguaje C++ (IDE FALCON)

/*Autor: Mirian Benavides - UNAD


Programa: Validación nota */

//DIRECTIVAS DEL PRE-PROCESADOR

39
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

#include <iostream> //Biblioteca estándar de entrada y salida, para utilizar cout


y cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecución del programa hasta que el usuario
digite una tecla */
using namespace std; /*Indica al compilador que utilizará el espacio de
nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Función principal
{ float nota;
cout<<"VALIDACION DE NOTA"<<endl<<endl;
cout<<"Digite nota : ";
cin>>nota;
cout<<endl;
while((nota<0) or (nota>5))
{ cout<<endl<<endl<<"\tNota incorrecta, digite nueva nota : ";
cin>>nota;
}
cout<<endl<<endl<<"Nota correcta";
cout<<endl<<endl;
system("pause");
return 0;
}

• Ciclo do ….. while: ejecuta un bloque de sentencias y al final verifica si la


condición es verdadera. La diferencia fundamental entre los ciclos while y do
while, es que el primero evalúa la condición al inicio del ciclo y el segundo la
evalúa al final. Esto hace que el bloque de sentencias en do while, se ejecuten
por lo menos una vez.
Sintaxis: do
{ bloque de sentencias;
}
while (condición) ;

Ejemplo:

Problema: diseñar un menú que facilite el acceso a 4 opciones, incluida la


posibilidad de salir del programa.

Análisis:

o Datos de entrada: opción elegida por el usuario


o Datos de proceso: comparación del dato digitado por el usuario con las
opciones que tiene el menú.
o Datos de salida: mensaje de la opción elegida

Diseño de solución:

40
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

INICIO
REPETIR
ESCRIBIR “Menu”
ESCRIBIR “1. Llenar datos”
ESCRIBIR “2. Consultar datos”
ESCRIBIR “3. Eliminar datos”
ESCRIBIR “4. Salir”
LEER opcion
SEGÚN SEA opción
opcion = 1
ESCRIBIR “Llenar datos”
opcion = 2
ESCRIBIR “Consultar datos”
opcion = 3
ESCRIBIR “Eliminar datos”
opcion = 4
ESCRIBIR “Programa finalizado”
si no
ESCRIBIR “Opción incorrecta”
FIN SEGÚN SEA
HASTA QUE opción ≠ 4
FIN

Prueba de escritorio

Ejecución opcion Iteración Salida


1 1 1 Llenar datos
3 2 Eliminar datos
7 3 Opción incorrecta
4 4 Programa finalizado

Codificación en lenguaje C++ (IDE FALCON)

/*Autor: Mirian Benavides - UNAD


Programa: Menú */

//DIRECTIVAS DEL PRE-PROCESADOR


#include <iostream> //Biblioteca estándar de entrada y salida, para utilizar cout
y cin
#include <stdlib.h> /*Biblioteca para utilizar system("cls") limpieza de pantalla y
system("pause") que detiene la ejecución del programa hasta que el usuario
digite una tecla */
using namespace std; /*Indica al compilador que utilizará el espacio de
nombres estandar para no incluirlos cada vez que se utilice cout y cin */
int main() //Función principal

41
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA – UNAD
ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA
CONTENIDO DIDÁCTICO DEL CURSO: 301304 – INTRODUCCION A LA PROGRAMACION

{ int op;
do
{ system("cls");
cout<<"MENU" <<endl <<endl;
cout<<"1. Llenar datos " <<endl;
cout<<"2. Consultar datos " <<endl;
cout<<"3. Eliminar datos " <<endl;
cout<<"4. Salir ";
cout<<endl <<endl;
cout<< "Elija opcion : ";
cin>> op;
switch(op)
{ case 1: cout<<endl <<"Llenar datos" <<endl;
break;
case 2: cout<<endl << "Consultar datos" <<endl;
break;
case 3: cout<<endl << "Eliminar datos" <<endl;
break;
case 4: cout<<endl << "Programa finalizado" <<endl;
break;
default: cout<<endl << "Opcion incorrecta" <<endl;
break;

}
system("pause");
} while(op!=4);
cout<<endl<<endl;
system("pause");
return 0;
}

42

You might also like