Está en la página 1de 12

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA


EDUCACIÓN UNIVERSITARIA
CIENCIA Y TECNOLOGÍA
INSTITUTO UNIVERSITARIO POLITÉCNICO
“SANTIAGO MARILLO”
EXTENSIÓN COL – SEDE CIUDAD OJEDA

Unidad I: CONCEPTOS FUNDAMENTALES DEL LENGUAJE DE


PROGRAMACION C++.

Autor: Pietro Fattorello


C.I: 27.126.130
Materia: Programación No Numerica

Ciudad Ojeda, Mayo de 2021


1. TIPOS DE DATOS C++

Un registro, en programación, es un tipo de dato estructurado formado por la


unión de varios elementos bajo una misma estructura. Estos elementos pueden
ser, o bien datos elementales (entero, real, carácter,...), o bien otras estructuras
de datos. A cada uno de esos elementos se le llama campo. Se debe registrar
vendedores (dni, nombres, apellidos, dirección (calle, numero, urbanización) )
con sus respectivos productos vendidos (producto, cantidad, precioventa).
Asimismo, implementa el sistema usando registros y funciones. El sistema debe
permitir:
 Registrar “N” vendedores con sus respectivos “Pk” productos.
 Mostrar todos los vendedores con todos sus datos y sus respectivos
productos.
 Mostrar los datos de un vendedor específico (ingresando su número de
orden)
 Mostrar los productos vendidos de un vendedor específico (ingresando su
número de orden): producto, cantidad, precioventa, subtotal, finalmente el
Total.
 Subtotal = cantidad * precioventa
 Total = sumatoria de los subtotales
 Eliminar un vendedor específico (ingresando su número de orden)
 Búsqueda por dni: ingresa el dni de un vendedor y que muestre su dirección.
Existen varios tipos de variables en lñenguaje C++, estas pueden ser de tipo
lógico, datos enteros, datos decimales, tipo carácter y cadena de caracteres o
strings. Por otro lado, C++ también permite la modificación de algunas de las
propiedades de cada tipo. A continuación, vamos a analizar más en profundidad
estos tipos de variables:

TIPO TAMAÑO RANGO DE VALORES


Char 1 byte -128 a 127
Int 2 bytes -32768 a 32767
Float 4 bytes 3'4 E-38 a 3'4 E+38
Double 8 bytes 1'7 E-308 a 1'7 E+308
bool 1 byte 0y1
2. PALABRAS RESERVADAS EN C++.

En C, como en cualquier otro lenguaje, existen una serie de palabras clave


(keywords) que el usuario no puede utilizar como identificadores (nombres de
variables y/o de funciones). Estas palabras sirven para indicar al computador que
realice una tarea muy determinada (desde evaluar una comparación, hasta
definir el tipo de una variable) y tienen un especial significado para el compilador.
El C es un lenguaje muy conciso, con muchas menos palabras clave que otros
lenguajes.

TÉRMINO SIGNIFICADO
stream flujo de datos
cin entrada estándar
cout salida estándar
cerr salida de mensajes de error
streambuf operación de I/O a bajo nivel
istream operación de I/O a alto nivel
ostream operación de I/O a alto nivel
iostream operación de I/O a alto nivel
ios clase para el manejo de la I/O a alto nivel
setf() método de la clase ios para inicializar los indic de formato
flags() metodo de la clase ios para inicializar los indic de formato
unsetf() metodo de la clase ios para desactivar los indic de formato
width() función declarada en las clases istream, ostream e iostream
precision() función declarada en las clases istream, ostream e iostream
fill() función declarada en las clases istream, ostream e iostream
endl manipulador sin argumentos definidos en iomanip.h
flush manipulador sin argumentos definidos en iomanip.h
<< ó >> operadores de inserción o extracción de flujo
ifstream Clase necesaria para la inserción de flujo de datos en fichs.
ofstream Clase necesaria para la extracción de flujo de datos en fichs.
fstream Clase necesaria para la I/O de flujo de datos en fichs.
fstream.h Librería para poder leer o escribi desde ficheros.

TABLA DE MANIPULACIÓN DE ENTRADA / SALIDA

TÉRMINO SIGNIFICADO
dec, hex y oct establecen base para enteros ws: se saltan los blancos iniciales
endl se imprime un ‘\n’ y se vacía el buffer de salida
flush se vacía el buffer de salida
setw(int w) establece la anchura mínima de campo
setprecision(int p) establece el número de cifras
setfill(char ch) establece el carácter de relleno
setiosflag(long i) equivale al indicador setf()
unsetiosflag(long i) equivale a unsetf()
TABLA DE INDICADORES DE FORMATo

TÉRMINO SIGNIFICADO
skipws descartan los blancos iniciales a la entrada
left la salida se alinea a la izquierda
rigth la salida se alinea a la derecha
internal alinea el signo y los caracteres indicativos de la base por la
izq y las cifras por la der
dec salida decimal para enteros (defecto)
oct salida octal para enteros
hex salida hexadecimal al para enteros
showbase se muestra la base de los valores numéricos
showpoint se muestra el punto decimal
uppercase los caracteres de formato aparecen en mayúsculas
showpos se muestra el signo (+) en los valores positivos
scientific notación científica para coma flotante
fixed notación normal para coma flotante
unitbuf salida sin buffer (se vuelca cada operación)
adjustfield es una combinación excluyente de left, rigth e internal
basefield una combinación excluyente de dec, oct e hex
floatfield es una combinación excluyente scientific y fixed

3. OPERADORES ARITMÉTICOS.

Este tipo de operador es usado para operaciones aritméticas, permite


modificarlas, sumar, restar, combrobar si son iguales o distintas, etc. si has
seguido el curso de javascript, o conoces algo de programación en algún otro
lenguaje, ya sabrás lo que son los operadores. Si no es así puedes ver aquí
cuáles son y cómo funcionan. De todas formas siempre hay algunas cosas
que cambian de unos lenguajes de programación a otros, por lo que conviene
mirar este tema para saber cuáles son. Los operadores aritméticos nos
permiten hacer operaciones aritméticas con las variables, estas deben ser de
tipo "numero" aunque algunas operaciones pueden hacerse también con
variables de tipo "texto". Los que podemos utilizar son los siguientes:

OPERADORES SÍMBOLO USO


Suma + Num1 + num2 Suma num1 y
num2
Incremento ++ Nume1++ Se suma uno al
valor de num1
Resta - Num1 - num2 Resta num1
menos num2
Decremento -- Nume1-- Se resta uno al
valor de num1
Multiplicación * Num1 * num2 Se multiplica
num1 por num2
División / Num1 / num2 Se divide num1
entre num2
resto % Num1 % num2 Resto de num1
entre nume2

4. OPERADORES DE INCREMENTO Y DECREMENTO.

Son unarios operadores que se suman o se restan uno, hacia o desde su


operando, respectivamente. Se implementan comúnmente en lenguajes de
programación imperativos. Los lenguajes similares a C presentan dos versiones
(pre y post) de cada operador con semántica ligeramente diferente. En los
lenguajes derivados sintácticamente de B (incluido C y sus diversas derivadas),
el operador de incremento se escribe como ++ y el operador de decremento se
escribe como --. Varios otros lenguajes usan funciones inc (x) y dec (x). El
operador de incremento aumenta y el operador de disminución disminuye el valor
de su operando en 1.
El operando debe tener un tipo de datos aritmético o puntero y debe hacer
referencia a un objeto de datos modificable. Los valores de los punteros
aumentan (o disminuyen) en una cantidad que los hace apuntar al elemento
siguiente (o anterior) adyacente en la memoria. En idiomas que admiten ambas
versiones de los operadores: El pre -increment y pre operadores de incremento
- decrement (o decremento) de su operando por 1, y el valor de la expresión es
el valor resultante incrementado (o disminuye).
Los operadores post- incremento y post- decremento aumentan (o
disminuyen) el valor de su operando en 1, pero el valor de la expresión es el
valor del operando antes de la operación de incremento (o decremento). En
lenguajes donde incrementar / decrementar no es una expresión (por ejemplo,
Go), solo se necesita una versión (en el caso de Go, solo operadores de
publicación).
Dado que el operador de incremento / decremento modifica su operando, el
uso de dicho operando más de una vez dentro de la misma expresión puede
producir resultados indefinidos. Por ejemplo, en expresiones como x - ++x, no
está claro en qué secuencia se deben realizar las operaciones de resta e
incremento. Estas expresiones generalmente invocan un comportamiento
indefinido y deben evitarse. Ahora bien, PHP ofrece soporte de operadores de
pre- y post- (incremento o decremento), estilo del lenguaje C y Java. Los
símbolos ++ y -- aplicados a una variable, permiten incrementar o decrementar
su valor. Su efecto es distinto según se empleen precediendo o siguiendo el
nombre de la variable.

OPERADOR EJEMPLO EFECTO


Pre-incremento ++$a Incrementa $a en uno y
después devuelve a.
Post-incremento $a++ Devuelve $a y después
incrementa $a en uno.
Pre-decremento --$a Decrece el valor de $a en
uno y después devuelve $a.
Post-decremento $a-- Devuelve $a y después
decrece su valor en uno.

5. OPERADORES RELACIONALES Y LÓGICOS.

Los operadores relacionales nos permiten comparar expresiones de tipos


compatibles, devolviendo un resultado de tipo lógico: la comparación
es verdadera o falsa. Por ejemplo, la expresión (3 + 4) > 12 sería falsa, ya que 7
es menor que 12. Los operadores relacionales son lo siguientes:

SÍMBOLO DESCRIPCIÓN EJEMPLO DE EJEMPLOS = RESULTADO


ESTRUCTURA DEL EJEMPLO
< menor que (a<b) 5<6 = V
> mayor que (a>b) 5>6 = F
<= menor o igual que (a<=b) 5<=5 = V
>= mayor o igual que (a>=b) 5>=6 = F
== igual que (a==b) 5==6 = F
=! distinto que (a=!b) 5=!6 = V

Por otro lado, los operadores lógicos se utilizan para establecer relaciones
entre valores lógicos. Estos valores pueden ser resultado de una expresión
relacional. Hay tres operadores que realizan las conectividades lógicas Y (AND),
O (OR) y NEGACION (NOT).
SÍMBOLO DESCRIPCIÓN COMPARACIONES RESULTADO DE EJEMPLO
COMPARACIONES
&& Y(AND) V && V V 7>2 && 3<7
V && F F 7>2 && 3>7
F && V F 2>7 && 7>3
F && F F 2>7 && 3>7
II O (OR) V II V V 8==pow(2,3) II 4>2
V II F V 9==pow(3,2) II 2>4
F II V V 3>9 II 8==pow(2,3)
F II F F 4==pow(2,3) II 5>7
! NEGACION !F V ! (3>6)
(NOT)
!V F ! (6>3)
6. ESTRUCTURAS DE DATOS (REGISTROS).

Son tipos de datos formados por una colección finita de elementos no


necesariamente homogéneos. El acceso se realiza a través de una referencia al
nombre del registro seguido del campo específico al que se desea acceder y
delimitado por un punto.

Registro: auto nombre de registro

Código : entero
Campos Marca : cadena Tipos de Datos
Precio : real

7. SUBPROGRAMAS (FUNCIONES Y PROCEDIMIENTOS). PASÓ DE


PARÁMETROS EN SUBPROGRAMAS.

Un subprograma consta de tres elementos:

a. cabecera, donde se fija su clase y nombre, se describen sus parámetros


formales y, si es una función, se especifica el tipo de su resultado,
terminando todo ello con la palabra "is", expresando que a continuación
se desarrolla el subprograma.
b. declaraciones locales, de cualquier elemento declarable (tipos, variables,
constantes, ...), incluyendo la definición anidada de otros subprogramas.
c. el bloque de sentencias ejecutables del subprograma delimitado por las
palabras reservadas "begin" y "end" (esta última suele ir acompañada del
nombre del subprograma).
Ahora bien, si el subprograma es una función, entre las sentencias
ejecutables debe incluirse al menos una sentencia de retorno ("return") con
una expresión que indique el valor a devolver a quien la llamó; si la ejecución
de una función alcanza el final sin encontrar una sentencia de retorno, se
produce una excepción "Program_Error", dado que la sentencia de retorno
se utiliza en las funciones para especificar el valor a devolver. En los
procedimientos puede omitirse la sentencia de retorno cuando el único punto
de retorno se encuentra al final.
Una función es un subprograma que recibe, como argumentos o
parámetros, datos de tipo numérico o no numérico, y devuelve un único
resultado. Las funciones incorporadas al sistema se denominan funciones
internas, o intrínsecas; las funciones definidas por el usuario se llaman
funciones externas. El algoritmo o programa invoca la función con el nombre
de esta última en una expresión seguida de una lista de argumentos que
deben coincidir en cantidad, tipo y orden con los de la función que fue
definida.
Un procedimiento es un subprograma que ejecuta una tarea determinada.
Está compuesto por un conjunto de sentencias, a las que s le asigna un
nombre, o identificador. Constituyen unidades del programa, y su tarea se
ejecuta siempre y cuando encuentre el nombre que se le asignó a dicho
procedimiento. Los procedimientos deben ser declarados obligatoriamente
antes de que puedan ser llamados en el cuerpo del programa principal. Para
ser activados o ejecutados, deben ser llamados desde el programa en que
fueron declarados. Pueden recibir cero o más valores del programa principal
que lo llama y lo activa, y devolver cero o más valores a dicho programa
llamador. Todo procedimiento, al igual que un programa principal, consta de
una cabecera, que proporciona su nombre y sus parámetros de
comunicación; de una sección de declaraciones locales y el cuerpo de
sentencias ejecutables. Las ventajas más destacables de usar
procedimientos son:
a. Facilitan el diseño top-down.
b. Se pueden ejecutar más de una vez en un programa, con solo llamarlos
las veces que así desee. Con esto se ahorra tiempo de programación.
c. El mismo procedimiento se puede usar en distintos programas.
d. Su uso facilita la división de tareas entre los programadores de un equipo.
e. Se pueden probar individualmente e incorporarlos en librerías o
bibliotecas.
8. MOSTRAR CÓMO SE DEFINE UN REGISTRO EN C++.

Un registro es una agrupación de datos, los cuales no necesariamente son


del mismo tipo. Se definen con la palabra “struct”. Para acceder a cada uno de
los datos que forman el registro, tanto si queremos leer su valor como si
queremos cambiarlo, se debe indicar el nombre de la variable y el del dato (o
campo) separados por un punto.
Como es habitual en C++, para declarar la variable hemos indicado primero el
tipo de datos (struct { ...} ) y después el nombre que tendrá esa variable
(persona). También podemos declarar primero cómo van a ser nuestros
registros, y más adelante definir variables de ese tipo.
a. estructura es el nombre en C de los registros;
b. registro: grupo de información relacionada que se usa para almacenar
datos acerca de un tema o actividad;
c. una colección de registros constituye un archivo;
d. los registros estan divididos en campos;
e. un campo es una variable de un tipo determinado
f. Mostrar cómo se declara una variable tipo registro.
g. Utilizando los dos aspectos anteriores, mostrar gráficamente las partes
de un registro.

9. LISTAR VENTAJAS DE UTILIZAR EL CONCEPTO DE REGISTROS.

 Declaración de clases: Para declarar una clase, todo lo que se necesita


es escribir una definición de estructura y sustituir la palabra reservada
struct por class. Por ejemplo, una clase empleado con campos como el
nombre, el departamento, la posición.
 Especificadores de acceso: C++ utiliza especificadores de acceso para
permitir controlar a una clase el acceso a las variables de datos de esa
clase. Los especificadores de acceso permiten acceder a algunos
miembros de la clase y restringir el acceso a otros. Hay tres
especificadores de acceso en C++: public, private y protected. Cuando
usted declara público ( public) un miembro de una clase, usted permite el
acceso a tal miembro desde dentro y fuera de la clase. Los miembros de
datos que son declarados protegidos ( protected ) son únicamente
accesibles por funciones miembro de la clase, pero no se pueden acceder
a ellos desde otras clases. Cuando un miembro de una clase es declarado
privado ( private ) es ináccesible no sólo desde otras clases y otras partes
del programa, sino también desde sus clases derivadas. Las clases
derivadas se explicaran posteriormente.
 Operador de resolución de ámbito: permíte acceder de otra manera
funciones de miembro y variables de miembro de una clase. Cuando
aparece el operador de resolución de ámbito entre el nombre de la clase
y el nombre de la función en un programa significa que la función
especificada es un miembro de la clase especificada
 El apuntador this: Este apuntador lo tiene todo objeto en C++, apuntando
a sí mismo. Se puede utilizar este apuntador en cualquier lado para
acceder a todos los miembros del objeto al cual está apuntando este
apuntador this.
 Jerarquía de clases: Cuando una clase se deriva a partir de una clase
base, la clase derivada hereda todas las variables de miembro y funciones
de miembro de su clase base.
 Redefinición de funciones miembro: Las clases derivadas pueden
reemplazar o redefinir, funciones de miembro que heredan de sus clases
bases. En el código anterior se redefinio la funcion PrintInfo().
 Polimorfismo y funciones de miembro virtuales: es un concepto clave
de la programación orientada a objetos. El polimorfismo proporciona una
forma de dar un nimbre a una acción que es realizada por objetos
similares, implementando cada objeto la acción de una manera adecuada
al objeto en concreto.
 Un núcleo del lenguaje simple, con funcionalidades añadidas importantes,
como funciones matemáticas y de manejo de archivos, proporcionadas
por bibliotecas.
 Es un lenguaje muy flexible que permite programar con múltiples estilos.
Uno de los más empleados es el estructurado "no llevado al extremo"
(permitiendo ciertas licencias de ruptura).
 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 múltiples archivos de código fuente.
 Acceso a memoria de bajo nivel mediante el uso de punteros.
 Interrupciones al procesador con uniones.
 Un conjunto reducido de palabras clave.
 Por defecto, el paso de parámetros a una función se realiza por valor. El
paso por referencia se consigue pasando explícitamente a las funciones
las direcciones de memoria de dichos parámetros.
 Punteros a funciones y variables estáticas, que permiten una forma
rudimentaria de encapsulado y polimorfismo.

10. DESCRIPCIÓN DE PASOS PARA EDITAR/ESCRIBIR UN PROGRAMA


EN C++.

a. Descarga un IDE (entorno de desarrollo integrado) para C++, tal como


Eclipse, Netbeans, y CodeBlocks, o puedes utilizar un editor de texto plano
como Notepad++ o VIM. También puedes ejecutar programas desde la
línea de comandos, en ese caso cualquier editor de texto será suficiente.
Podría resultarte útil elegir un editor que soporte el resaltado de la sintaxis
y que indique lo números de las líneas. La mayoría de los programadores
opinan que los sistemas de tipo Unix (Linux, OS X, BSD) son los mejores
entornos para el desarrollo.
b. Crea un archivo de programa principal. El archivo principal debe incluir una
función llamada main(). Aquí es donde comienza la ejecución del
programa. Desde aquí, deberías llamar a las funciones, instanciar clases,
etc. Puedes incluir otros archivos de tu aplicación como así también las
librerías.
c. Comienza a escribir tu programa. Inserta tu código o el programa que
necesites construir (puedes ver algunos ejemplos abajo). Aprende la
sintaxis, la semántica, los paradigmas de Programación Orientada a
Objetos, estructuras de datos, diseño de algoritmos tales como las listas
enlazadas, colas de prioridad, etc. C++ no es un lenguaje fácil para
programar, pero al utilizarlo aprenderás los fundamentos que se extienden
a todos los lenguajes de programación.
d. Inserta comentarios en tu código. Explica qué hacen tus funciones y para
qué es cada variable. Elige nombres claros para las variables y las
funciones. Ponle mayúscula a los nombres de las variables globales. En
general: asegúrate de que cualquiera que lea tu código pueda entenderlo.
e. Utiliza las sangrías necesarias en tu código. Una vez más, puedes ver
algunos ejemplos abajo.
f. Compila tu código con g++ main.cpp
g. Ejecuta tu programa escribiendo: ./a.out
11. INDICAR COMO SE EJECUTA EL PROGRAMA.

El primer paso es, naturalmente, escribir el código fuente que se quiere


compilar. Si ya tienes destreza utilizando algún editor de texto (como emacs, vim,
o cualquier otro), entonces puedes saltar a la siguiente sección. Si no tienes
preferencia por ningún editor, entonces consideramos que lo más sencillo es que
te decantes por gedit (Gnome) o Kwrite o Kate (KDE) . Tras escribir el código,
graba el fichero en algún lugar. En este caso, que es un programa en C, usa la
extensión .c. Usa .cpp y .java para cada uno de los otros dos lenguajes.
Una vez tengamos escrito nuestro programa, es hora de compilarlo. Para eso,
necesitamos una consola o terminal, que nos proporcione el interfaz en línea de
comandos. De nuevo, busca la aplicación en el menú de aplicaciones de tu
distribución. Normalmente aparecerá también en la sección de Accesorios.
Una vez abierta, utiliza el comando cd para moverte hasta el directorio donde
guardaste tu archivo de código fuente. Cuando estés en ´el, escribe el comando
necesario para compilarlo, que dependerá del lenguaje de programación usado:
 Si el programa lo hemos escrito en C:
gcc <archivo.c>
Ejemplo: compilar el programa hola.c, y generar el fichero ejecutable a.out:
gcc hola.c
Ejemplo: compilar el programa hola.c, y generar el fichero ejecutable hola:
gcc hola.c -o hola
 Si el programa lo hemos escrito en C++:
g++ <archivo.cpp>
Ejemplo 3: compilar el programa hola.cpp y generar el ejecutable hola:
g++ hola.cpp -o hola
 Si el programa lo hemos escrito en Java:
javac <archivo.java>
Si el código fuente era correcto, se habrá generado el ejecutable y podremos
pasar al siguiente punto. En otro caso, analiza los mensajes de error
proporcionados por el compilador y soluciónalos modificando el código fuente.

También podría gustarte