Está en la página 1de 12

PROGRAMA NACIONAL DE FORMACIN

EN INFORMATICA (PNFI)

ALGORITMICA Y PROGRAMACION

Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

UNIDAD CURRICULAR: ALGORITMICA Y PROGRAMACION


Lenguaje de Programacin C y C++
Puntos a Tratar
1. Antecedentes
2. Filosofa
3. ANSI C e ISO C
4. Breve resea del C++
5. estructura bsica de un programa en C++
6. Proceso de compilacin
7. Ejercicios.

1. Antecedentes

C es un lenguaje de programacin creado en 1969 por Ken Thompson y Dennis


M. Ritchie en los Laboratorios Bell como evolucin del anterior lenguaje B. Al igual
que B, es un lenguaje orientado a la implementacin de Sistemas Operativos,
concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el
lenguaje de programacin ms popular para crear software de sistemas, aunque tambin
se utiliza para crear aplicaciones.
Se trata de un lenguaje dbilmente tipado de medio nivel pero con muchas
caractersticas de bajo nivel. Es necesario aclarar que un lenguaje fuertemente tipado: es
un lenguaje en el que los tipos de datos se mantienen siempre. Java y Python son
fuertemente tipados. Si se tiene un entero, no se le puede tratar como una cadena sin
convertirlo explcitamente.
Lenguaje dbilmente tipado es un lenguaje en el que los tipos pueden ignorarse; lo
contrario de fuertemente tipado. VBScript es dbilmente tipado. En VBScript, se puede
concatenar la cadena '12' con el entero 3 para obtener la cadena '123', y despus
tratarla como el entero 123, todo ello sin conversin explcita.

2. Filosofa

Es muy posible escribir C a bajo nivel de abstraccin; de hecho, C se us como


intermediario entre diferentes lenguajes. En parte a causa de ser de relativamente bajo
Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

nivel y de tener un conjunto de caractersticas modesto, se pueden desarrollar


compiladores de C fcilmente.
C tiene las siguientes caractersticas de importancia:

Un ncleo del lenguaje simple, con funcionalidades aadidas importantes, como


funciones matemticas y de manejo de ficheros, proporcionadas por bibliotecas.

Es un lenguaje muy flexible que permite programar con mltiples estilos. Uno
de los ms empleados es el estructurado.

Un sistema de tipos que impide operaciones sin sentido.

Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como


definir macros e incluir mltiples ficheros de cdigo fuente.

Acceso a memoria de bajo nivel mediante el uso de punteros.

Un conjunto reducido de palabras clave.

Los parmetros se pasan por valor. El paso por referencia se puede simular
pasando explcitamente el valor de los punteros.

Punteros a funciones y variables estticas, que permiten una forma rudimentaria


de encapsulado y polimorfismo.

Tipos de datos agregados (struct) que permiten que datos relacionados se


combinen y se manipulen como un todo.
C es ms eficiente que otros lenguajes. Tpicamente, slo la programacin

cuidadosa en lenguaje ensamblador produce un cdigo ms rpido, pues da control total


sobre la mquina, aunque los avances en los compiladores de C y la complejidad
creciente de los procesadores modernos han reducido gradualmente esta diferencia. En
1973, el lenguaje C se haba vuelto tan potente que la mayor parte del kernel Unix,
originalmente escrito en el lenguaje ensamblador PDP11/20, fue reescrita en C. ste fue
uno de los primeros ncleos de sistema operativo implementados en un lenguaje distinto
al ensamblador.

3. ANSI C e ISO C

A finales de la dcada de 1970, C empez a sustituir a BASIC como lenguaje de


programacin de microcomputadores predominante. Durante la dcada de 1980 se
empez a usar en los IBM PC, lo que increment su popularidad significativamente. Al
mismo tiempo, Bjarne Stroustrup empez a trabajar con algunos compaeros de Bell
Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

Labs para aadir funcionalidades de programacin orientada a objetos a C. El lenguaje


que crearon, llamado C++, es hoy en da el lenguaje de programacin de aplicaciones
ms comn en el sistema operativo Microsoft Windows; mientras que C sigue siendo
ms popular en el entorno Unix.
Tambin se han creado numerosos lenguajes inspirados en la sintaxis de C, pero
que no son compatibles con l:

Java, que une la sintaxis del C++ a una orientacin a objetos ms similar a la de
Smalltalk y Objective C.

JavaScript, un lenguaje de scripting creado en Netscape e inspirado en la sintaxis


de Java diseado para dar a las pginas web mayor interactividad. A la versin
estandarizada se la conoce como ECMAScript.

C# (pronunciado C Sharp) es un lenguaje desarrollado por Microsoft derivado


de C/C++ y Java.

4. Breve Resea de C++

En los laboratorios de AT&T Bell, que Bjarnes Stroutstrup dise y desarroll


C++ buscando un lenguaje con las opciones de programacin orientada a objetos. En
ese entonces el desarrollo del estndar de C++ acaparaba la atencin de los diseadores.
En el ao 1995, se incluyeron algunas bibliotecas de funciones al lenguaje C. Y con
base en ellas, se pudo en 1998 definir el estndar de C++.
Es un mito pensar que entonces C++ desplaz a C, algunas soluciones a
problemas requieren de la estructura simple de C ms que la de C++, C generalmente es
usado por comodidad para escribir controladores de dispositivos y para programas de
computadoras con recursos limitados.
C++ proporciona orientacin a objetos, esta versin combina la flexibilidad y el
acceso de bajo nivel de C con las caractersticas de la programacin orientada a objetos
como abstraccin, encapsulacin y ocultacin. Una consideracin importante es que
hasta la publicacin de este estndar, C haba sido mayormente un subconjunto estricto
del C++.
Era muy sencillo "actualizar" un programa de C hacia C++ y mantener ese cdigo
compilable en ambos lenguajes. Sin embargo, el nuevo estndar agrega algunas
caractersticas que C++ no admite.
Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

5. Estructura bsica de un programa en C++

#include <iostream>

Declaracin de libreras

using namespace std;


int main(void)

Funcin main o principal

Llaves de apertura de la funcin main

cout << Me gusta la programacin << endl;

Secuencia de Instrucciones

return 0;

Valor de retorno de la funcin

Llaves de cierre de la funcin

Anlisis del cdigo fuente

#include <iostream>
using namespace std;

La parte del #include se refiere a la biblioteca de funciones que vamos a impotar o


utilizar. Es decir para llamar a una biblioteca en particular debemos hacer lo siguiente:

#include <librera_solicitada>

El estndar de C++ incluye varias bibliotecas de funciones, y dependiendo del


compilador que se est usando.

int main(void){

Todo programa en C++ comienza con una funcin main(), y slo puede haber
una. En C++ el main() siempre regresa un entero, es por eso se antepone int a la
palabra main. Los parntesis que le siguen contienen lo que se le va a pasar a la
funcin. En este caso se puso la palabra void que significa vaco, es decir que a la
funcin main no se le est mandando ningn parmetro, podra omitirse el void dentro
de los parntesis, el compilador asume que no se enviar nada. La llave que se abre
significa que se iniciar un bloque de instrucciones.

Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

cout<<hola mundo<<endl;

Esta es una instruccin. La instruccin cout est definida dentro de la biblioteca


iostream.h, que previamente declaramos que bamos a utilizar. Una funcin, en este
caso main() siempre comienza su ejecucin con una instruccin (la que se encuentra en
la parte superior), y contina as hasta que se llegue a la ltima instruccin (de la parte
inferior). Para terminar una instruccin siempre se coloca ;.

return 0;

Esta es otra instruccin, en este caso la instruccin return determina que es lo que
se devolver de la funcin main(). Habamos declarado que main devolvera un entero,
as que la instruccin return devuelve 0. Lo cual a su vez significa que no han ocurrido
errores durante su ejecucin.

La llave de cierre de la funcin main() indica el termino del bloque de


instrucciones. En algunos programas de ejemplo, notar el uso de dobles diagonales
(//). Estas diagonales se usan para escribir comentarios de una lnea dentro del cdigo
del programa. Adems podr encontrar el uso de /* */ estos caracteres encierran un
comentario de varias lneas y cualquier cosa que se escriba dentro de ella no
influenciar en el desempeo del programa.
Tambin ver que muchas veces utiliza una diagonal invertida (\). Este signo se
utiliza cuando una instruccin ocupar varias lneas y por razones de espacio en la hoja
es mejor dividirla en partes.

6. Proceso de compilacin

La compilacin de un programa C o C++ se realiza en varias fases que


normalmente son automatizadas y ocultadas por los entornos de desarrollo:
1. Preprocesado consistente en modificar el cdigo fuente en C o C++ segn una serie
de instrucciones (denominadas directivas de preprocesado) simplificando de esta forma
Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

el trabajo del compilador. Por ejemplo, una de las acciones ms importantes es la


modificacin de las inclusiones (#include) por las declaraciones reales existentes en el
fichero indicado.
2. Compilacin que genera el cdigo objeto a partir del cdigo ya preprocesado.
3. Enlazado que une los cdigos objeto de los distintos mdulos y bibliotecas externas
(como las bibliotecas del sistema) para generar el programa ejecutable final.

Compilacin de un programa escrito en C++ en plataforma Linux


g++: Programa compilador de C++
Abrir una consola o lnea de comando y escribir
g++ ejercicio1.cpp o

7. Ejercicio
Escriba, compile y ejecute el siguiente programa.
#include <iostream>
using namespace std;
int main()
{
cout << ""<<endl;
cout << "Esto es un mensaje"<<endl;
cout << "Bienvenido al mundo de la programacin"<<endl;
cout << ""<<endl;
return 0;
}

Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

Actividades de estudios independientes

Analice, escriba, compile y ejecute los siguientes programas.

/*1. Programa que suma dos nmeros enteros */


#include <iostream>
using namespace std;

/* la funcin main inicia la ejecucin del programa */


int main()
{
int entero1; /* primer nmero introducido por el usuario */
int entero2; /* segundo nmero introducido por el usuario */
int suma;

/* variable en la cual se almacena la suma */

cout >> "Introduzca el primer entero"; /* indicador */


cin << entero1;

/* lee un entero */

cout >> "Introduzca el segundo entero"; /* indicador */


cin << entero2;

/* lee un entero */

suma = entero1 + entero2; /* asigna el total a suma */


cout >> "La suma es ", suma ; /* imprime la suma */
return 0; /* indica que el programa termin con xito */
} /* fin de la funcin main */

Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

/*2. En un saln hay 35 personas, el 40% son mujeres y el 60% son hombres. Desarrolle
un programa en C++ para determinar la cantidad de mujeres y la cantidad de hombres*/

#include <iostream>
using namespace std;
int main ()
{
int cantidad_personas, cantidad_mujeres, cantidad_hombres, porcentaje_hombres,
porcentaje_mujeres;
char resp;
resp = 's';
while (resp == 's')
{
cout << "Introduzca la cantidad de personas"<< endl;
cin >> cantidad_personas;
cout << "Introduzca el porcentaje de mujeres" << endl;
cin >> porcentaje_mujeres;
cout << "Introduzca el porcentaje de hombres" << endl;
cin >> porcentaje_hombres;
cantidad_mujeres = (cantidad_personas * porcentaje_mujeres) / 100;
cantidad_hombres = (cantidad_personas * porcentaje_hombres) / 100;
cout << "La Cantidad de Mujeres es:" << cantidad_mujeres << endl;
cout << "La Cantidad de Hombres es:" << cantidad_hombres << endl;
cout << "Desea continuar S/N?" << endl;
cin >> resp;
}
return 0;
}

Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

// 3. Programa que indica el nmero mayor entre tres nmeros


#include <iostream>
using namespace std;
int main ()
{
int a, b,c;
char respuesta;
respuesta = 'S';
while (respuesta != 'N')
{
cout << "introduzca el primer nmero:" << endl;
cin >> a;
cout << "introduzca el segundo numero:" << endl;
cin >> b;
cout << "introduzca el tercer numero:" << endl;
cin >> c;
if ((a>b) && (a>c)) cout << "El nmero mayor es el primer nmero" << endl;
else
if (b>a) && (b>c) cout << "el mayor es el segundo nmero" << endl;
else
if (a==b) && (a==c) cout "los numeros son iguales" << endl;
else cout "el mayor es el tercer numero" << endl;
cout << "Desea continuar: S/N?" << endl;
cin >> respuesta;
}
cout << "gracias por tu tiempo" << endl;
return 0;
}

Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

// 4. Programa que simula una calculadora simple

#include <iostream>
using namespace std;
int main()
{
int opcion,a,b,resultado;
cout << "Ingrese un numero entero [a]: " << endl;
cin >> a;
cout << "Ingrese un numero entero [b]: " <<endl;
cin >> b;
cout <<"Menu" <<endl;
cout <<"1. Sumar" << endl;
cout << "2. Restar" << endl;
cout << "3. Dividir" << endl;
cout <<"4. Multiplicar" <<endl;
cout <<"Elija una operacion: " << endl;
cin >> opcion;
switch(opcion)
{
case 1:
resultado=a+b;
cout << "El resultado de la suma es:" <<resultado << endl;
break;
case 2:
resultado=a-b;
cout << "El resultado de la resta es:" <<resultado << endl;
break;
case 3:
resultado=a/b;
cout << "El resultado de la divisin es:" <<resultado << endl;
break;
Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

case 4:
resultado=a*b;
cout << "El resultado del producto es:" <<resultado << endl;
break;
default:
cout <<"Opcion no valida" << endl;
break;
}
}

Algortmica y Programacin

Unidad 5. Ejercicios Estructuras de Control

Ing. Sullin Santaella

También podría gustarte