You are on page 1of 26

Colegio Universitario de Caracas-Sede Sucre

Plan Nacional de Formación en Informática (PNFI)


Unidad Curricular: Algorítmica y Programación.
Trayecto: I

La presente guía ha sido realizada a partir de la investigación y de la recopilación de distintas


fuentes bibliográficas. Tiene como único objetivo el de servir de apoyo en el curso de la
Unidad Curricular y en ningún modo sustituir la propia investigación del estudiante, la cual
debe enriquecer su aprendizaje.

Objetivo de la unidad curricular: Aprender a pensar como un programador.

¿Cómo? Ofreciendo respuestas a problemas reales, desarrollando algoritmos y programas


aplicando los principios fundamentales de la programación estructurada, mediante una serie
de fases que conduzcan a la resolución de problemas cumpliendo con los estándares de
calidad.

¿Por qué? Porque como futuros Ingenieros de Informática, la manera de pensar tiene que
ser diferente a la de las demás personas al momento de resolver un problema mediante el
uso de una computadora. Un médico, por ejemplo, debe aprender a usar la PC para archivar
y controlar las historias médicas de sus pacientes... tú como Ingeniero de Informática eres
quien hace ese programa o sistema que necesita el médico, el docente, el arquitecto, el
ingeniero civil y un largo etc. etc. para facilitar sus labores.

“Aprender programación no es tarea de un día ni de una semana: aprender


programación requiere varios meses y si hablamos de programación a nivel
profesional, varios años”

“Programar debe convertirse en una actitud normal y divertida en la vida de los que amamos la Informática”

Profesora Jacqueline Colina


Correo: profacolina_cuc_algorítmica@hotmail.com
Teléfono: 0416-7270239

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 1
¿Qué es la inteligencia?

La inteligencia es la capacidad de relacionar conocimientos que poseemos para resolver


una determinada situación. Según la teoría de las inteligencias múltiples de Howard
Gardner, podemos distinguir 8 tipos diferentes de inteligencia formal: Lingüística, Lógico-
matemática, Espacial, Musical, Corporal, Intrapersonal, Interpersonal y Naturalista.
Nos interesa en este momento:

 Inteligencia Lógica-Matemática: Es la habilidad que poseemos para resolver


problemas tanto lógicos como matemáticos. Comprende las capacidades que
necesitamos para manejar operaciones matemáticas y razonar correctamente. Nuestro
procesamiento aritmético, lógico, razonado, ... va ligado a ella.

¿Qué es la lógica?

La lógica es el proceso de obtener una adecuada conclusión. Es el sistema de pensar


en forma correcta, de llegar a conclusiones adecuadas. Es el proceso de pensar
adecuadamente basados en los principios que gobiernan la validez de los argumentos.

¿Qué es un algoritmo?

Podemos decir que un algoritmo es un conjunto limitado de pasos lógicos que permiten
resolver un problema mediante el uso de una computadora. Está constituido por un
conjunto de instrucciones que están ordenadas y enlazadas de forma coherente tal que
al ejecutarse realizan una o varias tareas los cuales permiten la solución de un problema
en particular. Para llegar a crear un programa se realizan etapas previas: Análisis del
problema y el Diseño de la solución. El análisis del problema consiste en comprender el
problema y saber QUÉ es lo que se espera obtener. Seguidamente el diseño de la solución
consiste en construir la forma CÓMO se resolverá el problema, es decir, realizar el
procedimiento necesario para obtener la solución. Una vez finalizado el diseño de la solución
(el algoritmo representado mediante pseudocódigo) se procede recién a la fase de
codificación en un lenguaje de programación.

El diseño de algoritmos forma parte de un conjunto de fases que todo programador realiza
al momento de solucionar un problema mediante la computadora. Estas fases son
básicamente 6:

1) Análisis del problema.


2) Diseño del algoritmo (Pseudocódigo. Independiente del lenguaje de programación
en el que será implementado).
3) Codificación en un Lenguaje de Programación.
4) Compilación y ejecución.
5) Verificación y depuración.
6) Documentación.

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 2
FASE 1: ANÁLISIS

Ejercicio: (responda cada una de las anteriores preguntas)

Determinar entrada, proceso y salida para calcular el volumen y el área de una esfera.

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 3
Ejemplo: Desarrolle un algoritmo para calcular el promedio, dadas tres notas, de un
estudiante X. Represente el algoritmo mediante pseudo-código, diagrama de flujo y en
lenguaje C++.

Soluciones:

DIAGRAMA DE FLUJO PSEUDO-CÓDIGO

ALGORITMO EN C++

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 4
Todo programa de computadora trabaja con datos de entrada y mediante un conjunto de
acciones o instrucciones devuelve datos de salida que constituyen la información
deseada. Estos datos (entrada o salida) tienen tres características o atributos
fundamentales:

- Tipo Nos determina las operaciones que podemos realizar con el dato y la manera en
que será codificada internamente en la computadora.
- Valor Se refiere al contenido el cual puede cambiar o permanecer fijo.
- Identificador Es el nombre que permite referenciarlo y que además lo diferencia del
resto.

Ejemplo
N = 13 LETRA = ‘A’
- Identificador: N Identificador: LETRA
- Valor: 13 Valor: ‘A’
- Tipo: entero Tipo: carácter

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 5
Paradigmas de programación

El concepto de paradigma se utiliza en la vida cotidiana como sinónimo de “ejemplo” o


para hacer referencia a algo que se toma como “modelo”. En la programación existen una
serie de paradigmas que se refieren principalmente al enfoque que le daremos a un
problema para solucionarlo o bien "la forma en que veremos las cosas".

Los paradigmas más comunes son:

1. Paradigma de programación estructurada.


2. Paradigma de programación orientada a objetos.
3. Paradigma de programación orientada a eventos.
4. Paradigma de programación orientada a aspectos.

Programación Estructurada

A inicios de la década de los 60, la ausencia de una metodología de programación no era


un problema por la poca difusión, la baja potencia de las computadoras y las necesidades
poco ambiciosas de la época, pero esto fue cambiando ya que las máquinas se iban
generalizando, éstas se hacían cada vez más potentes, y más programadores se iban
incorporando a la profesión, por ende, las aplicaciones aumentaban tanto en número como
en complejidad. De esta manera los programas se iban volviendo más complicados lo cual
traía serios problemas al programarlos y más aún a la hora de corregirlos, mantenerlos,
modificarlos y actualizarlos. Por todo esto surge la necesidad de una manera ordenada y
sistemática a la hora de programar y como resultado nace la Programación Estructurada.

La programación estructurada está basada en el Teorema de la Programación


Estructurada el cual proporciona las bases sobre las que ésta se sustenta. Este teorema
nos dice que cualquier programa propio, sin importar su complejidad, puede ser
construido utilizando combinaciones de tres estructuras de control de flujo:
Secuenciales (simples), Selectivas (condicionales) y Repetitivas (iterativas).

El Teorema de la programación estructurada fue demostrado por Botin y Jacopeni en un


artículo publicado en mayo de 1966. Así se llegó a demostrar que con tres estructuras de
control se pueden escribir todos los programas y aplicaciones posibles.

ESTRUCTURAS DE CONTROL DE FLUJO

Las estructuras de control de flujo tienen la cualidad de llevar un orden, en algunos casos
de tomar decisiones y en muchas ocasiones de repetir un conjunto de instrucciones un
número finito de veces. El aprendizaje de las estructuras de control es sumamente
importante, ya que es a partir de estas tres estructuras que vamos a solucionar todos los
problemas. Son estas tres estructuras la columna vertebral de la programación
estructurada.

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 6
PARA REFLEXIONAR:

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 7
Lenguaje de programación C++

Lenguaje de programación es aquel en el que el programador escribe lo que el ordenador


debe hacer. C++, es un lenguaje creado en 1983 que puede utilizarse en distintas
plataformas (Linux, Windows, Android). Es una ampliación del lenguaje de programación C.
Anterior a este lenguaje, existieron otros, como Fortran, Cobol, Basic, PL1, Pascal y B, que
es en el que se basa C. Posterior a C++ han aparecido otros lenguajes de programación
como Java, Python o los relacionados con la creación de sitios webs (HTML, Css, Php,
JavaScript).

El texto donde se detallan las órdenes o instrucciones se llama "código fuente". Se pueden
escribir desde cualquier editor de textos plano (sin formato), como el block de notas de
Windows, el Notepad, o cualquier otro editor (fichero1.cpp). Pero para que el ordenador
entienda lo que le decimos en ese código fuente se necesita un traductor a “código
máquina”. Este instrumento es el compilador. Este va leyendo el código fuente línea a
línea (de manera secuencial) y a la vez va buscando posibles fallos, ya que el lenguaje de
programación suele tener unas normas muy estrictas. Si encuentra algún fallo lo indica e
interrumpe el proceso. Sólo si el archivo fuente está correcto, se produce la compilación. Al
final se crea un nuevo archivo de tipo binario, que puede ejecutarse desde el propio sistema
operativo, como cualquier otra aplicación (fichero1.exe).

¿Qué es un IDE?

Un IDE (Integrated Development Environment) o Entorno de Desarrollo Integrado, es un


programa o aplicación que consiste en un entorno de trabajo con herramientas útiles para
el programador, entre ellas:

 Un editor de texto plano o editor de código.


 Un compilador: A partir del archivo en código fuente, crea un archivo en código
máquina.
 Un depurador: Indica los errores que tiene el código y que impiden compilar el
lenguaje correctamente.
 Ayudas de escritura: Poner distintos elementos en distintos colores, sugerencias de
autocompletar código, marcar número de líneas, etc.

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 8
Algunos de los IDE más adecuados para C++ son: Code::Blocks, Geany (requiere un
compilador aparte como TDM-gcc), Dev C++ y Borland C++.

Formato clásico y básico de un programa en C++:

¿Qué es una librería?

Una librería es una plantilla que contiene una serie de funciones, las cuales pueden ser
utilizadas por un programa que ha invocado esta librería al inicio. Las librerías normalmente
representan una "categoría" de funciones (por ej. existe una librería donde están todas las
funciones matemáticas más comunes) y de acuerdo a eso las invocamos. En las primeras
líneas de nuestro programa, debemos utilizar la sentencia #INCLUDE y el nombre de la
librería entre < >. Podemos reconocer las librerías por su extensión que es la letra "h".

El lenguaje C nos proporciona múltiples librerías para nuestras necesidades, por lo que cada
vez que necesitemos realizar una determinada acción, podemos hacer una búsqueda de la
función y por ende librería correspondiente. Adicionalmente, podemos crear nuestras
propias librerías y utilizarlas libremente (así como otras que han sido creadas por otros
usuarios y puestas a disposición en Internet).

Algunas de las más comunes son:

#include <stdio.h> // Biblioteca estándar de entrada/salida. Si quieres usar printf y scanf


#include <stdlib.h> // necesaria para que "system" funcione
#include <conio.h> /*no es una librería estándar, sólo los compiladores de Borland pueden
usarla. background(), clrscr(), gotoxy(a,b), getch(), textcolor(),
cprintf() */
#include <windows.h> // para el system y Sleep

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 9
#include <iostream.h> /*incluye regularmente la librería cstring. Usa los comandos cout y
cin. Requiere using namespace std;*/
#include <time.h> //contiene funciones para la manipulación de fechas y horas

¿Por qué usar comentarios?

Principalmente por un tema de orden. Tenemos que pensar de que si bien nuestra memoria
puede ser excelente, en más de alguna ocasión nos tocará revisar códigos que hayamos
realizado hace algún tiempo y puede que en ese programa hayamos utilizado alguna función
o lógica que no tiene sentido en este momento. Por eso el uso de comentarios nos simplifica
el tener que estar mucho tiempo deduciendo lo que alguna vez hicimos. Lo mismo se presta
para cuando nuestro código es revisado por terceros o bien nosotros revisamos códigos
hechos por alguien más.

// Esto es un comentario de una sola línea y no tiene por qué empezar al principio de la
misma.

/* Esto es un comentario que puede tener más de una línea. Todo lo que escribamos aquí
será ignorado por el compilador */

Operadores matemáticos, relacionales y lógicos:


+ Suma.
- Resta.
* Multiplicación.
/ División. (30/5 = 6; 3/5 = 0; 30/7 = 4; 30/7 = 4,28)
% Módulo, o resto de la división. (30%5 = 0; 3%5 = 3; 11%3=2)
++ Incremento en uno.
-- Decremento en uno.
< Menor que.
> Mayor que.
== Igual a. (un solo igual es asignación de valor, no comparación).
!= Diferente a.
&& Y (Conjunción)
|| O (Disyunción)
! Negación

TIPOS DE DATOS

1. short: Número entero pequeño. También podemos escribirlo: short int


2. int: Corresponde a números enteros, Tamaño normal. (correspondiente al universo
Z de las matemáticas desde -2,147,483,648 hasta 2,147,483,647).

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 10
3. long: Numero entero grande, El tamaño será igual o mayor que el de tipo int.
También podemos escribirlo: long int
4. long long: Número entero muy grande. Su tamaño será igual o superior al del tipo
long. También podemos escribirlo: long long int
5. Float: Corresponde a valores de punto flotante (números decimales correspondientes
al universo Q de las matemáticas). En algunos lenguajes se puede utilizar como
double.
6. Char: Corresponde a valores de caractéres alfanuméricos (0 a 9 y abecedario). Solo
se puede almacenar un valor dentro de este tipo de variables.
7. String: Corresponde a una cadena de caractéres, por ejemplo una palabra o frase.
Su rango depende de cada lenguaje. (se declara en C como Char con [longitud]).
8. Bool: Corresponden a valores de tipo lógico. Almacenan sólo 2 posibles valores: true
o false.

ARREGLOS

Un array, vector, tabla o arreglo es una cantidad de valores de un determinado tipo,


indexados y colocados de manera secuencial, cuya forma de acceder a ellos es
especificando la posición (o índice) donde se encuentre dentro del arreglo.

Para declarar un array hay que seguir la siguiente estructura:

Tipo_dato nombre_variable [longitud_array];

(El largo indicará cuántas posiciones tendrá el vector, y por ende, cuantos datos se podrán
almacenar).
El tipo de datos puede ser cualquier de los vistos anteriormente, por ejemplo, un array de
20 enteros sería así:
int num[20];

Al igual que los vectores, las matrices son arrays. Sin embargo, a diferencia de ellos, son
bidimensionales o multidimensionales, o sea operan en 2 o más dimensiones.

Los arrays multidimensionales se declaran de la misma forma que los arrays


normales, pero por cada dimensión que queramos añadir debemos especificar igualmente
su longitud.

int numeros [10][2]; int numeros [10][2][5];

CADENA DE CARACTERES

Una cadena de caracteres no es más que un vector o arreglo de tipo carácter. Las cadenas
suelen contener texto (nombres, frases, etc.), y éste se almacena en la parte inicial de la
cadena (a partir de la posición cero del vector). Para separar la parte que contiene texto

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 11
de la parte no utilizada, se utiliza un carácter "fin de cadena" que es el carácter nulo ('\0')
según el código ASCII y cuando definamos una cadena tenemos que reservarle un espacio
adicional.

Podemos dar un valor inicial a una cadena de texto, usando dos formatos distintos:

El formato “clásico” para dar valores a tablas: char nombre[50]= {'J','u','a','n'};

O bien un formato más compacto: char nombre[50]="Juan";

Pero este último formato sólo se puede usar cuando se declara la variable, al principio
del programa. Si ya estamos dentro del programa, para dar un valor a una cadena de texto,
deberemos usar necesariamente la función “strcpy” (copiar cadena), que se encuentra en
“string.h”. En las cadenas de texto no podemos hacer algo como saludo="hola" ni algo como
texto1=texto2. La forma correcta de guardar en una cadena de texto un cierto valor es:

Para inicializar de nuevo y borrar valores “viejos” podemos utilizar la función memset. Es
una forma rápida de llenar un espacio de memoria con un valor char.

strcpy (destino, origen); strcpy (saludo, "hola"); memset (nombre,' ',10);

La longitud de una cadena es la longitud del texto más el símbolo de fin de cadena. Este
carácter se introduce automáticamente al leer o inicializar las cadenas de caracteres, como
en el siguiente ejemplo:

char ciudad[20] = "Anzoátegui";

donde a los 10 caracteres del nombre de esta ciudad se añade automáticamente un


decimoprimero: el '\0'. El resto del espacio reservado –hasta la posición ciudad[19]– no se
utiliza. De modo análogo, una cadena tal como "marco" ocupa 6 bytes (para las 5 letras y
1 para el '\0').

ESTRUCTURAS DE DATOS O REGISTROS

Uno de los inconvenientes que tiene un vector o una cadena es que por definición todos los
datos son del mismo tipo, es decir, no podemos mezclar un real con un carácter. Una
estructura es una forma de agrupar un conjunto de datos que mantengan algún tipo de
relación entre si aunque sean de distinto tipo, bajo un mismo nombre o identificador.

Una estructura es, entonces, un tipo de datos compuesto por un grupo de datos, cada uno
de los cuales puede ser de un tipo distinto. A cada componente de la estructura se le llama
campo. Su forma general es mediante la palabra registro o estructura:

struct nombre_estr {tipo nombre1; tipo nombre2; .....};

struct fecha {int dia; char mes[14]; int ano;};

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 12
Por ejemplo, supóngase que se desea diseñar una estructura que guarde los datos
correspondientes a un alumno, esta estructura, a la que se llamará alumno, deberá guardar
el nombre, la dirección, el número de cédula, el teléfono, y las notas en las 6
asignaturas. Cada uno de estos datos se denomina campo o miembro de la estructura. El
modelo de esta estructura puede crearse del siguiente modo:

struct alumno {char nombre[31]; char direccion[21]; int nro_ cédula; int telefono; float
notas[6]};

Para acceder a los miembros de una estructura se utiliza el operador punto (.), precedido
por el nombre de la variable y seguido del nombre del campo: variable.campo

Por ejemplo, para dar valor al teléfono del alumno el valor 903456, se escribirá:

alumno.telefono = 9036456; y para guardar la dirección y nota 3 de este mismo alumno,


se escribirá:
alumno.direccion = "C/ Rios Rosas 1,2-A";
alumno.notas[3]=calificacion;

ESTRUCTURAS DE CONTROL BÁSICAS EN C++:

Las estructuras de control son sentencias especiales de los lenguajes de programación que
controlan la ejecución y el flujo del resto de las instrucciones. En general, las instrucciones
refieren a una asignación de valores, a cálculos aritméticos o a la comunicación entre el
usuario y el sistema.

Un programa se comunica con el usuario y con el sistema a través de las funciones de


salida y entrada. Con estas funciones se pueden solicitar y enviar datos al terminal del
usuario y a otros programas. Comenzaremos con las funciones principales de salida y
entrada de caracteres.

putchar escribe un único carácter en la salida estándar. Ej: putchar ('J');


getchar captura el carácter que se halle en la entrada estándar.

#include <stdio.h>
// El caracter pulsado en el teclado se almacena en el entero c
main() {
int c;
c = getchar();/* getchar() no devuelve nada hasta que se presiona ENTER */
putchar(c); // no devuelve un carácter, sino un entero
}

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 13
puts imprime una cadena de caracteres en la salida estándar (y produce un salto de línea).
gets toma una cadena de caracteres de la entrada estándar (cuya introducción es preciso
terminar con un ENTER) y la almacena en una variable string.

#include <stdio.h>
main() {
char frase[50];
puts("Escriba un texto: ");
gets(frase); // Esta función nos permite introducir frases enteras, incluyendo espacios.
puts("El texto escrito es: ");
puts(frase);
}
printf se ocupa de la impresión con formato en la salida estándar. El operador de
conversión %, nos indica de que tipo queremos ese valor, seguido de un especificador del
tipo de variable.
%d: Si la variable es un entero (int). %f: Si la variable es un decimal o punto flotante
(float). %c: Si la variable es un caracter (char). %s: Si la variable es una cadena o string
(char[longitud]).
Se puede especificar un valor para controlar el número de dígitos decimales en un valor real
o cuántos caracteres se imprimen de una cadena. Este valor se coloca entre el porcentaje
y el tipo de variable precedido de un punto. Por ejemplo:

printf("%.2f", 3.99999); /* imprime 3.99 */


printf("%.4s\n", "Hola a todos\n"); /* imprime Hola */

scanf examina la entrada estándar y carga los valores en variables. scanf toma una palabra
como cadena y usa los espacios para separar variables, por lo cual capta solo hasta
encontrar un espacio.
Al momento de hacer un scanf, antes del nombre de la variable añadimos un & (¡ojo!:
cuando ésta no sea una cadena de texto). Es imprescindible no olvidar este símbolo, ya que
así le decimos al programa que guarde la información en el área de memoria que asignamos
para esa variable cuando la declaramos.

#include <stdio.h>
#include <conio.h>
main() {
int a,c; float b; char cadena1[30]; char cadena2[30];
printf( "Introduzca dos n\243meros: " );
scanf( "%i %f %d", &a, &b, &c); // solicito uno o varios valores que necesite o quiera
printf( "Has introducido los n\243meros %i %.2f y %d\n", a, b, c);
printf( "Escriba dos palabras: " );
scanf( "%s %s", cadena1, cadena2); //¡observa! no se necesita el & para cadena de texto
printf( "Has guardado: \"%s\" y \"%s\" ", cadena1, cadena2);
getch();
}

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 14
cout
cin

#include<iostream.h>
using namespace std; // Esta línea es necesaria cuando utilizamos la librería iostream
string nombre;
int main () {
cout << "Escribe tu nombre : " << endl;
cin >> nombre;
cout << "Hola " << nombre<< " encantado de conocerte." << endl; cin.get();
}

Por defecto cuando un programa termina, el entorno de programación cierra la ventana de


ejecución. Un pequeño truco para poder visualizar el resultado de nuestro programa de
forma correcta, es añadir antes de finalizar una función básica de C llamada getch(); (de
la biblioteca conio.h), la cual cumple la función de dejar el programa en espera hasta que
el usuario presiona cualquier tecla. También puede usarse system ("pause"); (de la
biblioteca windows.h, el cual añade el mensaje Presione una tecla para continuar . . .).

1. Estructuras de Control Secuenciales: Instrucciones o sentencias que se ejecutan una


tras otra, una sola vez y sin ninguna condición.

2. Estructura de Control Selectiva (condicionales)

Se trata de una estructura de control que permite redirigir un curso de acción según la
evaluación de una condición simple, sea falsa o verdadera. Si la condición se cumple, se
ejecuta el bloque de sentencias. En caso contrario se ejecuta, si existe o si es necesario, el
bloque de sentencias else.

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 15
Simple
if (condición) {
acción 1;
acción 2;
acción n;
}

Doble
if (condición) {
acción 1;
acción 2;
acción n;
}
else {
acción 1;
acción 2;
acción n;
}

Cuando utilizamos if y else, podemos o no usar llaves para abrir y cerrar el if. Cuando un if
y/o un else tienen solo una acción a ejecutar, podemos escribirlos sin llaves para abrir y
cerrar. Si es más de una acción, necesariamente deben llevar llaves. Si desean, para evitar
confusiones, podemos utilizar siempre las llaves.

Selectiva Switch-Case:

Esta sentencia sirve para agrupar varias sentencias if en una sola, en el caso particular en
el que una variable es comparada a diferentes valores, todos ellos constantes, y que realiza
acciones si coincide con ellos. Es muy útil en la presentación de menús. Se ejecutan todas
las sentencias del bloque hasta que se encuentre una sentencia break o hasta el final de la
sentencia de control switch. Su sintaxis es:

switch (condición)
{
case caso_1:
bloque de instrucciones 1
break;
case caso_2:
bloque de instrucciones 2
break;
case caso_n:
bloque de instrucciones n
break;
default:
bloque de instrucciones por defecto
break;
}

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 16
3. Estructura de Control Repetitivas (iterativas o bucles)

Un bucle es un conjunto de sentencias que se ejecutan repetidamente hasta que se alcanza


una condición de fin de bucle, o condición de salida.

Haga mientras ejecuta al menos una vez y al final revisa la condición


do
{
acción 1;
acción 2;
}while(condición);

Mientras siempre revisa la condición antes de ejecutar


while (condición)
{
acción 1;
acción 2;
}

Para se utiliza para realizar una acción un número determinado de veces. Está compuesto
de tres expresiones: la de inicio, la de control y la de incremento.

for (inicialización de variable ; condición ; aumento o decremento de la variable)


{
sentencia 1;
sentencia 2;
}
¡PRESENTACIÓN!: Colores, gotoxy y sleep

Para dar mejor formato y presentación al programa existe la posibilidad de dar color al
fondo y al texto:

1. textcolor(nombre-color): Este solo funciona para dar color a la letra y solo cuando
el texto sea mostrado por printf("texto por colorear");
2. textbackground(nombre-color): Este pinta el fondo de un color en específico
3. system ("color 05"); Este funciona para dar color a la letra y al fondo a todo el
programa

Lista de colores: primer número es para el fondo y el segundo para el texto


0 = negro 1 = azul 2 = verde 3 = aguamarina 4 = rojo 5 = purpura
6 = amarillo 7 = blanco 8 = gris 9 = azul claro A = verde claro B =
aguamarina clara
C = rojo claro D = purpura claro E = amarillo claro F = blanco brillante */

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 17
Algunos caracteres especiales para la impresión:
á \240 é \202 í \241 ó \242 ú \243
Á \265 É \220 Í \326 Ó \340 Ú \351
ñ \244 Ñ \245 ¿ \250 ♥ \3 ♫ \16 * \52 & \46
La siguiente herramienta es el gotoxy, el cual consiste en la localización de un texto en
cualquier lugar de la ventana bajo la colocación del X,Y como si fuese un plano cartesiano.
Por ejemplo:
printf("Ingrese su opcion\t<< >>"); gotoxy (44, 20);

El otro punto es poner temporizador mientras se ejecuta el programa y se hace mediante


la herramienta Sleep(n), la cual procesará la transición del programa. El número n
representará los milisegundos del temporizador que se desee.

/* Programa para comenzar a aprender Lenguaje C++


Programadora: Jacqueline Colina */

#include <stdio.h> // para el printf, scanf


//#include <conio.h> // para el getch
#include <windows.h> // para el system y Sleep

main()
{
printf("\n\nesto de aprender C++ esta facil");
printf("\nsi quiero... puedo, sino quiero... no puedo ;)\n\n\n");
system ("pause");
printf("\n\n\n ***** FELICITACIONES... ya comenzaste *****\n\n");
system("color 2F");Sleep(400);
system("color 6B");Sleep(400);
system("color 5f");Sleep(400);
system("color 70");Sleep(400);
printf("\n\t\t 000000____000000");
printf("\n\t\t 00000000_000000000");
printf("\n\t\t 0000000000000000");
printf("\n\t\t 00000000000000");
printf("\n\t\t 0000000000");
printf("\n\t\t 000000");
printf("\n\t\t 00");
printf("\n\t\t 000000___00000 *");
printf("\n\t\t00000000_0000000 *");
printf("\n\t\t0000000000000000 *");
printf("\n\t\t 00000000000000 *");
printf("\n\t\t 00000000000 *");
printf("\n\t\t 00000 *");
printf("\n\t\t 0 *");
printf("\n\t\t * 000000___00000");

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 18
printf("\n\t\t * 00000000_0000000");
printf("\n\t\t * 0000000000000000");
printf("\n\t\t * 00000000000000");
printf("\n\t\t * 0000000000");
printf("\n\t\t * 00000");
printf("\n\t\t * 0");
printf("\n\t\t * *");
printf("\n\t\t * *\n\n");
system ("pause");
}

CODIFICACIÓN DE DATOS
CÓDIGO ASCII: acrónimo inglés de American Standard Code for Information Interchange
(Código Estándar Estadounidense para el Intercambio de Información).

Las computadoras solamente entienden números. El código ASCII es una representación


numérica de un carácter como ‘a’ o ‘@’. Los caracteres tienen un código que nos permite
establecer un orden, de esta manera cuando comparamos caracteres, lo que en realidad se
compara son sus códigos. La relación de orden entre los caracteres es el siguiente:

NOTA: Este material ha sido recopilado de varias fuentes bibliográficas con el


único propósito de aclarar dudas y servir de guía en la materia Algorítmica y
Programación.

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 19
EJERCICIOS

1. Programa que permite calcular el área de un triángulo dadas la base y la altura.

#include <stdio.h> /* Biblioteca estándar de entrada/salida */


#include <stdlib.h> /* la librería stdlib.h es necesaria para que "system" funcione */
#include <conio.h> /* no es una librería estandar, es propiedad de Borland
y sólo sus compiladores pueden usarla. */
main() {
system ("COLOR B0");
/* declarar variables */
float base,altura,area;

/* solicitar los datos */


printf("\n Para calcular el \265REA de un tri\240ngulo: ");
printf("\n Ingrese el valor de la BASE:\t");
scanf("%f",&base);
printf("\n Ingrese el valor de la ALTURA:\t ");
scanf("%f",&altura);

/* Calcular el area */
area= (base*altura)/2;

/* mostrar resultados */
system ("COLOR 74");
printf("\n\n\n El \265REA del tri\240ngulo de base %.2f y altura %.2f es:
%.2f\n",base,altura,area);
system("pause"); }

2. Programa que devuelve el saludo y la longitud de un nombre.

#include <stdio.h>
#include <string.h>
#include <windows.h> // para el system y Sleep
main () {

/* declarar variables */
int longitud; char opc; char nombre[15];
do {
/* solicitar los datos */
memset (nombre,' ',15); /* función que inicializa la variable en espacios antes de la
lectura*/
printf("\n\250Cu\240l es su nombre?: ");
scanf("%s",&nombre);
strupr(nombre); // para convertir a mayúsculas
longitud = strlen(nombre); /*Esta función devuelve el número de caracteres que tiene
una palabra (sin contar el '\0')*/

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 20
/* Se utiliza \" para poner comillas, \n para hacer salto de línea y \t para tabular */
printf( "El nombre \"%s\" tiene %d letras.\n", nombre, longitud );
printf("\n\tH\t%c",nombre[0]);
printf("\n\tO\t%c",nombre[1]);
printf("\n\tL\t%c",nombre[2]);
printf("\n\tA\t%c",nombre[3]);
printf("\n\t \t%c",nombre[4]);
printf("\n\t \t%c",nombre[5]);
printf("\n\t \t%c",nombre[6]);
printf("\n\t \t%c",nombre[7]);
printf("\n\t \t%c",nombre[8]);
printf("\n\t \t%c",nombre[9]);
printf("\n\t \t%c",nombre[10]);
printf("\n\t \t%c",nombre[11]);
printf("\n\t \t%c",nombre[12]);
printf("\n\t \t%c",nombre[13]);
printf("\n\t \t%c",nombre[14]);
printf("\n\250Desea continuar? (s/n): ");
scanf("%s",&opc);
}while(opc != 'n' && opc != 'N');

/* salir del programa */


system ("cls");
system ("COLOR 02");
printf("\n\n Hasta Luego! :)\n\n");
system ("pause"); }

3. Programa que determina la categoría de una persona según su edad.

#include <stdio.h>
#include <string.h>
#include <windows.h>
main () {

/* declarar variables */
int edad,x,longitud; char opc; char nombre[15];
edad=0;
do {
/* solicitar los datos */
memset (nombre,' ',15);
printf("\n\250Cu\240l es su nombre?: ");
scanf("%s", nombre);
longitud = strlen(nombre);
printf("\nH");
printf("\nO");
printf("\nL");
printf("\nA");
for (x=0; x<longitud; x++){

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 21
printf("\n\t%c",nombre[x]);
}
printf("\n ingrese su edad: ");
scanf("%d",&edad);
/* mostrar resultado */
system ("COLOR DF");
if (edad<=12)
printf("%s Por su edad usted es considerado un ni\244o", nombre);
if (edad>=13&&edad<=17)
printf("%s Por su edad es considerado un adolescente", nombre);
if (edad>=18&&edad<=60)
printf("%s Por su edad es considerado un adulto", nombre);
if (edad>60)
printf("%s Por su edad es considerado un adulto mayor", nombre);
printf("\n\250Desea continuar? (s/n): ");
scanf("%s",&opc);
}while(opc != 'n' && opc != 'N');

/* salir del programa */


system ("cls");
system ("COLOR 02");
printf("\n\n Hasta Luego! :)\n\n");
system ("pause");
}

4. Enumerar y mostrar los números del 1 al 10 utilizando los 3 ciclos iterativos.

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int numero;
int main() {
/* Primer ciclo: while */
printf("\n Ciclo WHILE:)\n");
numero=1; // Asignamos el valor inicial a la variable
while (numero<=10) {
printf ("%d\n",numero); /* Mostramos el número y utilizamos \n para hacer salto de
línea */
numero++; // Incrementamos el valor
}
/* Segundo ciclo: for*/
printf("\n Ciclo FOR:)\n");
for (numero=1;numero<=10;numero++) {
printf("%d\n",numero); // Mostramos el número
}
/* Tercer ciclo do-while */
numero=1; // Reinicializamos el número a 1

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 22
printf("\n Ciclo DO-WHILE:)\n");
do
{
printf("%d\n",numero); // Mostramos el número
numero++; // Incrementamos el valor
}while(numero<=10); // Definimos la condición
getch(); // Dejamos el programa en espera
}

5. Leer 10 números por teclado, almacenar en un arreglo y mostrar la suma, resta,


multiplicación y división de todos.

#include <stdio.h>
#include <stdlib.h>
int main(void) {
int tabla[10];
int x, sum, res, mul, div;
for (x=0;x<10;x++)
{
printf("Introduzca número\n");
scanf("%d",&tabla[x]);
}
sum=tabla[0];
res=tabla[0];
mul=tabla[0];
div=tabla[0];
for (x=1;x<10;x++)
{
sum=sum+tabla[x];
res=res-tabla[x];
mul=mul*tabla[x];
div=div/tabla[x];
}
printf ("Suma: %d\n", sum);
printf ("Resta: %d\n", res);
printf ("Multiplicación: %d\n", mul);
printf ("División: %d\n", div);
system("PAUSE");
}

6. Leer 10 números por teclado, almacenar en un arreglo y ordenarlos en forma


ascendente.

#include <stdio.h>
#include <stdlib.h>
int main() {

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 23
float aux, numeros[10];
int i,j,n=10;
for (i=0;i<n;i++)
{
printf("Escriba un número");
scanf("%f",&numeros[i]);
}
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(numeros[i]<numeros[j])
{
aux=numeros[i];
numeros[i]=numeros[j];
numeros[j]=aux;
}
}
}
for (i=n-1;i>=0;i--){
printf("%f\n",numeros[i]);
}
system("PAUSE");
return 0;
}

7. Programa que determina si un número dado es positivo o negativo, y que finalice cuando
sea el número 0.

#include <iostream>
using namespace std;// OJO: algunas compiladores de Borland C++ no lo reconocen y no
hace falta
int main() {
int numero;
cout << "Escriba un n\243mero (0 para salir): ";
cin >> numero;
while (numero!=0)
{
if (numero > 0)
cout << "Es positivo" << endl;
else
cout << "Es negativo" << endl;
cout << "Teclea otro n\243mero (0 para salir): ";
cin >> numero;
}
}

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 24
Ejercicio: Calcular el volumen y el área de una esfera. Mostrar los dos resultados o salidas.
Volumen= 4 * ∏ * R3/3 Área= 4 * ∏ * R2
Ejercicio: Realizar un programa que te solicite tu nombre y una cifra numérica, y escriba
tu nombre tantas veces como indique esa cifra numérica, usando "scanf" para pedir los
datos.
Ejercicio: Solicitar y almacenar en un registro el nombre, cedula, sexo, año de nacimiento
y cinco calificaciones de cinco estudiantes. Mostrar todos los datos en un listado ordenado
por promedio de notas en orden descendente.

A CONTINUACIÓN UN EJERCICIO REALIZADO POR EL ESTUDIANTE JUNIOR 2.0


(novato para ese momento-año 2013). LO ANEXO TAL CUAL, “PA QUE VOS
VEAIS”... MUESTRA DE QUE SI SE PUEDE... jejeje

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
int main(void) {
system ("color 4f");
printf(" hola... Bienvenidos\n\n");
printf("Programa que define los meses del año\n\n");
printf( "Pulse ENTER para continuar"); getch();
system ("CLS") ; int i;
printf("los meses del año");
system ("CLS");
printf("hola, Introduzca un numero del 1 al 12: ");
scanf("%d",&i);
switch(i){
case 1:
printf ("Enero\n");
break;
case 2:
printf ("Febrero\n");
break;
case 3:
printf ("Marzo\n");
break;
case 4:
printf ("Abril\n");
break;
case 5:
printf ("Mayo\n");
break;
case 6:
printf ("Junio\n");
break;

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 25
case 7:
printf ("Julio\n");
break;
case 8:
printf ("Agosto\n");
break;
case 9:
printf ("Septiembre\n");
break;
case 10:
printf ("Octubre\n");
break;
case 11:
printf ("Noviembre\n");
break;
case 12:
printf ("Diciembre\n");
break;
default:
printf ("Opción no válida\n");
break;
}
system ("cls");
printf ("Gracias por favor vuelve pronto ;D ");
printf ("chaoooooooooo");
getch (); }

La diferencia está aquí...

«El estudiante que sigue aprendiendo por su cuenta... Eso es lo que separa a los
triunfadores de los que solo hacen la tarea».
Neil de Grasse Tyson

RECOMENDACIONES:

Introducción a la programación - Pseudocódigo


http://www.aprendeaprogramar.com/course/view.php?id=22
Introducción a C++
http://www.aprendeaprogramar.com/course/view.php?id=27
BORLAND C++
http://logpracticas2013.blogspot.com/
El lenguaje de programación C
http://platea.pntic.mec.es/vgonzale/cyr_0204/cyr_01/control/lengua_C/index.htm
Código Facilito. Curso de C++ con Video tutoriales en Español
https://www.youtube.com/playlist?list=PL4A486BBFC5AD733B

Algorítmica y Programación Parte 1. Elaborada por: MSc. Jacqueline Colina Revisión: Sept. 2016 26

You might also like