You are on page 1of 101

Lenguaje de programación I

Sección 1400
Grupo #1
Historia de Lenguaje C , C++
Integrantes:
● Scarletth Belinda Hernandez (20141001543)
● Ramón Antonio Manzano Ferrera (20151005636)
● Jonatan Josue Zuniga Vasquez (20141003802)
● Nelson Ariel Medina Alvarado (20161004178)
● Edgardo Roberto Bustillo Lainez (20161004125)
Historia del Lenguaje C

C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie


en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez
basado en BCPL. Al igual que B, es un lenguaje orientado a la
implementación de Sistemas Operativos, concretamente Unix. C es
apreciado por la eficiencia del código que produce y es el lenguaje de
programación más popular para crear software de sistemas, aunque
también se utiliza para crear aplicaciones.
Novedades
La novedad que proporcionó el lenguaje C sobre el B fué el diseño de
tipos y estructuras de datos. Los tipos estructurados básicos de C son las
estructuras, las uniones, y los arrays. Estos permiten la definición y
declaración de tipos de mayor complejidad.
Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas
características de bajo nivel.El lenguaje que define este estándar fue conocido
vulgarmente como ANSI C."El Lenguaje de Programación C", Kernighan y Ritchie
introdujeron al lenguaje C utilizando un sencillo programa que mostraba un saludo
por la pantalla. Desde entonces se hizo tradición empezar con cualquier lenguaje
de programación con el ejemplo del Hola mundo.
Historia de Lenguaje C++

Un lenguaje de programación que puede ser utilizado


para controlar el comportamiento de una máquina,
particularmente una computadora.

Consiste en un conjunto de reglas sintacticas y


semanticas que definen su estructura y el significado
de sus elementos, respectivamente.
Origen
Data del año de 1979 y se le atribuye a Bjarne Stroustrup. El lenguaje que
inspiró a Stroustrup fue el lenguaje Simula (lenguaje usado para simulaciones),
que es considerado el primer lenguaje en permitir programación orientada a
objetos.

En 1983 el nombre del lenguaje fue cambiado de “C with classes” a “C++”.


Podemos entender con esto la imagen que tenía Stroustrup de su lenguaje como
una mejora del lenguaje “C” (al ser ++ un incrementador de variable).
Tipos de Datos

C++ tiene los siguientes tipos de datos fundamentale:

1. Caracteres: char (también es un entero), wchar_t


2. Enteros: short, int, long, long long
3. Números en coma flotante: float, double, long double
4. Booleanos: bool
5. Vacío: void
6. El modificador unsigned se puede aplicar a enteros para obtener
números sin signos (por omisión los enteros contienen signo), con lo
que se consigue un rango mayor de números naturales.
Características de Lenguaje C++
Las principales características de C son:

1. Tienen un conjunto completo de instrucciones de control.


2. Permite la agrupación de instrucciones.
3. Incluye el concepto de puntero (variable que contiene la dirección de
otra variable).
4. Los argumentos de las funciones se transfieren por su valor.
5. E/S no forma parte del lenguaje, sino que se proporciona a través de
una biblioteca de funciones.
Ides más utilizados para programar en el lenguaje C++

● Ultimate++, RAD multiplataforma para C++, Para Windows y Linux.

● Zinjai hecho en castellanos para Windows y Linux.

● CodeLife es una solución ligera y compatible con Windows, Linux y Mac Os X.

● Code Blocks es otra completa solución gratis para Windows, Linux y Mac OS X.

● Anjuta Devstudio es una IDE para C/C++ especialmente para Gnome en Linux.

● Eclipse famoso por su creacion como entorno por excelencia para java, pero que tambien soporta C y
C ++ ademas funciona en Linux, Windows y Mac Os X gracias que este hecho en java.

● Geany un entorno GTK2 para Windows


.
● GNAT Programing Studio es multiplataforma para windows,Linux , Solaris y Mac Os X. Ademas es
gratis hace
● Kdevelop es el entorno ide para KDE por excelencia con soporte para muchos lenguajes
de programación

● MonoDevelop aunque está pensando para .NET y C# soporta C++ y funciona en LInux,
Windows y Mac OS X.

● Qt Creator es un IDE multiplataforma para C++ que utiliza los compiladores GNU en
Linux Y Mac Os X,MinGW en Windows. Ahora lo controla Nokia.

● Microsoft Visual Studio Express es una version de desarrollo y gratis del IDE de Bill
Gates para programar en sus lenguajes Visual Basic, C#, C++, solo para Windows.
GRUPO # 2

ELEMENTOS BÁSICOS DE UN PROGRAMA

Integrantes:

● Russell René Cárdenas Hernández 20151020471


● Bryan Oniel Mendoza Escobar 20151022056
● Roxana Elizabeth Paz Ortiz 20121018140
● Mario Roberto Lagos Ávila 20131002857
● José Manuel Argueta Nolasco 20161000094
Programa informático

Es una serie de comandos ejecutados por el equipo, sin embargo,


el equipo solo es capaz de procesar elementos binarios, es decir,
una serie de 0 y 1. Por lo tanto, necesitamos un lenguaje de
programación para escribir de manera legible, es decir, con
comandos que el ser humano pueda comprender (por ser similares
a su propio lenguaje) los comandos que el equipo deberá ejecutar.
Estos programas se traducen después a un lenguaje máquina (en
binario) a través de un compilador.

Generalmente, el código fuente lo escriben profesionales conocidos


como programadores de computadora.
Programa informático
Cuando hablamos específicamente de programa en informática, estamos haciendo referencia
a un software. Se trata de aplicaciones y recursos que permiten desarrollar diferentes tareas
en una computadora (ordenador), un teléfono u otros equipos tecnológicos.

Para desarrollar un programa informático, se necesita apelar a los lenguaje de programación


que posibilitan el control de las máquinas. A través de diversas reglas semánticas y sintácticas,
estos lenguajes especifican los datos que transmite el software y que tendrá que operar la
computadora.

Además del citado lenguaje, también es fundamental dentro de cualquier programa en


informática o programa informático tanto el archivo fuente como el editor de vínculos, el archivo
ejecutable, el compilador o el archivo objeto.
Existen diferentes tipos de programas en informática. El software de
base, por ejemplo, es aquel que le brinda a la persona el control sobre los
elementos físicos de la computadora, que se conocen como hardware.
Dentro del software de base puede nombrarse a los sistemas operativos,
como Windows o Linux.

Los programas ofimáticos también son muy importantes. Entre estas


herramientas aparecen los procesadores de texto como Microsoft Word y
Apache OpenOffice Writer.
Lenguajes de Programación más
Utilizados
Fases del desarrollo de un programa :
● Definición y análisis del problema
● Diseño de algoritmos:
● • Diagrama de flujo.
● • Diagrama N-S.
● • Pseudocódigo.
● Codificación del programa.
● Depuración y verificación del programa.
● Documentación.
● Mantenimiento.
Partes Constitutivas de un Programa

El programador debe establecer el conjunto de especificaciones que debe contener el programa:

Entrada, Salida y algoritmos de resolución, que contendrán las técnicas para obtener las salidas
por medio de las entradas.

El algoritmo de resolución, en realidad, es el conjunto de códigos que transforman las entradas


del programa (datos) en salidas (resultados).

DIAGRAMA PARA ENTENDER MEJOR


Elementos Básicos de un Programa
Los lenguajes de programación tienen elementos básicos que se utilizan como bloques constructivos, así
como reglas para las que esos elementos se combinan. Estas reglas se denominan sintaxis del lenguaje.
Solamente las instrucciones sintácticamente correctas pueden ser interpretadas por la computadora y los
programas que contengan errores de sintaxis son rechazados por la máquina.

Los Elementos básicos de un programa son :

- Palabras reservadas : En el lenguaje informático son palabras que tienen un significado gramatical
especial para ese lenguaje y no puede ser utilizada como identificador de objetos en el mismo. Como
ejemplo: ( inicio, fin, si-entonces, etc.)

- Identificadores: Son cualquier cadena de caracteres que sirven para identificar variables, señales,
procesos , etc..Como ejemplo:(nombres de variables esencialmente, procedimientos, funciones,
nombre del programa, etc.)
- Constantes : Es un elemento que se inicializa con un valor determinado, el cual no puede ser
modificado.
Como ejemplo: CONSTANT retraso: time := 10 ns.( Se Utilizan con la palabra reservada
“CONSTANT”.

- Variables: Son lo mismo que una constante con la diferencia que pueden ser modificadas en
cualquier momento , la palabra reservada “Variable” ejemplo: Variable aux :bit_vector(31
DOWNTO 0 ); .

- Expresiones: Son combinaciones de operandos y operadores; los operandos pueden ser:


constantes literales o con nombre, variables y otras expresiones.
Elementos Auxiliares de un
programa
Son variables que realizan funciones específicas dentro de un programa, y por su gran utilidad,
frecuencia de uso y peculiaridades, conviene hacer un estudio separado de las mismas. Las más
importantes son:

Contadores: Un contador es un campo de memoria cuyo valor se incrementa en una cantidad fija,
positiva o negativa, generalmente asociado a un bucle.

Acumuladores: Un acumulador es un campo de memoria cuyo valor se incrementa sucesivas veces


en cantidades variables. Se utiliza en aquellos casos en que se desea obtener el total acumulado de
un conjunto de cantidades, siendo preciso inicializarlo con el valor 0.

También en las situaciones en que hay que obtener un total como producto de distintas cantidades se
utiliza un acumulador, debiéndose inicializar con el valor 1.
Bucles: Un bucle o ciclo, en programación, es una sentencia que ejecuta repetidas veces un
trozo de código, hasta que la condición asignada a dicho bucle deja de cumplirse.

Switch o Interruptores: es una variable que durante la ejecución de un diagrama solamente toma
uno de dos valores posibles y puede tener las siguientes funciones:Salir de un ciclo de iteración
variable.
Estructuras de Control
En lenguajes de programación, las estructuras de control permiten modificar el flujo de
ejecución de las instrucciones de un programa
Con las estructuras de control se puede:
● De acuerdo con una condición, ejecutar un grupo u otro de sentencias
(If-Then-Else)
● De acuerdo con el valor de una variable, ejecutar un grupo u otro de
sentencias (Select-Case)
● Ejecutar un grupo de sentencias mientras se cumpla una condición
(Do-While)
● Ejecutar un grupo de sentencias hasta que se cumpla una condición
(Do-Until)
● Ejecutar un grupo de sentencias un número determinado de veces (For-Next)
Todas las estructuras de control tienen un único punto de entrada. Las estructuras de
control se pueden clasificar en: secuenciales, iterativas y de control avanzadas. Esta es
una de las cosas que permiten que la programación se rija por los principios de la
programación estructurada.
Grupo #3 Tipos de Datos Variables
Integrantes

❖ Sergio Alberto Mata


❖ Enrique Mejia Escoto
❖ Danny Josue Vallecillo
❖ Edgar Mauricio Turcios
❖ Josue Daniel Ramirez
Tipos de Datos Fundamentales Variables
El C, como cualquier otro lenguaje de programación, tiene de posibilidad de trabajar con datos de distintas
naturalezas: texto formados por caracteres alfanuméricos, número enteros, número reales con parte entera y
parte fraccionaria, etc. Además, algunos de estos tipos de datos admiten distintos números de cifras (rango y/o
precisión), posibilidad de ser solo positivos o de ser positivos y negativo, etc.

Tipos de datos fundamentales (notación completa).


Datos enteros Char Signed char Unsidgned char

Signed short int Signed int Signed long int

Unsigned short Unsigned int Unsigned long int


int

Datos reales Float Double Long double


La palabra char hace referencia a que se trata de un carácter (una letra mayúscula o minúscula, un dígito, un
carácter especial, …). La palabra int indica que se trata de un número entero, mientras que float se refiere a
un número real (también llamado punto o coma flotante). Los números enteros pueden ser positivos o
negativos (signed), o bien esencialmente no negativos (unsigned); los caracteres tiene un tratamiento muy
similar a los enteros y admiten estos mismos cualificadores. En los datos enteros, la palabra short y long
hacen referencia a números de cifras o rango de dichos números. En los datos reales las palabras double y
long apuntan a una misma en esta misma dirección, aunque con un significado ligeramente diferente, como
más adelante se verá.

Esta nomenclatura puede simplificarse: las palabras signed e int son las opciones por defecto para los
números enteros y pueden omitirse, resultando la siguiente tabla, que indica la nomenclatura más habitual
para los tipos fundamentales del C.
Tipos de Datos Fundamentales (notación
abreviada).

Datos enteros Char Signed char Unsigned char

Short Int Long

Unsigned short Unsigned Unsigned logn

Datos reales float Doublé Long double


A continuación, se va explicar cómo puede ser y cómo se almacena en C un dato de cada tipo fundamental.

Recordemos que en C es necesario declarar todas las variables que se vayan a utilizar. Una variable no
declara produce mensaje de error en la compilación. Cuando una variable es declarada se le reserva memoria
de acuerdo con el tipo incluido en la declaración. Es posible inicializar –dar un valor inicial- las variables en el
momento de la declaración; ya se verá que en ciertas ocasiones el compilador da un valor inicial por defecto,
mientras que en otros casos no se realiza esta inicialización y la memoria asociada con la variable
correspondiente contiene basura informática (combinaciones sin sentido de unos y ceros, resultado de
operaciones anteriores con esta zona de la memoria, para otros fines).
● Caracteres (Tipo Char):
Las variables tipo char contienen un único carácter y se almacena en un Byte de
memoria (8 Bits).
Hay que recordar que en un bit se puede almacenar dos valores (0 y 1), con dos
bits se pueden almacenar 22 = 4 valores (00, 01, 10, 11 en binario; 0, 1, 2, 3, en
decimal). Y con 8 bits se podrán almacenar 28 = 256 valores diferentes entre 0 y
255.
La declaración de las variables tipo char pueden tener la forma:
char nombre;
char nombre1, nombre2, nombre3;
● Números Enteros (Tipo int):
En las variables tipo int se almacena 2 bytes (16 bits), aunque algunos en algunos
compiladores se utilizan 4 bytes (32 bits). Con 16 bits se pueden almacenar
216 = 65536 números enteros diferentes.

Una variable entera (tipo int) se declara y se inicializa de la forma:


unsigned int numero;
int nota = 10;
Números Enteros (Tipo Long)
El rango de un entero Long puede variar según la computadora que se
utilice, pero de ordinario se utiliza 4 bytes para almacenarlos.
•Se pueden declarar números enteros con un mayor rango si se
especifica como tipo Long en su declaración:
long int numero_grande;
Números Reales (Tipo Float y Tipo double )
1)Tipo float: utiliza 4 bytes para resolver problemas que tengan una parte
fraccionaria o decimal y esta se declaran de la siguiente manera:
float numero_real;
2) Tipo doublé: utiliza 8 bytes para almacenar una variable
la variable de tipo doble se declaran de forma análoga:
doublé real_grande;
Duración y visibilidad de las variables: Modos de almacenamiento.

(ya se han visto los tipos char, int, long, float, double, etc.).

El modo de almacenamiento (storage class) es otra característica de las variables de C que


determina cuándo se crea una variable, cuándo deja de existir y desde dónde se puede acceder a
ella, es decir, desde dónde es visible.
En C existen 4 modos de almacenamiento fundamentales: auto, extern, static y register.
Seguidamente se exponen las características de cada uno de estos modos.

1. auto (automático). Es la opción por defecto para las variables que se declaran dentro de un
bloque {...}, incluido el bloque que contiene el código de las funciones. En C la declaración
debe estar siempre al comienzo del bloque. En C++ la declaración puede estar en
cualquier lugar y hay autores que aconsejan ponerla justo antes del primer uso de la variable.
extern. Son variables globales, que se definen fuera de cualquier bloque o función, por
ejemplo antes de definir la función main(). Estas variables existen durante toda la ejecución
del programa.

static. Cuando ciertas variables son declaradas como static dentro de un bloque, estas
variables conservan su valor entre distintas ejecuciones de ese bloque. Dicho de otra
forma, las variables static se declaran dentro de un bloque como las auto, pero permanecen
en memoria durante toda la ejecución del programa como las extern. Cuando se llama varias
veces sucesivas a una función (o se ejecuta varias veces un bloque) que tiene declaradas
variables static, los valores de dichas variables se conservan entre dichas llamadas. La
inicialización sólo se realiza la primera vez. Por defecto, son inicializadas a cero.

register. Este modo es una recomendación para el compilador, con objeto de que –si es
posible– ciertas variables sean almacenadas en los registros de la CPU y los cálculos con ellas
sean más rápidos. No existen los modos auto y register para las funciones.
GRUPO # 4
TEMA: Expresiones y Operadores.
Integrantes:

❖ Maria Castellanos.
❖ Alex zúniga.
❖ Arnol Bonilla.
❖ cristhian Paz.
❖ Angel sierra.
Operadores
“Un operador es un carácter o grupo de caracteres que actúa sobre una, dos o más variables
para realizar una determinada operación con un determinado resultado.”

En el lenguaje de programación C++, podemos clasificar los operadores de la siguiente


manera:

> Operadores Aritméticos: Los operadores aritméticos se usan para realizar cálculos y
operaciones con números reales y punteros. Entre los operadores aritméticos encontramos:

● Suma: +
● Resta: –
● Multiplicación: *
● División: /
● Módulo (Resto de una división entera): %
> OPERADORES DE ASIGNACIÓN:

Este tipo de operadores permiten la asignación de un valor específico a una variable. En


C++ se encuentran disponibles los siguientes operadores:
> OPERADORES RELACIONALES:

Los operadores relacionales, también denominados operadores binarios lógicos y de


comparación, se utilizan para comprobar la veracidad o falsedad de determinadas
propuestas de relación (en realidad se trata respuestas a preguntas). En C++ se
encuentran disponibles los siguientes operadores relacionales:

El resultado puede ser (True ó False).


Operadores lógicos
Los operadores lógicos permiten agrupar expresiones lógicas. Las expresiones lógicas son
todas aquellas expresiones que obtienen como resultado verdadero o falso.

Los operadores lógicos básicos son los siguientes:

● && -AND (El resultado es verdadero si ambas expresiones son verdaderas)


● || -OR (El resultado es verdadero si alguna expresión es verdadera)
● !-NOT (El resultado invierte la condición de la expresión)
En particular en C se involucran muchas partes y sintaxis del lenguaje, por lo cual es
especialmente útil verlo como el primer ejemplo de programación en C.

Ejemplo: Hola mundo

/* Inclusión de archivos */
#include <stdio.h>

/* Función principal */
int main (int argc,char **argv)
{
/* Impresión por pantalla y salida del programa*/
printf("Hola mundo\n");
return 0;
}
Operadores de Incremento
Los Operadores de incremento y decremento son operadores unarios que agregan o sustraen uno de sus operandos,
respectivamente.
El operador de incremento: (++) puede ser posicionado antes (prefijo) o después de (postfijo) de la variable que será
incrementada en 1. Cuando el operador se posiciona antes de la variable (e.g. ++a), el valor de ésta se incrementa en 1,
y luego es usado en la expresión en la que aparece. Por otro lado, cuando el operador se posiciona después de la
variable (e.g. a++), el valor de la variable es usado y después de la evaluación de la expresión el valor de la variable se
incrementa en una unidad.
Los siguientes fragmentos de código C ilustran las diferencias entre operadores de pre y post incremento/decremento:
// demuestra el operador de incremento postfijo
c = 5; // asigna 5 a c
Console.WriteLine(c); // Imprime 5
Console.WriteLine(c++); // Imprime 5 otra vez, luego realiza el incremento
Console.WriteLine(c); // Imprime 6

Console.WriteLine(); // Imprime línea en blanco

// demuestra el operador de incremento prefijo


c = 5;
Console.WriteLine(c); // Imprime 5
Console.WriteLine(++c); // Incrementa c, luego imprime 6 otra vez.
Console.WriteLine(c); // Imprime 6 otra vez
Operadores de Decremento
El operador de decremento en C++ es -- permite reducir en una unidad el valor de una variable. Si el operador de
decremento se posiciona antes de la variable, ésta se decrementada y su valor es reducido en 1, y el nuevo valor es
utilizado en la expresión donde el identificador de la variable aparece. Por el contrario, si el operador de decremento se
posiciona después de la variable, el valor de ésta es utilizado en la expresión en que aparece, y realizada la evaluación
el valor de la variable es reducido en 1.

// demuestra el operador de decremento postfijo


c = 5; // asigna 5 a c
Console.WriteLine(c); // Imprime 5
Console.WriteLine(c--); // Imprime 5 otra vez, luego realiza el decremento
Console.WriteLine(c); // Imprime 4

Console.WriteLine(); // Imprime línea en blanco

// demuestra el operador de decremento prefijo


c = 5;
Console.WriteLine(c); // Imprime 5
Console.WriteLine(--c); // Incrementa c, luego imprime 4 otra vez
Console.WriteLine(c); // Imprime 4 otra vez
Expresiones

Las expresiones son combinaciones de constantes, variables, símbolos de operación,


paréntesis y nombres de función especiales. Las mismas ideas son utilizadas en
notación matemática tradicional. En definitiva una expresión es una secuencia de
operaciones y operandos que especifican un cálculo. Por ejemplo:

((x < 10) && ( x > 5)) || ((x > 20) && (x < 25));
Las expresiones son secuencias de operadores y operandos que se utilizan para uno o
más de estos propósitos:
● Calcular un valor a partir de los operandos.
● Designar objetos o funciones.
● Generar “efectos secundarios”. (Los efectos secundarios son cualquier acción
distinta de la evaluación de la expresión; por ejemplo, modificando el valor de un
objeto).
Tipos de Expresiones
● Expresiones Primarias
● Expresiones de posfijo
● Expresiones con operadores unarios
● Expresiones con operadores Binarios
● Expresiones de constantes
● Expresiones con conversiones de tipo explícitas
Expresiones Primarias
Las expresiones primarias son los bloques de creación de expresiones más complejas. Son literales, nombres, y
nombres calificados por el operador de resolución de ámbito (::). Una expresión primaria puede tener cualquiera de
las formas siguientes:

literal
this
:: name
name
( expression )
Expresiones de Posfijo
Las expresiones de postfijo constan de expresiones primarias o expresiones en las que los operadores de postfijo
siguen una expresión primaria. Los operadores de postfijo se enumeran en la tabla siguiente.

Operador de subíndice: [ ] primary-expression


postfix-expression [ expression ]
Operador de llamada de función: ( )
postfix-expression ( expression-list)

Operador de conversión explícita de tipos: type-name ( ) simple-type-name ( expression-list)


postfix-expression . name
Operador de acceso a miembros: . o –> postfix-expression –> name
postfix-expression ++
Operador de incremento de postfijo: ++
postfix-expression ––
Operador de decremento de postfijo: –– cast-keyword < typename > (expression ) typeid ( typename )
Expresiones con operadores unarios
Los operadores unarios actúan solo sobre un operando en una expresión. Los operadores unarios son los siguientes:
Estos operadores tienen asociatividad de derecha a izquierda. Las expresiones unarias normalmente usan sintaxis
que precede a una expresión de postfijo o primaria.

● Operador de direccionamiento indirecto (*) ● Operador de decremento de prefijo (––)


● Operador address-of (&) ● Operador de conversión ()
● Operador unario más (+) ● Operador sizeof
● Operador unario de negación (–) ● Operador __uuidof
● Operador lógico de negación (!) ● Operador __alignof
● Operador de complemento a uno (~) ● Operador new
● Operador de incremento de prefijo (++) ● Operador delete
Expresiones con operadores binarios
Los operadores binarios actúan sobre dos operandos de una expresión. Los operadores binarios son:
● Operadores de multiplicación: Multiplicación(*), División(/), Módulo(%)
● Operadores aditivos: suma (+), resta(-)
● Operadores de desplazamiento:Desplazamiento a la derecha (>>), Desplazamiento a la izquierda
(<<)
● Operadores relacionales y de igualdad: Menor que (<), Mayor que (>),Menor o igual que (<=),Mayor o
igual que (>=),Igual a (==),No igual a (!=)
● Operadores lógicos: AND lógico (&&),OR lógico (||)
● Operadores de asignación:Asignación y suma (+=)Asignación y resta (–=)Asignación y
multiplicación (*=) ,entre otros.
● Operador de coma:(,)
Expresiones constantes
Un valor constante es un valor que no cambia. C++ proporciona dos palabras clave para que pueda expresar la
intención de que un objeto no está pensado para ser modificado y aplicar dicha intención.

C++ requiere expresiones constantes para las declaraciones de :

● Selectores en instrucciones case


● Especificación de longitud de campo de bits
● Inicializadores de enumeración
● límites de matrices
Expresiones con conversiones de tipo explícito

Los tipos fundamentales básicos pueden ser mezcladas libremente en asignaciones y expresiones.

La conversión se ejecuta automáticamente: los operandos de tipo más bajo se convierten en los de tipo más alto.

También se pueden especificar conversiones de tipos explícitas cuando se necesite aplicar un control más preciso de
las conversiones.
En resumen...
Podríamos concluir con que las expresiones son una serie de operadores y operandos utilizados
para poder calcular valores a partir de varios operandos, poder asignar objetos o funciones y
también para generar acciones distintas de la evaluación de las expresiones.
Grupo No. 5

Funciones de Entrada y Salida


Integrantes:

➔ Hector Alexander Franco


➔ José Luis Barrientos
➔ Fany Dariela Espinoza
➔ Karen Azucena Lazo
➔ Susan Julissa Cerrato
FUNCIONES
DE ENTRADA Y SALIDA

El lenguaje C (y consecuentemente también C++) dispone de una librería para


entrada salida: Standard Input-Output Header, que permite ejecutar operaciones
básicas de E/S. Las declaraciones requeridas por esta librería están contenidas en el
archivo de encabezado “stdio.h”, que debe incluirse con la directiva
correspondiente: #include <stdio.h>

Este archivo define tres “streams” estándar: stdin, stdout y stderr, que utilizan
entrada y salida basada en caracteres y son abiertas automáticamente. Por defecto
stdout y stderr están direccionadas a la pantalla, y stdin al teclado.
STREAMS
Entrada/salida con Streams en C++

1. Definición: un stream en C++ es un objeto mediante el cual un programa puede insertar o


extraer datos utilizando los operadores de inserción << y de extracción >> o funciones. Los datos
pueden ser tipos fundamentales (int, char, double, etc.), o cadenas de caracteres.

2. Streams predefinidos Por defecto, la salida asignada a un programa es la pantalla, y en C++ está
representada por el stream cout a la que se denomina “salida estándar”.

Las definiciones necesarias para su uso están contenidas en el archivo de encabezamiento


iostream. Caracteres, números y variables pueden insertarse en cout mediante el operador de
inserción.
Descriptores de archivos especiales: stdin, stdout y stderr.
(Standard Input, Standard Output and Standard Error)
La entrada estándar es el descriptor de archivo 0(Stdin), la salida estándar es el descriptor de archivo 1 (Stdout),

y el error estándar tiene el descriptor de archivo 2 (Stderr).

Stdin: Generalmente, la entrada estándar, denominada "stdin", proviene del teclado.

Cuando escribe cosas, las escribe en stdin (una terminal de entrada estándar). Un dispositivo de entrada estándar, que generalmente es el
teclado, pero Linux también le permite tomar la entrada estándar de un archivo.

Stdout: La salida estándar, tal como se crea en el proceso de creación de tiempo, va a la consola, a su terminal o a un terminal X.
Exactamente dónde se envía la salida depende claramente de dónde se originó el proceso.

Nuestra consola o terminal debe ser el dispositivo que acepta la salida. Sería concatenar el archivo, por defecto, a nuestra salida estándar,
es decir, nuestra consola o pantalla de terminal.

Stderr: El componente final en este diálogo de descriptores de archivos es un error estándar. Cada comando podría enviar su salida a uno
de dos lugares:

a) podría ser una salida válida o

b) podría ser un mensaje de error.

Hace lo mismo con los errores que con la salida estándar; los envía directamente a la pantalla de tu terminal.
Las Operaciones de entrada y salida no forman parte del conjunto de sentencias de
C++, sino que pertenecen al conjunto de Funciones y clases de la biblioteca estándar
de C++. Ellas se incluyen en los Archivos de cabecera iostream.h por lo que siempre
que deseemos utilizarlas deberíamos introducir la línea de código #include
<iostream.h>.

Los objetos de flujo que vienen predefinidos serán:

1) cin, que toma caracteres de la entrada Estándar (Teclado)


2) cout, pone caracteres en la salida Estándar (Pantalla);
3) cerr y clog, pone mensajes de error en la salida Estándar.
C++ Ofrece una alternativa a las llamadas de función printf y scanf para manejar la entrada/salida de los
tipos y cadenas de datos estándar.

Así en lugar de printf usamos el flujo estándar de salida cout y el operador << ("colocar en"); y en lugar
de scanf usamos el flujo de entrada estándar cin y el operador >>("obtener de"). Estos operadores de
inserción y extracción de flujo, a diferencia de printf y scanf, no requieren de cadenas de formato y de
especificadores de conversión para indicar los tipos de datos que son extraídos o introducidos.

Estos objetos se utilizan mediante los operadores << y >>. El operador < <se denomina operador
de inserción; y apunta al objeto donde tiene que enviar la información.

Por lo tanto la sintaxis de Cout será:

cout<<variable1<<variable2<<...<<variablen;
No olvidemos que las cadenas de texto son variables y se ponen entre “ “ (comillas dobles).
Por su parte >> se denomina operador de extracción, lee información del flujo cin (a la
izquierda del operador) y las almacena en las variables indicadas a la derecha).
La sintaxis sería la siguiente:

cin>>variable1>>...>>variablen;
Formateo de salidas con funciones de flujos
❖ width: Indica al flujo cuantos espacios debe
La organización de la salida de un programa en usar al enviar un elemento a la salida
C++ es su formato.
. cout.width(4);
En C++ podemos controlar el formato con
El método width solamente afecta a la siguiente
órdenes que determinan detalles tales como el
salida por pantalla.
número de espacios entre los elementos y el
número de dígitos después del punto decimal
❖ fill: Indica el carácter con lo que completa los
Veamos algunas funciones o métodos asociadas a
espacios en blanco cuando se manda un
los flujos de salida:
elemento a la salida y se fija el número de
espacios con la función width.
❖ precisión: Fija el número de cifras después
de la coma:
cout.fill(‘a’); Al igual que el método width, el
método fill solamente afecta a la siguiente salida por
precisión cout.precision(2);
pantalla.
setf: es una abreviatura de set flags, que significa
establecer banderas. El efecto sobre el flujo depende de la bandera.

Una bandera es algo que indica que se debe efectuar unsetf: Cualquier bandera establecida se puede
algo de una de dos posibles maneras. desactivar con esta función miembro

Si damos una determinada bandera como argumento una vez establecida una bandera o valor se mantiene
de setf, dicha bandera le dirá a la computadora que en todo el programa a no ser que se utilice la función
escriba las salidas en ese flujo de alguna forma miembro unsetf o se varíe el valor con el método
específica. adecuado
E/S por consola

Se refiere a todas las operaciones que se


producen por teclado y en la pantalla.
gets(): Lee una cadena de caracteres
❖ Las funciones principales que realizan la introducida por el teclado y la sitúa en
entrada y salida sin formato son: una dirección apuntada por su
argumento de tipo puntero a carácter.
getchar(): Lee un carácter del teclado. Espera
hasta que se pulsa una tecla y entonces puts(): Escribe su argumento de tipo
devuelve su valor. cadena en la pantalla seguida de un
carácter de salto de línea.
putchar(): Imprime un carácter en la pantalla
en la posición actual del cursor.
E/S por consola
El siguiente fragmento de código lee un carácter del teclado y lo muestra por pantalla .
A continuación lee una cadena (de 10 caracteres incluido el carácter nulo) y también la
muestra por pantalla:

● Las funciones principales que realizan


la entrada y salida con formato, es
#include <stdio.h>
decir, se pueden leer y escribir en
main()
distintas formas controladas, son:
{
char cadena[10]; printf(): Escribe datos en la consola con el
int i; formato especificado.
i=getchar();
putchar(i); La función printf es la salida genérica por
gets(cadena); consola por que es utilizada por cualquier
puts(cadena); compilador.
}
E/S por consola

scanf(): Función de entrada por consola con el Sus prototipos son los siguientes:
formato especificado.
int printf (" caracteres de transmisión y
Por otra parte la entrada estándar , que escape", lista de argumentos);
generalmente es por el teclado , se realiza
mediante la función scanf.

Tanto la función printf como la función scanf int scanf (" caracteres de transmisión y
permite especificar el formato en que se van a escape", lista de argumentos);En la función
escribir o leer datos. printf() (con scanf() no), entre las comillas se
pueden poner rótulos literales mezclados con
Esto se conoce como entrada y salida
los caracteres de transmisión.
formateada.
conclusiones

1. Las Operaciones de entrada y salida no forman parte del conjunto de sentencias de C++, sino que
pertenecen al conjunto de Funciones y clases de la biblioteca estándar de C++.

2. Estas Funciones se utilizan para introducir datos mediante el teclado y poder visualizarlos en la
pantalla.

3. Los datos de entrada son los que la computadora va a procesar. Los datos de salida son datos
derivados, es decir, obtenidos a partir de los datos de entrada. Por esta razón, a los datos de salida se
les considera más significativos que a los datos de entrada.
Grupo #6
Sentencias de Control
Integrantes del Grupo:

Mario Velasquez Ricardo Orellana


Ana Gabriela Euceda Stefany Ixel Flores
. Sergio Calix Catherine Alvarado
Sentencias de control:

Un programa es una sucesión de sentencias que son ejecutadas


secuencialmente.

El siguiente programa tiene cuatro sentencias:


n = int(input('Ingrese n: '))
m = int(input('Ingrese m: '))
suma = n + m;
print('La suma de n y m es:', suma)
Existen los siguientes tipos de sentencias de control:

● Sentencias condicionales o selectivas.

● Sentencias de iteración o repetitivas (bucles).

● Sentencias de salto
Sentencia IF

son una estructura de control condicional, que nos permiten tomar cierta
decisión al interior de nuestro algoritmo, es decir, nos permiten determinar que
acciones tomar dada condición, por ejemplo determinar si un número cualquiera
es mayor que 10 y de acuerdo a esto mostrar un mensaje.
En resumen, un condicional if es una estructura que nos posibilita definir las
acciones a ejecutar si se cumple cierta condición.
¿Cómo Funciona Un Condicional IF?

Para comprender mejor cómo funciona el condicional if, una muy buena
forma es partiendo de un ejemplo. Supongamos que queremos verificar si el
resultado de una suma ingresada por el usuario es correcto o no.
Para este ejemplo, el condicional if, es el encargado de verificar si el
resultado ingresado corresponde o no a la respuesta correcta de la suma. El
condicional if, funciona verificando la condición ingresada y de acuerdo a su
valor de verdad (falso o verdadero) se lleva a cabo o no una serie de
instrucciones.
Sintaxis
if(condición a evaluar) //Por ejemplo X <= 10
{
....
....
Bloque de Instrucciones si se cumple la condición....
....
....
}
....
Bloque de Instrucciones restante DEL ALGORITMO....
Ejemplo
int main()
{
int resultado = 0;
cout << "Cuánto es 39+50? ";
cin >> resultado;
if(resultado == 39+50)
{
cout << "Respuesta Correcta. Felicitaciones!\n";
}
Los condicionales If-Else
Son una estructura de control, que nos permiten tomar cierta decisión al interior de
nuestro algoritmo, es decir, nos permiten determinar que acciones tomar dada o no
cierta condición.

¿Cómo funciona un Condicional If-Else?


Para comprender mejor cómo funciona el condicional if-else, una muy buena forma
es partiendo de un ejemplo. Imaginemos que en nuestro programa, deseamos
implementar un sistema de logeo de usuario, comprobando si la información
suministrada coincide con unos los valores correctos y en este caso mostrar un
mensaje de bienvenida, y en caso de que no, se mostrará un mensaje de error.
Como podemos imaginar, es entonces necesario hacer que nuestro algoritmo,
tome una decisión, de acuerdo a los valores ingresados por el usuario, y definir los
dos casos posibles en caso de fallo o en caso de que no.
Sintaxis del Condicional If-Else en C++:
La sintaxis de un condicional if-else, es en principio similar a la del condicional if,
pero adicionando una nueva "estructura" que es el else, el cual indica la acción o
conjunto de acciones a llevar a cabo, en caso de que la condición del if no se
cumpla.El else es incapaz de funcionar por sí solo, siempre debe ir acompañado
por un if. Veamos entonces cómo es la sintaxis de este:
Ejemplos de Condicional If-else en C++
Deseamos implementar un sistema de logeo de usuario, es decir, queremos que el
usuario nos ingrese un una contraseña y deseamos comprobar si coincide con el
valor preestablecido. En caso de que los datos sean correctos se mostrará un
mensaje de bienvenida, y en caso de que no, se mostrará un mensaje de error y
finalizará el programa.
¿ ué es Switch?
Es una estructura de control condicional, que permite
definir múltiples casos que puede llegar a cumplir
una variable cualquiera, y qué acción tomar en
cualquiera de estas situaciones, incluso es posible
determinar qué acción llevar a cabo en caso de no
cumplir ninguna de las condiciones dadas.
¿Cómo funciona el Switch?
Imaginemos entonces que nuestro programa consta de un menú de
opciones digamos 3 opciones, cada una representada con un número
correspondiente, es decir la opción uno corresponde al número 1, la
dos al 2 y así sucesivamente, queremos entonces que de acuerdo a un
número ingresado por el usuario. Ejecutamos una acción
correspondiente y en caso de que no corresponda a ninguna de las
posibles opciones, mostrar un mensaje de error cualquiera.
Sintaxis Control Switch
Ciclo For
Es una Estructura de control en programación en la que se puede
indicar de antemano el número mínimo de iteraciones que a
instrucción realizará. Está disponible en casi todos los lenguajes de
programación imperativos.
¿Cómo Funciona?
El ciclo for en C está compuesto de tres instrucciones :
for (instrucción uno; instrucción dos; instrucción tres).
az
El ciclo for en C funciona siguiendo los siguientes pasos:

1. Realiza las operaciones de la instrucción uno (si la hay), estas operaciones sólo se
ejecutan una vez

2. Evalúa la condición (la instrucción dos)

3. Si la condición es verdadera, ejecuta el cuerpo del ciclo for

4. Ejecuta la instrucción tres (si la hay)

Después de ejecutar el cuerpo del ciclo (el cual se ejecuta sólo si la condición es
verdadera) se realiza el paso 4 y se repiten los pasos 2 y 3
Sintaxis
Ciclo While
Ciclo While
El bucle while o bucle mientras
es un ciclo repetitivo basado en
los resultados de una expresión
lógica; se encuentra en la mayoría
de los lenguajes de programación
estructurados.

El propósito es repetir un bloque


de código mientras una condición
se mantenga verdadera.
La condición es una sentencia que devuelve un
valor booleano, y esta puede ser el valor booleano
sí, verdadero si la condición se cumple, o falso si
esta no se cumple .

También puede contener el nombre de una


variable booleana, y el valor de la expresión
dependerá de su contenido. Se debe tener en
cuenta que además de las variables también puede
haber llamadas a funciones que devuelvan un
valor.
Ejemplo de Ciclo While
Para comprender mejor el funcionamiento del ciclo while, #include "iostream"
imaginemos que por algún motivo, queremos pedirle a un
usuario una serie de números cualquiera y que solo
using namespace std;
dejaremos de hacerlo cuando el usuario ingrese un número int main()
mayor a 100. {
int numero;
Como vemos, aquí no podríamos utilizar un ciclo for, pues no
tenemos ni idea de cuándo al usuario se le va a ocurrir cout << "Ingrese un numero ";
ingresar un número mayor que 100, es algo indeterminado cin >> numero;
para nosotros, sin embargo el ciclo while nos permite
while(numero <= 100)
ejecutar una acción de forma infinita hasta que se cumpla
alguna condición específica, en nuestro caso sería que el {
número ingresado sea mayor a 100. cout << "Ingrese un numero
";
De modo que si el usuario nos ingresa de manera sucesiva los
siguientes número 1,50,99, 49, 21, 30, 100 ..., nuestro cin >> numero;
programa no finaliza, pues ninguno de estos números es }
mayor que 100, sin embargo si nos ingresa el número 300 o system("PAUSE");
150, el programa finalizará inmediatamente.
return 0;
}
ESTRUCTURA DE DATOS
Grupo #7
Lenguaje C++
Integrantes:
1. Rocío Rodríguez -----------20161002738
2. Josué Rodríguez -----------20161002862
3. Berenice Ponce ------------ 20131013784
4. Jesus Zuniga ---------------20161032057
5. Rene Larios ----------------20131015373
Estructura de Datos

¿Qué es una estructura?

Las estructuras son colecciones de variables relacionadas


bajo un nombre. Las estructuras pueden contener
variables de muchos tipos diferentes de datos.
Las estructuras de datos en C++
Se pueden entender como un tipo de dato compuesto (no complejo).
Permiten almacenar de manera ordenada una serie de valores dados en
una misma variable.
● Las estructuras de datos más comunes son; los vectores o arreglos
y las matrices, aunque hay otras un poco más diferentes como son
el struct y las enumeraciones.
EJEMPLO DE UNA ESTRUCTURA

struct ejemplo
{ char c;
int i;};
La palabra reservada struct indica se está definiendo una estructura. El identificador ejemplo es
el nombre de la estructura. Las variables declaradas dentro de las llaves de la definición de
estructura son los miembros de la estructura. Los miembros de la misma estructura deben tener
nombres ´únicos mientras que dos estructuras diferentes pueden tener miembros con el mismo
nombre. Cada definición de estructura debe terminar con un punto y coma. La definición de
struct ejemplo contiene un miembro de tipo char y otro de tipo int. Los miembros de una
estructura pueden ser variables de los tipos de datos básicos (int, char, float,etc) o agregados
como ser arreglos y otras estructuras. Una estructura no puede contener una instancia de sí
misma. Declaramos variables del tipo estructura del siguiente modo: struct ejemplo e1, a[10]; o
alternativamente sin usar la palabra struct:
Estructura main
Cada programa de C tiene una función principal que se debe llamar main. Si su código sigue
el modelo de programación Unicode, puede utilizar la versión de carácter ancho de main,
wmain. La función main sirve como punto de partida para la ejecución del programa.
Normalmente, controla la ejecución del programa dirigiendo las llamadas a otras funciones
del programa. Un programa deja de ejecutarse normalmente al final de main, aunque
puede finalizar en otros puntos del programa por distintos motivos. A veces, quizás cuando
se detecta un error, puede resultar conveniente forzar la finalización de un programa. Para
ello, utilice la función exit. Vea la Referencia de la biblioteca en tiempo de ejecución para
obtener información y un ejemplo sobre cómo usar la función exit.

Ejemplo

main( int argc, char *argv[ ], char *envp[ ] )


Estructura Char
El tipo de datos char sirve para representar o contener un solo carácter. Un byte y un char son la
misma cosa, excepto porque char se utiliza como carácter, o como parte de una cadena de caracteres y
no se puede utilizar en una expresión aritmética, mientras que un byte solamente puede ser usado
como un tipo numérico.

por ejemplo

var ch: char; { 8 bits / un carácter alfanumérico }


c: byte; { 8 bits / numérico }

begin
ch := 'A'; c := 64; { realizan la misma acción, y su uso es legal }
ch := 64; {char no puede contener un número}
c := 'A'; {byte no puede contener un carcter alfanumérico}
end.
Estructura Double
El nombre double significa que la precisión de estos números es dos veces más que la precisión de los
números del tipo float. En mayoría de los casos el tipo double es más cómodo. En muchos casos la
precisión limitada de los números float simplemente es insuficiente. La razón de utilizar todavía el tipo
float se encuentra en el ahorro de la memoria durante el almacenamiento (es importante para las
grandes cantidades de matrices de números reales).

ejemplo:

double a=12.111;
double b=-956.1007;
float c =0.0001;
float d =16;
Una operación válida entre estructuras es asignar variables de estructura a variables de
estructura del mismo tipo. Las estructuras no pueden compararse entre sí

Ejemplo
Consideremos la información de una fecha. Una fecha consiste de: el dıa, el mes, el año y
posiblemente el dıa en el año y el nombre del mes. Declaramos toda esa información en una
estructura del siguiente modo:
struct fecha {
int dia;
int mes;
int anio;
int dia_del_anio;
char nombre_mes[9];
}
DEFAULT

La sentencia default se utiliza en los bloques switch junto con los case. Si no existe concordancia de la
<variable switch> con ninguno de los valores case, se ejecuta la sentencia por defecto, señalada por default.

int main()
{
char c;
cout << "Escribe una vocal" << endl;
cin >> c;
switch(c)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
cout << "Es una vocal" << endl;
break;
default:
cout << "Es una consonante" << endl;
}
SYSTEM (“PAUSE”)

Al escribir system ("pause") se está incorporando una pausa en el programa, es decir, que se espera a que
el usuario presione alguna tecla para continuar con la ejecución del mismo.
WHILE

Los ciclos while son también una estructura cíclica, que nos permite ejecutar una o varias líneas de código
de manera repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuando
se va a dar el valor final que esperamos
Estructura IF-ELSE-END

El if simple le permite ejecutar una serie de enunciados si una condición es verdadera y saltar dichos
pasos si la condición es falsa. La cláusula ELSE le permite ejecutar un conjunto de enunciados si la
comparación es verdadera y un conjunto diferente de enunciados si la comparación es falsa. IF condición
bloque1 ELSE bloque2 END
Estructura CIN

CIN es el flujo de entrada estándar que normalmente es el teclado y cout es el flujo de salida
estándar que por lo general es la pantalla

La instrucción cin >> i1; obtiene un valor desde el


teclado. El usuario debe introducir un valor y luego
enter. cin saltea los espacios en blanco, los
tabuladores y el salto de línea. endl envía a la salida
un salto de línea.
Ciclo do-while en C++. Estructura y sintaxis. Cómo y para qué usar un ciclo do-while en C++

En resumen un ciclo do-while, es una estructura de control cíclica que permite ejecutar de manera repetitiva un bloque de
instrucciones sin evaluar de forma inmediata una condición específica, sino evaluándose justo después de ejecutar por
primera vez el bloque de instrucciones
el do-while nos permite ejecutar cierta acción de forma infinita hasta que se cumpla alguna condición específica, en
nuestro caso sería que el número ingresado sea mayor a 100. De modo que si el usuario nos ingresa de manera sucesiva
los siguientes numero 1,50,99, 49, 21, 30, 100 ..., nuestro programa no finalizara, pues ninguno de estos números es
mayor que 100, sin embargo si nos ingresa el numero 300, el programa finalizará inmediatamente.

int numero;
do
{
cout << "Ingrese un numero ";
cin >> numero;
}
while(numero <= 100);
Arreglos c++

DEFINICIÓN:Un arreglo en C++ es un conjunto de datos que se almacenan en memoria de manera contigua con elmismo
nombre. Para diferenciar los elementos de un arreglo se utilizan índices detrás del nombre del arreglo y encerrados por [].
EJEMPLO: int vector [10]; // array de 10 enteros:vector[0]..vector[9].

DECLARACIÓN DE ARREGLOS UNIDIMENSIONALES: Suma y Resta:Los arreglos deben tener el mismo tamaño y la suma se
realiza elemento a elemento. Por ejemplo C = A + B. Donde A, B y C son arreglos de enteros de tamaño 3.

DECLARACIÓN DE ARREGLOS MULTIDIMENSIONALES: ARREGLOS DE CARACTERES MULTIDIMENSIONALES:Los arreglos de


cadenas, que a menudo se conocen como tablas de cadenas son comunes en la programación enC++. Una tabla de cadenas
de dos dimensiones es creada como otro cualquier arreglo de dos dimensiones. No obstante, la forma cómo conceptualiza
será levemente diferente.Por ejemplo:char nombres [10][50];

You might also like