Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Recursos informáticos.
Ingeniería en alimentos.
Grupo:1301
Periodo: 2022-1
Alumno:
Estructuras de control…………………………………………………………………..7
Funciones…………………………………………………………………………………8
CONCLUSIONES……………………………………………………………………….14
Introducción a C++
C++ es un lenguaje de programación de propósito general y de alto nivel con
facilidades para la programación a bajo nivel. Tiene un modelo de tipos de dato
estático y es un lenguaje que soporta tres paradigmas de programación:
programación procedimental, programación orientada a objetos y programación
genérica. Cuenta con abstracción de datos e identificación de tipo de dato en tiempo
de ejecución. Desde 1990, C++ ha sido uno de los lenguajes comerciales de
programación más populares1.
Desarrollado originalmente por Bjarne Stroustrup en 1983 en los Laboratorios Bell,
es empleado desde entonces y hasta el día de hoy. A pesar de su antigüedad, el
primer estándar del lenguaje fue ratificado en 1998 como ISO/IEC 14882:1998, cuya
última versión se dio en 2003 bajo ISO/IEC 14882:2003. Actualmente se está
desarrollando una nueva versión del lenguaje (informalmente conocida como
C++0x).
En particular, este lenguaje está pensado para seguir siempre los siguientes
lineamientos de diseño2:
C++ es diseñado para ser un lenguaje estáticamente tipado, de propósito general,
tan eficiente y portable como C.
C++ es diseñado para soportar directa y comprensivamente múltiples estilos de
programación: procedimental, abstracción de datos, orientación a objetos y
programación genérica.
C++ es diseñado para ofrecer al programador la posibilidad de escoger, aún cuando
éste pueda escoger incorrectamente.
C++ es diseñado para ser tan compatible con C como sea posible, por ende
ofreciendo una transición suave desde C.
C++ se abstiene de incluir características que puedan ser específicas de una
plataforma o que no sean de propósito general.
C++ no añade sobrecarga de características que no son usadas.
C++ es diseñado para funcionar sin un ambiente de programación sofisticado.
Antes de la ratificación del estándar en 1998, HP creó una librería basada en
plantillas, que posteriormente amplió SGI3. Originalmente conocida como la
Standard Template Library (STL), el estándar ratificado en 1998 la incorporó y
extendió dando lugar a la Librería Estándar de C++. Esta librería incorpora
herramientas poderosas como los contenedores, iteradotes, manipulación de
cadenas de texto, flujos de datos (streams) y manipulación de archivos, y algoritmos
comunes (i.e. búsqueda y ordenamiento de contenedores), entre otros.
Debido a que siempre se ha pretendido que sea compatible lo más posible con C,
C++ acepta la programación procedimental. Esto permite aprovechar ventajas como
diseño a bajo nivel, eficiencia en uso de memoria y en tamaño de los binarios finales,
así como simplicidad en la codificación. En particular, la manipulación de memoria
y la posible incorporación de lenguaje ensamblador hacen que C++ tenga mucha
potencia para trabajar a bajo nivel.
Funciones y procedimientos
En el punto anterior hemos definido los algoritmos como procedimientos que
siempre terminan, y procedimiento como una secuencia de instrucciones que
pueden realizarse mecánicamente, aquí consideraremos que un procedimiento es
un algoritmo que recibe unos parámetros de entrada, y una función un
procedimiento que, además de recibir unos parámetros, devuelve un valor de un
tipo concreto. En lo que sigue emplearé los términos procedimiento y función
indistintamente. 5
Lo más importante de estas abstracciones es saber cómo se pasan los
parámetros, ya que según el mecanismo que se emplee se podrá o no modificar
sus valores. Si los parámetros se pasan por valor, el procedimiento recibe una
copia del valor que tiene la variable parámetro y por lo tanto no puede modificarla,
sin embargo, si el parámetro se pasa por referencia, el procedimiento recibe una
referencia a la variable que se le pasa como parámetro, no el valor que contiene,
por lo que cualquier consulta o cambio que se haga al parámetro afectará
directamente a la variable. ¿Por qué surgieron los procedimientos y las funciones?
Sabemos que un programa según el paradigma clásico es una colección de
algoritmos, pero, si los escribiéramos todos seguidos, nuestro programa sería
ilegible. Los procedimientos son un método para ordenar estos algoritmos de
alguna manera, separando las tareas que realiza un programa. El hecho de
escribir los algoritmos de manera independiente nos ayuda a aplicar el diseño
descendente; podemos expresar cada subproblema como un procedimiento
distinto, viendo en el programa cual ha sido el refinamiento realizado. Además,
algunos procedimientos se podrán reutilizar en problemas distintos.
Por último, indicaremos que el concepto de procedimiento introduce un nivel de
abstracción
importante en la programación ya que, si queremos utilizar un procedimiento ya
implementado para resolver un problema, sólo necesitamos saber cuáles son sus
parámetros y cuál es el resultado que devuelve. De esta manera podemos mejorar
o cambiar un procedimiento sin afectar a nuestro programa, siempre y cuando no
cambie sus parámetros, haciendo mucho más fácil la verificación de los
programas, ya que cuando sabemos que un procedimiento funciona
correctamente no nos debemos volver a preocupar por él.
El lenguaje C++
Tipos de datos y operadores
Los tipos elementales definidos en C++ son:
char, short, int, long, que representan enteros de distintos tamaños (los caracteres
son enteros de 8 bits)
float, double y long double, que representan números reales (en coma flotante).
Para declarar variables de un tipo determinado escribimos el nombre del tipo
seguido del de la variable. Por ejemplo:
11
int i;
double d;
char c;
Sobre los tipos elementales se pueden emplear los siguientes operadores
aritméticos:
+ (más, como signo o como operación suma)
- (menos, como signo o como operación resta)
* (multiplicación)
/ (división)
% (resto)
Y los siguientes operadores relacionales:
== (igual)
!= (distinto)
< (menor que)
> (mayor que)
<= (menor o igual que)
>= (mayor o igual que)
El operador de asignación se representa por =.
En la bibliografía del C++ se suelen considerar como tipos derivados los
construidos mediante
la aplicación de un operador a un tipo elemental o compuesto en su declaración.
Estos
operadores son:
* Puntero
& Referencia
[] Vector (Array)
() Función
Los tipos compuestos son las estructuras (struct), las uniones (unión) y las clases
(class).
Estructuras de control
Como estructuras de control el C++ incluye las siguientes construcciones:
condicionales:
if instrucción de selección simple
switch instrucción de selección múltiple
bucles:
do-while instrucción de iteración con condición final
while instrucción de iteración con condición inicial
for instrucción de iteración especial (similar a las de repetición con contador)
de salto:
break instrucción de ruptura de secuencia (sale del bloque de un bucle o
instrucción condicional)
continue instrucción de salto a la siguiente iteración (se emplea en bucles para
saltar a la posición donde se comprueban las condiciones)
goto instrucción de salto incondicional (salta a una etiqueta)
return instrucción de retorno de un valor (se emplea en las funciones)
12
Veremos cómo se manejan todas ellas en el punto dedicado a las estructuras de
control
Funciones
Una función es una parte con nombre de un programa que puede ser invocada o
llamada desde cualquier otra parte del programa cuando haga falta. La sintaxis de
las funciones depende de si las declaramos o las definimos.
La declaración se escribe poniendo el tipo que retorna la función seguido de su
nombre y de una lista de parámetros entre paréntesis (los parámetros deben ser
de la forma tipo-param
[nom_param], donde los corchetes indican que el nombre es opcional), para
terminar la declaración ponemos punto y coma (recordar que una declaración es
una sentencia).
Para definir una función se escribe el tipo que retorna, el nombre de la función y
una lista de parámetros entre paréntesis (igual que antes, pero aquí si que es
necesario que los parámetros tengan nombre). A continuación se abre una llave,
se escriben las sentencias que se ejecutan en la función y se cierra la llave.
Un ejemplo de declaración de función sería:
int eleva_a_n (int, int);
Y su definición sería:
int eleva_a_n (int x, int n)
{
if (n<0) error ("exponente negativo");
switch (n) {
case 0: return 1;
case 1: return x;
default: return eleva_a_n (x, n-1);
}
}
Por defecto los parámetros se pasan por valor, para pasarlos por referencia
usaremos punteros y referencias. Veremos más ampliamente las funciones en el
punto dedicado a ellas.
CONCLUSIONES
· Los lenguajes de alto nivel se desarrollaron con el objetivo de ser más accesibles
y entendibles por la mayoría de programadores, de manera que los programadores
pudieran concentrarse más en resolver la tarea o los problemas y no en el lenguaje
que la maquina tenía que entender.
· C++ surge de fusionar dos ideas: la eficiencia del lenguaje C para poder acceder
al hardware al ejecutar tareas que realmente demandaban recursos de memoria; y
las ideas de abstracción que representan las el nuevos conceptos de clases y
objetos.
· El lenguaje C++ posee una serie de características que lo hacen distinto del
lenguaje C. Aunque es posible verlo como una simple extensión del lenguaje C, en
realidad implica un cambio en la forma de pensar por parte del programador.
C++ surge de fusionar dos ideas: la eficiencia del lenguaje C para poder acceder al
hardware al ejecutar tareas que realmente demandaban recursos de memoria; y las
ideas de abstracción que representan las el nuevos conceptos de clases y objetos.
El lenguaje C++ posee una serie de características que lo hacen distinto del
lenguaje C. Aunque es posible verlo como una simple extensión del lenguaje C, en
realidad implica un cambio en la forma de pensar por parte del programador.
Referencias
1. http://en.wikipedia.org/wiki/C++
3. http://www.sgi.com/tech/stl/
4. https://sites.google.com/site/fernandoagomezf/programacion-en-c/tips-de-programador-
c/editorial-de-c/introduccion-a-c