Sei sulla pagina 1di 30

GESTIÓN DE FORMACIÓN PROFESIONAL INTEGRAL

PROCEDIMIENTO DESARROLLO CURRICULAR


TALLER DE APRENDIZAJE

1. IDENTIFICACIÓN DEL TALLER

 Denominación del Programa de Formación: Técnico en Desarrollo de Software


 Código del Programa de Formación: 228120 Versión 102
 Nombre del Proyecto: Diseño y Construcción de Software Para Administración de Unidades
Productivas
 Código: 990527
 Fase del Proyecto: Análisis.
 Actividad de Proyecto: Diagnosticar la Necesidades de Sistematizar Procesos Administrativos en la
Empresa
 Resultados de Aprendizaje Alcanzar: 22050103201 Identificar cada uno de los conceptos y
principios que constituye la programación orientada a objetos para interpretar el diseño.
 Competencia: Analizar los requerimientos del cliente para construir el sistema de información.

2. OBJETIVOS DEL TALLER

 El siguiente taller tiene como objetivo general que los aprendices sean capaces de resolver y
codificar de manera eficaz distintos problemas de carácter general, en lenguaje de programación
C++. Este objetivo requiere que los aprendices que reciban la orientación, adquieran el
conocimiento teórico y práctico sobre las técnicas básicas de programación, para lograr definir,
analizar y codificar una solución al momento de desarrollar un aplicativo utilizando el lenguaje C++
 Generar aplicaciones que como solución a necesidades.
 Orientar respecto a cómo estructurar el código.
 Determinar si las aplicaciones desarrolladas dan la solución adecuada a una determinada necesidad.
 Reconocer problemas a los que se les puede dar solución mediante un aplicativo.
 Especificar aplicativos de manera precisa utilizando conceptos matemáticos y elementos de
programación funcional.

3. REFLEXIÓN INICIAL.

Teniendo en cuenta que ya venimos trabajando con la parte lógica y algorítmica mediante los algoritmos,
seudocódigos y los diagramas de flujo de datos, nos vemos en la necesidad de seguir avanzando utilizando
los algoritmos vistos anteriormente y algunos nuevos para afianzar algunos conceptos referentes a la
programación, para dar cumplimiento a lo anterior usaremos un lenguaje de programación como C++.

Como futuros programadores de software debemos partir de una situación problemática, hacer su
respectivo análisis, tomar la mejor alternativa de solución, diagramarla y luego programarla en un lenguaje
seleccionado.

GFPI-F-019 V3
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Con este taller se pretende que los Aprendices apliquen conocimientos básicos necesarios para la
construcción de soluciones informáticas, utilizando para ello diversas estrategias de aprendizaje,
permitiendo activar las habilidades cognitivas y meta cognitivas en el estudiante.

Otro de los objetivos de este taller es que permitirá analizar, modificar, comprender y desarrollar nuestros
propios ejercicios, recuerde que para comprender mejor cada uno de los temas vistos en nuestro curso es
necesario que usted también tenga la tarea de investigar.

Además en este taller el Aprendiz conocerá las estructuras de control, construcciones de control de
condición que controlan la secuencia o flujo de ejecución de las sentencias. Además aprenderá a
escribir código para que un lenguaje de programación como C++, tome decisiones.

Recuerde que con entusiasmo y dedicación logrará alcanzar los objetivos propuestos en este taller y que
todo proceso de Enseñanza-Aprendizaje-Evaluación requiere de técnicas y métodos de estudio, además de
dedicación, disciplina y responsabilidad.

C++ es un potente lenguaje de programación que apareció en 1980, continuando con las ventajas,
flexibilidad y eficacia del C. Es un lenguaje de programación que permite programar desde sistemas
operativos, compiladores, aplicaciones de bases de datos, procesadores de texto, juegos...

C++ ha ido evolucionando y ha contribuido con la aparición de Java, simplificando instrucciones de C++,
añadiendo nuevas y apareciendo nuevas funcionalidades para realizar aplicaciones utilizables desde
Internet.

Los programas estructurados se basan en estructuras de control bien definidas, bloques de código,
subrutinas independientes que soportan recursividad y variables locales. La esencia de la programación
estructurada es la reducción de un programa a sus elementos constituidos.

La programación orientada a objetos (POO), permite descomponer un problema en subgrupos relacionados.


Cada subgrupo pasa a ser un objeto auto contenido que contiene sus propias instrucciones y datos que le
relacionan con ese objeto. Todos los lenguajes POO comparten tres características: Encapsulación,
Polimorfismo y Herencia.

ENCAPSULACIÓN: Es el mecanismo que agrupa el código y los datos que maneja. Los mantienen protegidos
frente a cualquier interferencia y mal uso. Cuando el código y los datos están enlazados de esta manera se
ha creado un objeto. Ese código y datos pueden ser privados para ese objeto o públicos para otras partes
del programa.

POLIMORFISMO: Es la cualidad que permite que un nombre se utilice para dos o más propósitos
relacionados pero técnicamente diferentes. El propósito es poder usar un nombre para especificar una clase
general de acciones. Por ejemplo en C tenemos tres funciones distintas para devolver el valor absoluto. Sin
embargo en C++ incorpora Polimorfismo y a cada función se puede llamar abs(). El Polimorfismo se puede
aplicar tanto a funciones como a operadores.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

HERENCIA: Proceso mediante el cual un objeto puede adquirir las propiedades de otro objeto. La
información se hace manejable gracias a la clasificación jerárquica.
OBJETO: Conjunto de variables y funciones pertenecientes a una clase encapsulados. A este
encapsulamiento es al que se denomina objeto. Por tanto la clase es quien define las características y
funcionamiento del objeto.

Estimad@ Aprendiz mucho Ánimo: En el modelo de formación por proyectos Usted es el principal actor de
su formación profesional.

Diferencias entre C y C++

Aunque C++ es un súper conjunto de C, existen algunas diferencias entre los dos. En primer lugar,
en C cuando una función no toma parámetros, su prototipo tiene la palabra void. Sin embargo en
C++ void no es necesario (opcional).

Prototipo en C: char funcion1 (void);


Prototipo en C++: char funcion1 ();

En un programa de C++ todas las funciones deben estar en forma de prototipo, en C los prototipos
se recomiendan, pero son opcionales. También si una función de C++ es declarada para devolver
un valor obligatoriamente la sentencia return debe devolver un valor, en C no es necesario que se
devuelva.

Otra diferencia es el lugar donde se declaran las variables locales. En C, deben ser declaradas
solo al principio del bloque, mientras que en C++ las variables se pueden declarar en cualquier
punto. Aunque es conveniente realizarlo siempre al comienzo de la función.

#include <iostream>

Las líneas que comienza con un símbolo de sostenido # son directivas para el preprocesador.
En este caso, la directiva # include <iostream>le dice al preprocesador que incluya el iostream
estándar de archivo. Este archivo específico (iostream) incluye las declaraciones de la norma
básica de entrada y salida de la biblioteca de C++.

using namespace std;

Todos los elementos del modelo de librería de C++ se declaran dentro de lo que se denomina un
espacio de nombres. Por lo tanto, para poder acceder a su funcionalidad declaramos con esta
expresión que vamos a utilizar estas entidades. Esta línea es muy frecuente en los programas que
utilizan la biblioteca estándar, y de hecho será incluido en la mayoría de los códigos.

int main ()

Esta línea se corresponde con el comienzo de la definición de la función principal. La función


principal es el punto por donde todos los programas inician su ejecución, independientemente de
su ubicación dentro del código fuente. No importa si hay otras funciones con otros nombres
Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

definidos antes o después de las instrucciones que figuran dentro de esta función, ya que por
definición será siempre la primera en ser ejecutada. Por esa misma razón, es esencial que todos
los programas tengan una función principal. Lo que se contiene dentro de las llaves que delimitan
la función es lo que hace cuando se ejecuta.

cout <<"Hola Programador";

Esta línea es una declaración de C++, en términos simples es una expresión que produce algún
efecto. De hecho, esta declaración lleva a cabo la ´única acción que genera un efecto visible en
nuestro programa. Representa el flujo de salida y su objetivo es insertar una secuencia de
caracteres ( ”Hola Programador”) en el flujo de salida estándar (pantalla)

return 0;

Esta declaración hace que la función principal termine. Un código de retorno es 0, cuando la función
principal interpreta de manera general que el programa trabajo como se esperaba, sin ningún error
durante su ejecución. Esta es la forma más habitual para poner fin a un programa C++ en la
consola.

Variables y Tipos de datos

1. Variables Locales. Se definen solo en bloque en el que se vayan a ocupar, de esta manera
evitamos tener variables definidas que luego no se utilizan.
2. Variables Globales. No son lo más recomendable, pues su existencia atenta contra la
comprensión del código y su encapsulamiento.
3. Variables Estáticas. Se tienen que inicializar en el momento en que se declaran, de manera
obligatoria.

Espacios de nombres en C++

Los espacios de nombre nos ayudan a evitar problemas con identificadores, nos permiten, que
existan variables o funciones con el mismo nombre, declaradas en distintos espacios de nombre,
además no pueden hacerse declaraciones de namespace dentro de bloques, como funciones. Un
namespace se define de la siguiente manera:

namespace <nombre_del_namespace>
{
... //declaraciones y/o definiciones de variables, funciones, clases
}
Aquí nombre del namespace es un identificador estándar C++.
El nombre del espacio funciona como un prefijo para las variables, funciones o clases declaradas
en su interior, de modo que para acceder a una de esas variables se tiene que usar un especificador
de ´ámbito (::), o activar el espacio con nombre adecuado.

Presentamos el siguiente código que genera un espacio de nombre.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

#include <iostream>
namespace uno
{
int x;
namespace dos
{
int x;
namespace tres
{
int x;
}
}
}
using std::cout;
using std::endl;
using uno::x;
int main()
{
x = 10; // Declara x como uno::x
uno::dos::x = 30;
uno::dos::tres::x = 50;
cout << x << ", " << uno::dos::x <<
", " << uno::dos::tres::x << endl;
return 0;
}

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Entrada y Salida por Consola en C++

Mostrar por pantalla: cout << expresión;

Pedir por teclado: cin >> variable; La variable pude ser de cualquier tipo.

EJEMPLO:
#include <conio.h>
#include <iostream> // Esta biblioteca permite el uso de cout(<<) y de cin(>>)

using namespace std;


main()
{
int i,j;
double d;
i=10;
j=15;
cout <<"Introducir valor: ";
cin>>d;
cout << "Estos son los valores: ";
cout << i << " "<< j << " "<< d;
getch();
}

Bloque de sentencias

Las sentencias especifican y controlan el flujo de ejecución del programa. Si no existen sentencias especıficas
de selección o salto, el programa se ejecuta de forma secuencial en el mismo orden en que se ha escrito el
código fuente.

En C++ el concepto de bloque de sentencias se utiliza para agrupar un conjunto de sentencias dentro de un
ámbito concreto dentro del programa. Un bloque de sentencias es un conjunto de instrucciones englobadas
bajo llaves { }.

Sentencia if

La sentencia if elige entre varias alternativas en base al valor de una o más expresiones
booleanas.

Sintaxis:
if( <expression booleana>)
<bloque a ejecutar cuando la expresión es verdadera>
else
<bloque a ejecutar cuando la expresión es falsa>

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

La sentencia else es opcional, puede utilizarse o no. En el caso de no utilizarlo, cuando la expresión
evaluada sea falsa la ejecución continuará con la sentencia inmediatamente posterior al if.

Comparaciones en C++

En C++ las comparaciones se especifican mediante el operador ==, en primera posición la


constante y como segundo miembro de la igualdad la variable. Dicha comparación nos regresará
un booleano.

if ( constante == variable){ }

Asignaciones en C++

En las asignaciones se debe evitar la conversión explicita de tipos de datos. Se aconseja no hacer
asignaciones múltiples, ya que estas dan a lugar a actuaciones erróneas. En general las sentencias de
asignación tienen la forma:

tipo variable;
variable = expresión;

Sentencia switch

En casos en los que el programa presenta varias elecciones después de checar un expresión múltiple o
multialternativa, donde el valor de una expresión determina que sentencias serán ejecutadas es mejor
utilizar una sentencia switch.

Esta estructura ocupa la palabra reservada break que permite que el flujo del programa se detenga justo
después de la ejecución de la sentencia anterior a ese break, pidiendo que se ejecuten las sentencias
correspondientes a las siguientes alternativas de switch.
Por otro lado default es opcional y engloba un conjunto de sentencias que se ejecutan en caso de que
ninguna de las alternativas del switch tenga un valor que coincida con el resultado de evaluar la expresión
del selector.

switch(var int o char)


{
case const1: instrucciones;
break;
case const2: instrucciones;
break;
default: instrucciones;
};

Sentencia For

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

La sentencia for se usara para definir un ciclo en el que una variable se incrementa de manera constante
en cada iteración y la finalización del ciclo se determina mediante una expresión constante.
Como contador en for se utilizaran preferiblemente variables de un solo carácter como i, j, k,
declarándolas dentro del mismo ciclo. Su formato general es:
for (inicialización; condición; incremento)
{
Instrucción(es);
};

Sentencias While y do While


Al comenzar un ciclo while o do...while la expresión de control debe tener un valor claramente definido,
para impedir posibles indeterminaciones o errores de funcionamiento.
La sentencia while se usara para definir un ciclo en el que la condición de terminación se evalúa al
principio del mismo. Su formato general es:

Carga o inicializa la variable de condición;


while(condición)
{
grupo cierto de instrucciones;
instrucción(es) para salir del ciclo;
};
La sentencia do...while se usara para definir un ciclo en el que la condición de terminación se evaluara al
final del mismo. Su formato general es:

Cargar o inicializar variable de condición;


do
{
grupo cierto de instrucción(es);
instrucción(es) de rompimiento de ciclo;
}
while (condición);

Sentencia exit y return


La sentencia exit finaliza la ejecución de un proceso de manera inmediata, forzando la vuelta al sistema
operativo. No se aconseja su utilización en cualquier parte del código, siendo referible controlar el flujo en
el proceso mediante bucles condicionales y devolver el control mediante la sentencia return.

La sentencia return se utiliza para salir de una función o procedimiento, volviendo al punto en el cual se
llamó a dicha función o procedimiento. En el código hay que minimizar la utilización de return, solo tendría
que aparecer una vez en cada función o procedimiento, al final del mismo, de manera que se tenga un solo
punto de entrada a la función y un solo punto de salida de la misma.
Ejemplos
A continuación presentamos algunos ejemplos en donde se implementan las sentencias del lenguaje C++.
1. Este programa cuenta números en intervalos de a ocho

#include <iostream>

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

#include <stdlib.h>
using namespace std;
main()
{
int numero, contador, sumador;
sumador=contador=0;

do
{
cout << "Introduzca un numero mayor que 0 y menor que 500: ";
cin >> numero;
}
while(numero < 0 || numero > 500);
// La condición controla el intervalo establecido, controlando que
// no entren números con diferencia inferior a ocho hasta 500 y no superior.

if(numero<=492)
{
for(numero; numero<500;numero+= 8)
{
sumador = sumador + numero;
contador = contador + 1;
cout << numero << " , " ;
}
}
cout << "\n Esta es la suma: " << sumador << endl;
cout << "El numero total hasta 500 separado ocho posiciones es: " <<
contador << endl;
system("PAUSE");

2. La salida de este programa es una calculadora de operaciones básicas, mediante la implementación de


la sentencia switch.

#include<iostream>
using namespace std;
main()
{
int a, b;
char oper;
cout << "Introduzca la operación a realizar usando espacios:\n\n";
cin >> a >> oper >> b;

switch(oper)
{

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

case '+': cout << a << oper << b << " = " << a + b << endl;
break;
case '-': cout << a << oper << b << " = " << a - b << endl;
break;
case '*': cout << a << oper << b << " = " << a * b << endl;
break;
case '/': cout << a << oper << b << " = " << a / b << endl;
break;
case '%': cout << a << oper << b << " = " << a % b << endl;
break;
default: break;
}
}

3.1 Apropiación.

Entorno gráfico

Con el aplicativo Dev C++ crearemos un nuevo proyecto: seleccione menú Archivo – nuevo- proyecto

Selecciona aplicación en consola

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Solicita el nombre del proyecto

Estructura básica

La declaración de las librerías se debe hacer al inicio de la codificación, es importante indicar al


compilador las librerías que se necesitan para verificar la sintaxis en el código.
Como se observa en el pantallazo las librerías están al inicio del código de color verde (include).

#include hace referencia a diferentes librerías.


Iostream permite el manejo de salidas y entradas” cout" y "cin” (funciones de ingresar y mostrar
datos y operaciones más comunes como +. -, *, /)
Math() cálculos matemáticos y conversiones ( coseno, raíz cuadrada, potencia)

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Main(), para abrir el principal se maneja llave de apertura "{" y se cierra con otra llave "}"
System (“pause”), permite ver los resultados hasta que se digite cualquier tecla (congela pantalla) .
Getch(), permite visualizar los resultados, necesita la librería conio.
\n, indica al programa que debe dar un enter o salto de línea.
\t , indica al programa que debe hacer una tabulación o una sangría.
Los comentarios se evidencian dos formatos:

1. Cuando se quiere comentar más de una línea


/* . . . . . . . */
2. Solo una línea
// . .

Luego se procede a guardar el programa, se aconseja dar el mismo nombre del proyecto

Para verificar el programa (ejecutar)

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Inicio del manejo del programa y uso de While (mientras – condición – haga)

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Parametros
int main(int argc, char *argv[])
Manejo de for (para=Variable inicial, condición e incremento)

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Ejemplo arreglo lineal

Manejo de la estructura if (si) – suprograma (método)

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Manejo de la estructura IF – Else

Manejo función suma(), donde realiza la operación y se imprime en el principal.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Ejecución

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Manejo de la estructura switch

Se están dando 5 opciones con letras del abecedario y cada una tiene un número de equivalencia.

Ejercicio Transmilenio modificado con la hora valle.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Ámbito de las variables

Dependiendo de dónde se declaren las variables, podrán o no ser accesibles desde distintas partes del
programa. Es decir, su ámbito de acceso y temporal dependerá del lugar en que se declaren.
Las variables declaradas dentro de un bucle, serán accesibles sólo desde el propio bucle, esto es, tendrán
un ámbito local para el bucle. Esto es porque las variables se crean al iniciar el bucle y se destruyen cuando
termina. Evidentemente, una variable que ha sido destruida no puede ser accedida, por lo tanto, el ámbito
de acceso está limitado por el ámbito temporal.
Las variables declaradas dentro de una función, y recuerda que main también es una función, sólo serán
accesibles para esa función, desde el punto en que se declaran hasta el final. Esas variables son variables
locales o de ámbito local de esa función.
Al igual que ocurre con las variables locales de bucle, en las de función, las variables se crean al iniciar la
función y se destruyen al terminar.
Las variables declaradas fuera de las funciones, serán accesibles desde todas las funciones definidas después
de la declaración. Diremos que esas variables son globales o de ámbito global.
El ámbito temporal de estas variables es también global: se crean junto con el programa, y se destruyen
cuando el programa concluye.
Las variables globales son las únicas que son inicializadas automáticamente con valor cero cuando se
declaran. Esto no sucede con ninguna variable local.
En todos los casos descritos, el ámbito temporal coincide con el de acceso: las variables que no pueden ser
accedidas es porque no existen todavía o porque han sido destruidas. Más adelante veremos casos en que
estos ámbitos no coinciden.
Una variable global declarada después de la definición de una función no será accesible desde esa función,
por eso, normalmente se declaran las variables globales antes de definir las funciones. Pero esto es hablando
de forma general, en realidad, en C++ está mal visto usar variables globales, ya que se consideran poco
seguras.

Variables globales.
Son variables declaradas fuera de cualquier función, normalmente al comienzo del programa.
Las variables globales son accesibles desde su declaración hasta el final del programa por todas las funciones
que lo forman.

#include <stdlib.h>// Ejemplo de variable global


#include <iostream>
using namespace std;
int x = 1;//se declara x como global.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

void funcion();
int main()
{
cout << x << endl; // muestra 1
x++;
cout << x << endl, // muestra 2
//se llama a una función que accede a
//la variable global x
funcion();
cout << x << endl, // muestra 4
system("pause");
}
void funcion()
{
x = x * 2;//la función tiene acceso a la variable global x
}

En el ejemplo se ha declarado la variable x como global. En el momento de la declaración se asigna memoria


y comienza a estar accesible. Tanto main como la función tienen acceso a la variable x y por tanto pueden
modificar su valor.
La variable global deja de estar accesible cuando acaba la ejecución del programa.

Variables locales.
Las variables locales son las que se declaran dentro de una función. Son accesibles desde el punto
donde se declaran hasta el final del bloque donde se han declarado. Los límites de los bloques
están definidos por las llaves de apertura y cierre { }. Normalmente el final del bloque coincide con
el final de la función. Si el bloque donde se ha declarado la variable local contiene a su vez otros
bloques, también son accesibles dentro de ellos.
Las variables locales se destruyen cuando se sale del bloque donde han sido declaradas.
Los parámetros formales (los que aparecen en la cabecera de una función) se consideran variables
locales de la función.

El siguiente programa muestra el uso de variables locales. El programa lee 5 números por teclado
y calcula si el número es primo. Para comprobar si el número leído es primo se utiliza una función
que recibe el número y devuelve true o false según el número sea primo o no.

#include <iostream>
#include <stdlib.h>
using namespace std;
bool es_primo(int);
int main()
{ int numero, i; // variables locales de main
cout << "Introduzca 5 numeros enteros > 0: ";
for(i=1;i<=5;i++)
{
do
{

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

cout << "numero " << i << ": ";


cin >> numero;
}
while(numero <= 0);
if (es_primo(numero))
cout << "Es primo" << endl;
else
cout << "No es primo" << endl;
}
system("pause");
}
//función que comprueba si un número es primo el parámetro n es una variable local de la función
bool es_primo(int n)
{
int i=2; // i es una variable local de la función
if(n==1)
return true;
else
{
while(n%i!=0)
i++;
if(i==n)
return true;
else
return false;
}
}

Ocultación de variables

Puede ocurrir que una variable global y otra local tengan el mismo nombre. Cuando ocurre esto,
la variable global queda oculta en el ámbito de accesibilidad de la local del mismo nombre.
Para acceder a una variable global que ha quedado oculta por otra local se utiliza el operador de
resolución de ámbito ::

#include <stdlib.h>// Ejemplo de ocultación de variables


#include <iostream>
using namespace std;
int a = 10; //variable global
int main()
{
int a = 5; //variable local de main oculta la variable global con el mismo nombre
cout << a << endl; //muestra 5
cout << ::a << endl; //acceso a la variable global mediante ::
//muestra 10
system("pause");
}

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Variables de bloque.

Una función puede contener bloques definidos dentro de otros. Los límites de los bloques están
definidos por las llaves de apertura y cierre { }.
El ámbito de una variable declarada dentro de un bloque comienza en el punto en que se declara
hasta el final del bloque donde se ha declarado (llave final del bloque).
Una variable de bloque se destruye cuando acaba la ejecución del bloque donde se ha declarado.

Un ejemplo muy usual de declaración de variables dentro de un bloque es hacerlo en las


instrucciones for:

for(int i = 1; i<=20; i+=2)


{
cout << i << endl;
}

La variable i se ha declarado dentro del for y solo es accesible dentro de él si a continuación de la


llave final del for escribimos:
cout << i << endl;
se producirá un error de compilación: la variable i no existe fuera del for y el compilador nos dirá
que no está declarada.
Una variable puede quedar oculta (no accesible) si hay otro bloque anidado y se declara otra
variable con el mismo nombre.
La variable declarada en el bloque interior oculta a la primera variable y la hace inaccesible en el
bloque interior.

3.2 Transferencia del conocimiento

1. Pasar a C++ los ejercicios manejados en LPP correspondientes al anterior taller de algoritmia.

Ejercicios de programación utilizando Condiciones sencillas y anidadas:

2. Dado un número entero, determinar si es primo o no.

3. Escriba un programa que lea temperaturas expresadas en grados Fahrenheit y las convierta a
grados Celsius mostrándola. El programa finalizará cuando lea un valor de temperatura igual a 999.
La conversión de grados Fahrenheit (F) a Celsius (C) está dada por
C = 5/9(F − 32).
4. Escriba un programa que cuente por pantalla del 1 al 10 en español. Utiliza una estructura
switch que incluya la cláusula default.
5. Programa que lea dos números por teclado y muestre el resultado de la división del primer
número por el segundo. Se debe comprobar que el divisor no puede ser cero.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

6. El instructor de Matemáticas quiere determinar cuál es la calificación más alta del grupo,
formando grupos de tres calificaciones y las captura. Desarrollar un programa en C++, el cual
determine el mayor de las tres calificaciones, el programa debe mostrar en pantalla la
calificación mayor.

7. Un cliente ordena cierta cantidad de brochas de cerda, rodillos y sellador; las brochas de
cerda tienen un 20% de descuento y los rodillos un 15% de descuento. Los datos que se tienen
por cada tipo de artículo son: la cantidad pedida y el precio unitario. Además, si se paga de
contado todo tiene un descuento del 7%. Elaborar un programa en C++ que calcule y muestre en
pantalla el costo total de la orden, tanto para el pago de contado como para el caso de pago de
crédito.

8. El departamento de Recursos Humanos de la empresa café Combate quiere desarrollar un


calendario en línea para sus empleados, para calendarizar el número de días hábiles de trabajo
de tal manera que el empleado introduzca un número de mes (1 a 12), y visualice el número de
días de ese mes. Debe considerar que el mes 2 corresponde a febrero que tiene 28 días.
Desarrolle un programa en C++ que cumpla con las especificaciones mencionadas y muestre en
pantalla el mes, el número de días.
Ejercicios de programación utilizando el estatuto SWITCH:

9. Escribir un programa que dado un número del 1 al 7 escriba el correspondiente nombre del
día de la semana.

10. En la clase de aritmética de la escuela secundaria técnica No. 35, el maestro les solicita al
departamento de sistemas que se le desarrolle un programa que pida al usuario un número
entero decimal entre 1 y 99, incluyendo los extremos y obtenga la correspondiente
representación en el sistema romano y su decimal, con el objetivo de poder explicar
mediante el programa visualmente el sistema de conversión a sus alumnos. El programa
mostrará en pantalla el número decimal y su conversión el sistema romano.

11. La empresa comercializadora Poncha vende escobas, recogedores y aromatizantes,


clasifica a sus clientes de a acuerdo a la frecuencia de compras con las condiciones siguientes:
a. Si el cliente es de la categoría 1 se le descuenta el 5%
b. Si el cliente es de la categoría 2 se le descuenta el 8% c. Si el cliente es de la categoría 3
se le descuenta el 12%
d. Si el cliente es de la categoría 4 se le descuenta el 15%
Cuando el cliente realiza una compra se generan los siguientes datos:
• Nombre del cliente
• Tipo de cliente
• Cantidad comprada de escobas, recogedora y aromatizante.
Desarrollar un programa en C++ que lea estos datos y calcule y muestre en pantalla:
• Nombre del cliente.
• Subtotal a pagar.
• Descuento.
• Total a pagar.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

12. Desarrollar un programa que muestre los pagos que recibirá un trabajador por cada hora
laboral en base a la hora del día en que trabaja. El usuario deberá escribir el número de horas
trabajadas en cada uno de los horarios y el programa determinará el total de dinero a recibir por
el trabajador y también dirá si ganó más dinero por horas extras que por horas de oficina
trabajadas o viceversa, o si el trabajador ganó exactamente lo mismo por horas extras que por
horas de oficina. De la galería de productos, el usuario introducirá el código y el número de
unidades del producto que desea comprar. El programa determinará el total a pagar, como una
factura.

13. Realizar un programa que pida dos números enteros por teclado y muestra por pantalla el
siguiente menú:
MENU
1. Sumar
2. Restar
3. Multiplicar
4. Dividir
Elija la Opción Deseada:

El usuario deberá elegir una opción y el programa deberá mostrar el resultado por pantalla.
Además, para que en aquellos casos en los que el usuario elige una opción distinta de las 4
posibles el programa muestre un mensaje de error (por ejemplo: “Error. Opción no válida” y a
continuación finalice.

14. Programa que me permita calcular el porcentaje de hombres, de mujeres y de niños de un


número cualquiera de personas (se debe pedir el número de personas, el número de hombres, el
número de mujeres y el número de niños), enviar el porcentaje de hombres, de mujeres y de niños
por pantalla.

Condicionales:

15. Una papelería debe calcular las diferentes cantidades de fotocopias a sacar. El precio
unitario de cada fotocopia es de $100 debe digitarse la cantidad de copias. Mostrar el total a
pagar teniendo en cuenta que se tiene una política de descuento para cantidades que se
obtengan del mismo original así: el 12% para fotocopias entre 100 y 200, del 15% para fotocopias
entre 201 y 400, y del 18% para fotocopias por cantidades mayores a 400.

Estructuras Iterativas:

16. Imprimir un listado con los números impares desde 1 hasta 99 y seguidamente otro listado
con los números pares desde 2 hasta 100.
17. Imprimir los 100 primeros números de Fibonacci. Recuerde que un número de Fibonacci se
calcula como la suma de los dos anteriores así: 0, 1, 1, 2, 3, 5, 8,13…
18. Calcular el factorial de un número N (siendo N un número que se lee).
19. Leer 20 números y encontrar el mayor y el menor valor leídos.
20. Leer un dato y almacenarlo en la variable n. Calcular el valor de 2 elevado a la potencia n

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Para realizar la actividad propuesta para la primera unidad debe primero.


1. Revisar los materiales del curso
2. Descargar la actividad correspondiente al taller de C++.
3. Resolver la actividad y apoyándose en el material propuesto.
4. Enviar la actividad por el enlace indicado en el botón actividades.

Abstracción: habilidad de tomar algo como un todo, sin tener en cuenta los detalles. El propósito
de la abstracción es entender algo sin basarse en su estructura interna. La programación
orientada a objetos se basa en la abstracción tanto de datos como funcional.

Ámbito: parte del programa donde es visible un identificador.

Análisis: Proceso de estudio exhaustivo de las especificaciones de un sistema y el


establecimiento de un modelo del problema y su contexto.

Argumento: parte variable o entrada de una función.

Atributo: miembro de datos de una clase. Define una característica para cada objeto de la clase.

Atributo de clase: Atributo cuyo valor es común a todos los objetos de una clase. En C++ son los
miembros estáticos.

Cadena: Secuencia de caracteres de texto (en inglés String).

Ciclo de vida (de desarrollo de un sistema): Proceso de creación de sistemas hardware/software


desde su concepción hasta su realización, pasando por el establecimiento de requisitos, el
análisis, el diseño, la implementación, las pruebas y el mantenimiento.

Clase: Definición de un tipo de objetos que tienen unas características comunes. Una clase es un
patrón para crear nuevos objetos. Una clase contiene tanto atributos como métodos.

Clase abstracta: Clase que se usa para definir las características comunes de un conjunto de
clases. Una clase abstracta sirve como un patrón que define una serie de clases relacionadas.
En C++ este término se usa específicamente para las clases que tienen un método virtual puro.

Clase base / padre / madre / ascendiente / superclase: Clase que define un conjunto de
características comunes a todas las clases derivadas de ella.

Clase contenedora: Una clase de objetos contenedores. Por ejemplo conjunto, diccionarios, pilas,
listas.

Clase derivada / hija / descendiente / subclase: Clase que es descendiente o es derivada de otra.
Hereda las propiedades de la clase base.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Clases genéricas o parametrizadas (templates): Plantilla para generar clases reales que puedan
diferir solamente en unos parámetros y no en el código fuente. Los parámetros pueden ser tipos
o clases y otros valores constantes, como por ejemplo el tamaño de una pila.

Compilación: Traducción de un código fuente a su código objeto (código máquina generalmente)


listo para el enlazado.

Constructor: En C++ una operación que inicializa el objeto al crearse.

Contenedor: Objeto que existe para contener otros objetos y que proporciona operaciones para
acceder o iterar sobre los elementos que contiene.

Declaración: Una declaración introduce nombres y sus tipos dentro del programa sin que
necesariamente se defina un objeto o función asociado. Sin embargo, muchas declaraciones
sirven como definiciones.

Encapsulación: Habilidad de poner todos los datos y funcionalidades de un tipo de datos en una
estructura controlada y abstracta, de forma que esté aislada del resto del sistema. Las clases
permiten al programador la libertad de encapsular atributos y métodos en una única estructura.

Estado: Valores de los atributos y enlaces de un objeto en un momento dado.

Evento: Suceso que ocurre instantáneamente en un punto del tiempo.

Excepción: Es una situación anómala o error que se puede presentar durante la ejecución de un
programa. Elevar una excepción es abandonar la ejecución normal de un programa para indicar
que el error ha tenido lugar. El manejador de excepciones se encargará de su tratamiento.

Extensibilidad: Propiedad del software por la cual algunos objetos o funcionalidades pueden
añadirse a un sistema con poca o ninguna modificación del código existente.

Función: Relación operacional entre varias entidades. Se suelen representar como una
correspondencia entre unos argumentos (entrada) y un resultado (salida).

Generalización: Relación inversa a la de especialización, en la cual se identifican las


características comunes a todos los objetos que se generalizan y se ignoran las diferencias.

Herencia múltiple: Habilidad de heredar de varias clases bases.

Identificador: Un identificador nombra un objeto, función, conjunto de funciones sobrecargadas,


miembros de clases, tipos, plantillas, valores o etiquetas. Los programas en C++ usan
identificadores para referirse a cada elemento del lenguaje.

Instancia: Realización de una clase. Un objeto es una instancia de una clase.

Instanciación: Acción de instanciar una clase, es decir, el proceso de crear un objeto. Similar a
construcción.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Integridad: Protección contra el acceso o modificación del código no autorizadas. No se debe


confundir con seguridad.

Iterador:Mecanismo que permite recorrer una estructura que contiene muchos objetos como, por
ejemplo, un contenedor.

Jerarquía de clases: Cuando unas clases heredan de otras se forma una estructura arbórea que
se denomina jerarquía. Se puede pensar una jerarquía de clases como un árbol de familia, en el
que las clases derivadas son las hijas de las clases base (madres).

Lenguaje orientado a objetos: Lenguaje que tiene la capacidad de definir clases y objetos y que
permite la herencia y el polimorfismo.

Método: Define una operación sobre un objeto. Es la implementación de un mensaje para una
clase. Cuando se envía un mensaje a un objeto, se ejecuta el método definido por la clase del
objeto. En C++ los métodos son funciones miembros de las clases que se invocan de la misma
forma que las funciones.

Miembro: Cada elemento definido dentro de una clase. En C++, los miembros son tanto los
atributos (datos) como los métodos (funciones).

Módulo: Subconjunto coherente del sistema conteniendo un grupo de funciones, clases y sus
relaciones.

Objeto: Es la instancia de una clase. Un objeto es una entidad que tiene un estado y un conjunto
definido de operaciones (métodos) que operan sobre este estado. El estado se representa por un
conjunto de atributos del objeto. Las operaciones asociadas con el objeto dan servicio a otros
objetos (clientes) que piden estos servicios cuando se necesita alguna operación (por medio de
mensajes).

Operador: Función que tiene un nombre, generalmente no alfanumérico, y que se invoca sin
paréntesis y en distintas posiciones (prefijo, postfijo o infijo).

Parámetro: Parte variable de una plantilla o macro que permite obtener instancias diferentes.

Polimorfismo: Habilidad de enviar el mismo mensaje a objetos de diferentes clases. Estos objetos
reciben el mismo mensaje pero responderán de distinta forma. El polimorfismo en C++ se
consigue a través de los métodos virtuales y punteros o referencias a clases bases.

Privado (referido a un miembro de una clase): Miembro sólo accesible por métodos de su clase.

Procedimiento: Conjunto de pasos o suboperaciones para resolver un problema. Algoritmo. En


los lenguajes de programación indica una función que no retorna ningún valor. En C++ los
procedimientos son funciones que retornan void.

Programación orientada a objetos (POO): Estilo de programación que conduce a un sistema


software basado en la creación y manipulación de objetos.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital
SERVICIO NACIONAL DE APRENDIZAJE SENA
Procedimiento de Desarrollo Curricular
TALLER DE APRENDIZAJE

Protegido (referido a un miembro de una clase): Miembro sólo accesible por métodos de su
clase y descendientes.

Público (referido a un miembro de una clase):Miembro accesible por métodos de cualquier clase.

Puntero: Variable (o atributo de un objeto) que contiene una referencia explícita a otro. Se ha de
realizar una dirección para acceder al objeto referenciado.

Referencia: Variable o atributo de un objeto que contiene una referencia implícita a otro que no
requiere realizar una dirección para acceder al objeto referenciado.

Sobrecarga: Es la propiedad de que un mismo identificador tenga varios significados. En C++ hay
sobrecarga en las funciones y los operadores, donde puede haber un mismo nombre de función
para distintas operaciones sobre distintos argumentos. La llamada a una función u operador
sobrecargado se resuelve en tiempo de compilación basándose en el tipo de argumentos con el
que se llama.

TAD (Tipo Abstracto de Datos): Separación o abstracción del concepto de estructura de datos y
las operaciones a realizar sobre él, de su implementación. Esta implementación debe quedar
oculta.

Variable: Entidad que puede cambiar de estado. En C++ una variable es un dato de un tipo
fundamental o derivado (por ejemplo int, float, punteros), en contraposición a los objetos que son
instancias de una clase.

Visibilidad: Se dice que un identificador es visible en un punto dado del código fuente de un
programa si el compilador le puede asociar el elemento que denota el identificador.

Autor: Ing Victor Rincón - Centro de Materiales y Ensayos, Regional Distrito Capital

Potrebbero piacerti anche