Вы находитесь на странице: 1из 40

Programacin para

Ciencias e Ingeniera 1
Introduccin a la programacin en C++
Everybody in this country
should learn how to program
a computer, because it
teaches you how to think

-Steve Jobs

2 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Notacin que puede parecer extraa al programador:

// Fig. 2.1: fig02_01.cpp


// Text-printing program.
#include <iostream> // allows program to output data to the screen

// function main begins program execution


int main()
{
std::cout << "Welcome to C++!\n"; // display message

return 0; // indicate that program ended successfully


} // end function main

3 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

Comentarios:

// Fig. 2.1: fig02_01.cpp


// Text-printing program.

La notacin // indica que la lnea es un comentario. Para qu se usan?

Los comentarios no ejecutan ninguna accin, son ignorados por el


compilador.

Un comentario de una sola lnea se indica con la notacin expuesta.

Para comentarios de varias lneas /* */. Lo empleamos?

4 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

Directiva de preprocesador:

#include <iostream> // allows program to output data to the screen

Es un mensaje para el preprocesador de C++ que se procesa antes de que


el programa se compile.

Esta lnea notifica al preprocesador para que incluya en el programa el


contenido del encabezado input/output stream header <iostream>.

Este encabezado debe ser incluido en cualquier programa que presente


informacin en pantalla u obtenga datos desde el teclado.

5 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

Lneas y espacios en blanco

#include <iostream> // allows program to output data to the screen

// function main begins program execution


int main()

Se utilizan para hacer el programa ms legible, en este caso son ignorados


por el compilador.

Una buena prctica consiste en emplear tabulaciones que hagan ms


entendible el programa.

6 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

La funcin main
// function main begins program execution
int main()

Esta funcin es parte de todo programa de C++.

Los parntesis significan que es una funcin. Un programa consiste de una o


ms funciones o clases.

Slo una funcin en cada programa debe ser llamada main.

C++ empieza siempre ejecutando la funcin main, aunque sta no sea la


primera que aparezca en el programa.
7 Juan Almendriz - USFQ
Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

La funcin main
// function main begins program execution
int main()
{
}

La palabra clave int indica que la funcin devuelve o debe retornar un


valor entero.

Palabra clave o keyword: palabra de cdigo reservada por C++ para un uso
especfico.

Las llaves indican el inicio y el final del cuerpo de la funcin.

8 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

Una sentencia de salida


std::cout << "Welcome to C++!\n"; // display message

Instruye al computador para ejecutar una accin: mostrar la cadena de


caracteres contenida entre las comillas dobles. Los caracteres en blanco en
este caso no son ignorados por el compilador.

Toda sentencia debe terminar con un punto y coma. Las directivas de


preprocesador (como #include) no terminan con un punto y coma.

Cuando una sentencia no termina con punto y coma ocurre un error de


sintaxis: el compilador encuentra cdigo que viola las reglas del lenguaje.
Tambin pueden llamarse errores de compilador o compilacin, errores en
tiempo de compilacin. 9 Juan Almendriz - USFQ
Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

Una sentencia de salida


std::cout << "Welcome to C++!\n"; // display message

En C++ la entrada y salida se realizan mediante streams de caracteres.

Esta sentencia enva el stream de caracteres Welcome to C++! al objeto de


stream de salida estndar std::cout que generalmente est conectado a
la pantalla.

10 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

El espacio de nombres std


std::cout << "Welcome to C++!\n"; // display message

std:: es requerido cuando se usan nombres que se han trado al


programa a travs de la directiva de preprocesador #include
<iostream>.

Esta notacin indica que se est usando un nombre (cout) que pertenece
al espacio de nombres std. Los nombres cin y cerr tambin pertenecen
al mismo espacio de nombres.

11 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

El operador de insercin de streams y caracteres de escape


std::cout << "Welcome to C++!\n"; // display message

El operador << se denomina operador de insercin de streams. Cuando se


ejecuta el programa, el operando a la derecha del operador se inserta en el
stream de salida.

El operador siempre apunta hacia donde van los datos. Generalmente


imprime exactamente los caracteres que se muestran entre las comillas
dobles.

Qu caracteres no se han mostrado en pantalla?

12 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

El operador de insercin de streams y caracteres de escape


std::cout << "Welcome to C++!\n"; // display message

El backslash \ es el
carcter de escape.
Cuando un backslash
es hallado en una
cadena de caracteres,
el siguiente carcter
se combina con ste
para formar una
secuencia de escape.

13 Juan Almendriz - USFQ


Introduccin a la programacin en C++
El primer programa: imprimir una lnea de texto
Entendiendo el cdigo

La sentencia de retorno
return 0; // indicate that program ended successfully

Una de las formas en las que se termina una funcin.

Si se usa al final de la funcin main, indica que el programa ha terminado


exitosamente.

Segn el estndar de C++, si una ejecucin de programa alcanza el final de la


funcin main sin hallar una sentencia de retorno, se asume que el programa
termin exitosamente. Por tanto la sentencia return bien podra omitirse.

14 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Modificando el primer programa
Imprimiendo mltiples lneas de texto con una sentencia

// Fig. 2.1: fig02_01.cpp


// Text-printing program.
#include <iostream> // allows program to output data to the screen

// function main begins program execution


int main()
{
std::cout << "Welcome to C++!\n"; // display message

return 0; // indicate that program ended successfully


} // end function main

Cmo se imprimira lo siguiente?


Welcome
to

C++!

15 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Modificando el primer programa
Imprimiendo mltiples lneas de texto con una sentencia

// Fig. 2.4: fig02_04.cpp


// Printing multiple lines of text with a single statement.
#include <iostream> // allows program to output data to the screen

// function main begins program execution


int main()
{
std::cout << "Welcome\nto\n\nC++!\n";
} // end function main

16 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Incluyendo enteros
// Fig. 2.5: fig02_05.cpp
// Addition program that displays the sum of two integers.
#include <iostream> // allows program to perform input and output

// function main begins program execution


int main()
{
// variable declarations
int number1 = 0; // first integer to add (initialized to 0)
int number2 = 0; // second integer to add (initialized to 0)
int sum = 0; // sum of number1 and number2 (initialized to 0)

std::cout << "Enter first integer: "; // prompt user for data
std::cin >> number1; // read first integer from user into number1

std::cout << "Enter second integer: "; // prompt user for data
std::cin >> number2; // read second integer from user into number2

sum = number1 + number2; // add the numbers; store result in sum

std::cout << "Sum is " << sum << std::endl; // display sum; end line
} // end function main

17 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Incluyendo enteros
Qu hacen estas lneas de cdigo?
// Fig. 2.5: fig02_05.cpp
// Addition program that displays the sum of two integers.
#include <iostream> // allows program to perform input and output

// function main begins program execution


int main()
{
}

18 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Incluyendo enteros
Entendiendo el cdigo

Declaraciones de variables
// variable declarations
int number1 = 0; // first integer to add (initialized to 0)
int number2 = 0; // second integer to add (initialized to 0)
int sum = 0; // sum of number1 and number2 (initialized to 0)

Variable: ubicacin en memoria donde se almacena un valor para ser usado


por un programa.

Los identificadores number1, number2 y sum son nombres de variables.


Las tres variables son de tipo int: almacenan valores enteros.

Todas las variables deben ser declaradas con un nombre y tipo antes de que
puedan ser usadas en un programa.
19 Juan Almendriz - USFQ
Introduccin a la programacin en C++
Incluyendo enteros
Entendiendo el cdigo

Declaraciones de variables

Algunas variables del mismo tipo pueden declararse en la misma sentencia


separndolas por una coma.
int number1, number2, sum;

Tipos fundamentales: se declaran con palabras clave y se deben escribir en


minsculas, por ejemplo int, double, char.

Identificadores: serie de caracteres (letras, nmeros y guiones bajos) que no


son una keyword. No inician por un nmero. Se debera evitar que inicien con
guiones bajos. C++ es case sensitive.

20 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Incluyendo enteros
Entendiendo el cdigo

Ubicacin de las declaraciones de variables


Podran ubicarse donde quiera dentro del programa, pero siempre antes de
que sean usadas en el programa:
int main()
{
std::cout << "Enter first integer: "; // prompt user for data
int number1 = 0; // first integer to add (initialized to 0)
std::cin >> number1; // read first integer from user into number1

std::cout << "Enter second integer: "; // prompt user for data
int number2 = 0; // second integer to add (initialized to 0)
std::cin >> number2; // read second integer from user into number2

int sum = 0; // sum of number1 and number2 (initialized to 0)


sum = number1 + number2; // add the numbers; store result in sum

std::cout << "Sum is " << sum << std::endl; // display sum; end line
} // end function main
21 Juan Almendriz - USFQ
Introduccin a la programacin en C++
Incluyendo enteros
Entendiendo el cdigo

Obteniendo los valores del usuario


std::cout << "Enter first integer: "; // prompt user for data
std::cin >> number1; // read first integer from user into number1

std::cout << "Enter second integer: "; // prompt user for data
std::cin >> number2; // read second integer from user into number2

El mensaje "Enter first integer: " se denomina prompt porque


solicita al usuario realizar cierta accin: ingresar un valor.

std::cin utiliza el objeto de entrada de streams estndar cin y el


operador de extraccin para obtener un valor desde el teclado.

22 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Incluyendo enteros
Entendiendo el cdigo

Obteniendo los valores del usuario


std::cout << "Enter first integer: "; // prompt user for data
std::cin >> number1; // read first integer from user into number1

std::cout << "Enter second integer: "; // prompt user for data
std::cin >> number2; // read second integer from user into number2

El computador espera que el usuario ingrese el dato y pulse la tecla Enter,


con lo cual se enva el valor al programa.

El computador convierte el carcter en entero y lo asigna a la variable


number1.

Igual situacin ocurre para number2.


23 Juan Almendriz - USFQ
Introduccin a la programacin en C++
Incluyendo enteros
Entendiendo el cdigo

Calculando la suma de los valores ingresados por el usuario


sum = number1 + number2; // add the numbers; store result in sum

Se calcula la suma de los valores obtenidos y se asigna el resultado a la


variable sum. Se usa el operador de asignacin =.

Los operadores igual y suma son operadores binarios: tienen dos operandos.

24 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Incluyendo enteros
Entendiendo el cdigo

Mostrando el resultado
std::cout << "Sum is " << sum << std::endl; // display sum; end line

Se muestra la cadena de caracteres Sum is seguida por el valor de la


variable sum y el manipulador de stream std::endl

std::endl muestra una nueva lnea y vaca el buffer de salida: fuerza al


programa a mostrar todo los datos en el stream de salida.

Esta sentencia muestra mltiples valores de distintos tipos, concatena los


datos haciendo innecesario el uso de varias sentencias para cada tipo.

25 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Incluyendo enteros
Entendiendo el cdigo

Mostrando el resultado
std::cout << "Sum is " << sum << std::endl; // display sum; end line

Incluso podran realizarse clculos en una sentencia de salida:

std::cout << "Sum is " << number1 + number2 << std::endl;

26 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Incluyendo enteros

Ejercicio:

27 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Conceptos de memoria
Una variable siempre corresponde a una ubicacin en memoria.

Cada variable tiene un nombre, tipo, tamao y valor.


std::cin >> number1; // read first integer from user into number1

Cuando se ejecuta esta lnea, el entero que ingresa el usuario es colocado


en la ubicacin de memoria que ha sido asignada por el compilador. Esto
sobrescribe el valor previamente almacenado, es destructivo.
Cuando se lee un valor, el valor se preserva, es no destructivo.

28 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Aritmtica

Todos los operadores aritmticos son operadores binarios: toman dos


operandos.

La divisin de enteros entrega un cociente entero no redondeado, la parte


decimal se descarta (es truncada).

29 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Aritmtica

El operador mdulo % permite obtener el resto de una divisin, puede


usarse slo con nmeros enteros.

La expresin x%y obtiene el residuo de x divido para y.

Calculamos?

7%4=?

10 % 5 = ?

89 % 11 = ?

1234 % 321 = ?
30 Juan Almendriz - USFQ
Introduccin a la programacin en C++
Aritmtica
Expresiones aritmticas en una lnea

En C++ todas las expresiones deben escribirse en una sola lnea, qu


notacin es aceptable?

La notacin algebraica generalmente no es aceptable en los compiladores.

Parntesis para agrupar subexpresiones

Se usan en expresiones de C++ de la misma manera que en expresiones


algebraicas.

31 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Aritmtica
Reglas de precedencia de operadores

C++ aplica los operadores segn sus reglas de precedencia, que son las
mismas del lgebra:

1. Operadores en expresiones contenidas entre parntesis son evaluados


primero. Los parntesis tienen el primer nivel de precedencia. En caso de
tener varios parntesis, siempre se evalan primero los internos.

2. Las operaciones de multiplicacin, divisin y mdulo se efectan luego. Si


se tienen varias operaciones, se van aplicando de izquierda a derecha.
Estas operaciones tienen el mismo nivel de precedencia.

3. Al final se realizan operaciones de suma y resta. De izquierda a derecha,


mismo nivel de precedencia.
32 Juan Almendriz - USFQ
Introduccin a la programacin en C++
Aritmtica
Reglas de precedencia de operadores

33 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Operadores de igualdad y relacionales
#include <iostream> // allows program to perform input and output

using std::cout; // program uses cout


using std::cin; // program uses cin
using std::endl; // program uses endl

// function main begins program execution


int main()
{
int number1 = 0; // first integer to compare (initialized to 0)
int number2 = 0; // second integer to compare (initialized to 0)

cout << "Enter two integers to compare: "; // prompt user for data
cin >> number1 >> number2; // read two integers from user

if ( number1 == number2 )
cout << number1 << " == " << number2 << endl;
if ( number1 != number2 )
cout << number1 << " != " << number2 << endl;
if ( number1 < number2 )
cout << number1 << " < " << number2 << endl;
if ( number1 > number2 )
cout << number1 << " > " << number2 << endl;
if ( number1 <= number2 )
cout << number1 << " <= " << number2 << endl;
if ( number1 >= number2 )
cout << number1 << " >= " << number2 << endl;
} // end function main

34 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Operadores de igualdad y relacionales
Sentencia if

Permite tomar acciones alternativas basndose en si una condicin es


verdadera o falsa: si la condicin es verdadera, el cdigo contenido en el
cuerpo de la sentencia if es ejecutado, caso contrario, no se ejecuta.

Se forma con operadores de igualdad y relacionales.

Operadores relacionales: tienen el mismo nivel de precedencia, asociatividad


de izquierda a derecha.

Operadores de igualdad: mismo nivel de precedencia, menor que los


relacionales. De izquierda a derecha.

35 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Operadores de igualdad y relacionales
Sentencia if

Es posible que el intercambiar el orden de los smbolos del operando


(ejemplo != por =!) no genere un error de sintaxis, sin embargo causar
un error lgico: afectar en tiempo de ejecucin.
Error lgico fatal: ocasiona la finalizacin del programa prematuramente.
Error lgico no fatal: produce resultados incorrectos.
36 Juan Almendriz - USFQ
Introduccin a la programacin en C++
Operadores de igualdad y relacionales
Usando la sentencia if

Directiva using

using std::cout; // program uses cout


using std::cin; // program uses cin
using std::endl; // program uses endl

Eliminan la necesidad de repetir el prefijo std::, tambin puede usarse:

using namespace std;

que habilita al programa para usar todos los nombres en cualquier


encabezado estndar de C++ que un programa pueda incluir (como
<iostream>).

37 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Operadores de igualdad y relacionales
Usando la sentencia if

Comparando nmeros
if ( number1 == number2 )
cout << number1 << " == " << number2 << endl;

Compara los valores de las dos variables y prueba su igualdad, si son iguales,
las sentencia en la siguiente lnea se ejecuta.

Una sentencia if no debe finalizarse con punto y coma: significa un cuerpo


vaco.

Es recomendable incluir tabulaciones para mejorar la legibilidad de la


sentencia.

38 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Operadores de igualdad y relacionales
Usando la sentencia if

Comparando nmeros
if ( number1 != number2 )
cout << number1 << " != " << number2 << endl;

if ( number1 < number2 )


cout << number1 << " < " << number2 << endl;

39 Juan Almendriz - USFQ


Introduccin a la programacin en C++
Operadores de igualdad y relacionales
Precedencia de operadores

40 Juan Almendriz - USFQ

Вам также может понравиться