0% encontró este documento útil (0 votos)
74 vistas

Cplusplus 4

El documento trata sobre la programación estructurada en C y C++. Explica que C se originó a partir de otros lenguajes como BCPL y B, y que C++ es un lenguaje híbrido que combina programación estructurada y orientada a objetos. Luego describe la estructura básica de los programas en C y C++, incluyendo funciones, cabeceras, cuerpos y más. También cubre temas como operaciones matemáticas, condicionales if, funciones matemáticas incorporadas y más.

Cargado por

sergio
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
74 vistas

Cplusplus 4

El documento trata sobre la programación estructurada en C y C++. Explica que C se originó a partir de otros lenguajes como BCPL y B, y que C++ es un lenguaje híbrido que combina programación estructurada y orientada a objetos. Luego describe la estructura básica de los programas en C y C++, incluyendo funciones, cabeceras, cuerpos y más. También cubre temas como operaciones matemáticas, condicionales if, funciones matemáticas incorporadas y más.

Cargado por

sergio
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

Programación estructurada

1.- INTRODUCCIÓN

El lenguaje C se origina con el lenguaje BCPL, creado por Martin Richards, el lenguaje
B implementado por Ken Thompson y por último el lenguaje C , implementado por
Dennis Ritchie en 1971.

Lenguaje C es un lenguaje de programación estructurado de propósito general. Se


usa a un nivel más bajo, entre lenguaje máquina y el lenguaje de alto nivel.

En lenguaje C la unidad básica de programación es la función y el lenguaje C++ es un


lenguaje hibrido que maneja la programación estructurada y la programación
orientada a objetos lo que incrementa su productividad.

1.1.- Estructura de un programa en C y C++


Todo programa en C consta de una o más funciones, una de ellas es main. El
programa siempre comienza por la ejecución de la función main.

Cada función debe contener:


• Una cabecera de la función, que consta del nombre de la función,
después unos paréntesis para una lista opcional de argumentos.
• Después el cuerpo de la función que describe el conjunto de sentencias
o conjunto de instrucciones encerradas por un par de llaves. Cada
sentencia de expresión debe terminar con punto y coma (;)

C++ es muy potente, complejo y extenso y como sus estructuras básicas son las
mismas que otros muchos lenguajes resulta de interés trabajar con él

1.2.- Programar bajo entorno Linux


En Linux podemos utilizar editores de texto preinstalados en el sistema como Gedit y
compiladores. Tecleamos el programa y lo guardamos con extensión cpp. Por ejemplo
guardaremos el programa que vamos a realizar como hola.cpp, abriremos un terminal
y teclearemos g++ hola.cpp –o hola (g++ es nombre del compilador, hola.cpp es el
nombre del programa, -o hola es lo que indica el nombre que tendrá el ejecutable).
Si no aparece ningún mensaje de error, el último paso es lanzarlo: ./hola

Programar bajo entorno Windows:


En Windows no hay ningún editor avanzado ni compilador así que necesitaremos
descargar un entorno de desarrollo que incluya editor y compilador. Vamos a
descargar Dev-C++ versión (5.x), “Orwell Dev_C++” (en la versión que incluye el
compilador TDM-GCC), instalarlo y crear un nuevo programa en File>New>Source
File. El programa se guardará con una extensión .cpp.
El botón compile permite comprobar si hay errores y generar el ejecutable. Al hacer
clic sobre Run se lanzará el programa resultante.

Hola, mundo
Empezamos por escribir algo en la pantalla.

//Primer programa de ejemplo en C++ Comentario

#include <iostream> Se trata de incluir una librería para que reconozca los
procedimientos de entrada y
salida con cin y cout que se usan para guardar
algo introducido por teclado en una variable,
leer teclado o mostrar algo por pantalla,
escribir en pantalla.

int main () Lo que aparece a continuación es el Cuerpo del programa



std::cout <<” Hola mundo”; Escribe en pantalla lo que se indica entre comillas
dobles.
return 0; Indica que el programa ha terminado sin errores

2.- PROGRAMACIÓN EN C++, CÁLCULOS.

2.1.- Realizar operaciones prefijadas

Para realizar operaciones matemáticas indicamos la operación sin cerrarla entre


signo menor doble:

//Suma de dos números


#include <iostream>
int main ()

std::cout <<6+7; Cuando ejecutamos el programa en pantalla aparece 13
return 0;
}
Los operadores aritméticos son:

Operador Acción Ejemplo Resultado


- Resta X = 5 - 3 X vale 2
Suma X = 5 + 3
Multiplicación X = 2 * 3

División X = 6 / 3
Módulo X = 5 % 2

+ X vale 8
* X vale 6
/ X vale 2
% X vale 1
-- Decremento X = 1; X-- X vale 0
++ Incremento X = 1; X++ X vale 2

Hallar el resto de una división también llamado módulo es una importante operación
en programación.

//módulo
#include <iostream>
int main ()

std::cout <<48%5; El resultado es el resto de dividir 48 entre 5; es decir 3.
return 0;
}

2.2.- Escribir varios textos


Para escribir varios textos utilizamos una única orden cout pero cada texto
precedido por <<

//Suma y resultado
#include <iostream>
int main ()

std::cout <<”6+7=” << 6+7; Cuando el programa se ejecute aparecerá en
pantalla 6+7= 13
return 0;
}

2.3.- Escribir en varias líneas


Enviar cout con un símbolo especial denominado std::endl (abreviatura de end of
line), salto de línea.

//Suma y resultado en dos líneas


#include <iostream>
int main ()

std::cout <<6+7= <<std::endl << 2.4.- Pedir datos al usuario
6+7 <<std::endl ;

Cuando el programa se ejecute aparecerá


en pantalla 6+7=13, con salto de línea.
return 0;
}
Para leer datos se emplea la orden std::cin, y estos datos se guardaran en una
variable.Al principio del programa se deben declarar las variables, detallando el
tipo de datos que se van a guardar, por ejemplo, int si es un número entero y el
nombre de esa variable.

Vamos a pedir un número al usuario y cuando se introduzca ese número, se calculará


su cuadrado.

//Cuadrado de un número
#include <iostream>

int main ()

int numero; numero guarda un número entero std::cout<<”Dime un
numero:”; Pedimos el número al usuario std::cin>>numero; Leemos un dato
que guardamos en la variable numero.
std:: cout <<”El cuadrado de tu numero es”<<numero*numero;
Calculamos y mostramos
el
resultado.
return 0;
}

Problema 1: Calcula la resta de dos números que introduzca el usuario. Utiliza tres
variables.
2.5.- Evitar escribir std::
En programas largos puede resultar tedioso escribir std:: delante de cada cout y de
cada cin. Añadiendo using namespace std; al principio del programa se evitará
esto último.

// using namespace std;


#include <iostream>
using namespace std;

int main ()

int n1, n2, suma;
cout<<”Dime un numero:”;
cin>>n1;
cout<<”Dime otro numero:”;
cin>>n2;
suma = n1+n2;
cout <<”Su suma es” <<suma <<endl;

return 0;
}

2.6.- Números con decimales


Para poder ver los decimales de los números resultado de una operación, deberemos
utilizar una variable de tipo float, que tiene una precisión de siete cifras:

//Decimales
#include <iostream>
using namespace std;

int main ()

float n1, n2, cociente;
cout<<”Dime un numero:”;
cin>>n1;
cout<<”Dime otro numero:”;
cin>>n2;
cociente = n1/n2;
cout <<”La división es”<<cociente <<endl;

return 0;
}
Si queremos una precisión mayor utilizaremos una variable de tipo double que
tiene 15 cifras de precisión y permite disminuir errores de redondeo aunque ocupa
más espacio.

2.7.- Funciones matemáticas


Para utilizar funciones matemáticas que tiene incorporadas C++, incluiremos cmath al
principio del código (#include<cmath>).En funciones trigonométricas, el ángulo se
indica en radianes, no en grados.
• Raíz cuadrada: sqrt(x) •
x elevado a y: pow(x,y) • int main ()
coseno: cos(x) ⎨
• seno: sin(x) int numero=9;
• Tangente: tan(x) double raiz = sqrt(numero)”;
• Exponencial de x (e elevado a x):
//seno exp(x)
#include <iostream> • Logaritmo natural o neperiano en
#include<cmath> base e: log(x)
using namespace std; • Logaritmo en base 10: log10(x)
cout<<”La raiz de:” <<numero<<”es”<<raiz << endl;

float angulogrados=45;
float PI=3.14159265;
double anguloradianes=angulogrados*PI/180;
cout <<”El seno de” <<angulogrados << “es”<<sin(anguloradianes) << endl;

return 0;
}

Problema 2: Crea un programa que calcule el coseno de ángulos con los siguientes
grados: 30, 45,60 y 90

Problema 3: Realiza un programa que pida cuatro notas de examen a un alumno


calcule su media.

Problema 4: Crea un programa que pida al usuario una cantidad de pulgadas y


calcule su equivalencia en metros (1 pulgada = 0,0254 m). ¿qué tipo de variable
necesitas usar?
3.- CONDICIONES

3.1.- if
Para comprobar si se cumple una condición se emplea if (condición) sentencia;

//comprobar si un número es positivo


#include <iostream>
using namespace std;

int main ()

int numero;
cout<<”Escribe un número:”;
cin>> numero;
if (numero>0)
cout <<”El número es positivo.”;

return 0;
}
La orden if permite ejecutar una única sentencia en caso de que se cumpla la
condición, para poder realizar varias sentencias las agruparemos entre llaves ⎨⎬
formando una sentencia compuesta.

// sentencia compuesta
#include <iostream>
using namespace std;

int main ()

int numero;
cout<<”Escribe un número:”;
cin>> numero;
if (numero>0)

cout <<”El número introducido es positivo.”;
cout <<” También puedes escribir números negativos.”;

return 0;
}
3.2.- El caso contrario: else
Qué hacemos si no se cumple una condición.

// if y else
#include <iostream>
using namespace std;

int main ()

int numero;
cout<<”Escribe un número:”;
cin>> numero;
if (numero>=0)
cout <<”El número introducido es positivo.”;

else
cout <<”El número introducido es negativo.”;

return 0;
}

3.3.- Operadores relacionales: <, <=, >, >=, ==, !=


La mayor parte de los operadores de comparación están claros pero hay algunos un
poco menos evidentes:

Operador Relación Ejemplo Resultado


< Menor X = 5; Y = 3; X vale 5
if(x < y) x+1; Y vale 3
Mayor X = 5; Y = 3;
if(x > y) x+1;
Menor o igual X = 2; Y = 3;
if(x <= y) x+1;

Mayor o igual X = 5; Y = 3;
if(x >= y) x+1;

> X vale 6
Y vale 3
<= X vale 3
Y vale 3
>= X vale 6
Y vale 3
== Igual X = 5; Y = 5; X vale 6
if(x == y) x+1; Y vale 5
¡= Diferente X = 5; Y = 3; X vale 5
if(x ¡= y) y+1; Y vale 4

// Comprobar el valor de una variable


#include <iostream>
using namespace std;
int main ()

int numero;
cout<<”Escribe un número:”;
cin>> numero;
if (numero==13)
cout <<”Has escrito trece.”;

return 0;
}

Problema 5
Crea un programa que pida un número entero al usuario e indique si es múltiplo de 5.
Para ello, deberá comprobar si el resto que obtiene al dividir dicho número entre cinco
es cero.

Problema 6
Realiza un programa que pida dos números e indique si el primero es múltiplo del
segundo.

Problema 7
Crea un programa que pida al usuario dos números enteros y diga cuál es menor.

Problema 8
Realiza un programa que pida dos número al usuario. Si el segundo no es cero,
mostrará la división de ambos; de lo contrario, aparecerá un mensaje de error.

3.4.- Condiciones con operadores lógicos: &&, ||, !


Las condiciones se pueden encadenar con operadores lógicos “y”, “o”, “no” como se
muestra en la tabla adjunta.

Operador Acción Ejemplo Resultado


&& AND Lógico A && B Si ambos son verdaderos se obtiene
verdadero(true)
OR Lógico A || B

|| Verdadero si alguno es verdader ! Negación Lógica !A Negación de a


// operadores lógicos
#include <iostream>
using namespace std;

int main ()

int numero;
cout<<”Escribe un número:”;
cin>> numero;
if (!(numero==0))
cout <<”No es cero.”;
if ((numero==2)||(numero==3))
cout <<” Es dos o tres.”;
if ((numero>=2)&&(numero<=7))
cout <<” Esta entre 2 y 7 (incluidos).”;

return 0;
}

3.5.- Operador condicional: ?


Para asignar un valor a una variable en función de si se cumple o no una condición
utilizaremos el operador condicional u operador ternario ?.

Variable = condición ? valor si se cumple: valor si no se cumple Si se

cumple la condición, toma el primer valor y si no se cumple es segundo.


Veremos un ejemplo en comparación con el if equivalente:

// Operador condicional
#include <iostream>
using namespace std;

int main ()

int a=3, b=5;
int mayor= a>b ? a:b
cout<<”El mayor es:” << mayor;

return 0;
}

// If alternativo al operador condicional


#include <iostream>
using namespace std;

int main ()

int a=3, b=5, mayor;
if (a>b)
mayor = a;
else
mayor = b;
cout <<” el mayor es:”<< mayor;

return 0;
}

3.6.- switch
Para analizar varios valores posibles de una misma variable, se puede emplear la
orden switch. La variable entre paréntesis y cada posible valor se indica tras la
palabra case:. Las ordenes a ejecutar deben terminar con break y usando default se
indica qué hacer si no se da ninguno de los casos preestablecidos.

// Condiciones con switch


#include <iostream>
using namespace std;

int main ()

int numero;
cout <<” Introduce un número del 1 al 5”;
cin>> numero;
switch (numero)

case 1: cout<<”Uno”;
break;
case 2: cout<<”Dos”;
break;
case 3: cout<<”Tres”;
break;
case 4: cout<<”Cuatro”;
break;
case 5: cout<<”Cinco”;
break;
default: cout<<”Valor incorrecto!”;
}
return 0;
}

Cuando varios casos tengan que mostrar un mismo resultado, se puede dejar vacío el
primero de ellos. Por ejemplo como 9 y 10 son ambos un sobresaliente, case 9:
case 10: cout<<”Sobresaliente”;
break;

Problema 9
Crea un programa que pida al usuario tres números reales e indique el valor numérico
del mayor de ellos. Tener en cuenta que el usuario puede meter algún valor repetido.

Problema 10
Elabora un programa que pida al usuario dos números enteros y diga:” Uno de los
números es negativo”, “los dos números son negativos” o bien “ Ninguno de los
números es negativo”, según corresponda.

Problema 11
Diseña, usando if, un programa que pida al usuario un número del 1 al 10 y diga si es
par o no.

Problema 12
Elabora, usando switch, un programa que pida al usuario un número del 1 al 10 y
escriba el nombre de la nota correspondiente.

Problema 13
Crea un programa, usando switch, que pida a un usuario un número del 1 al 10 y
diga si es múltiplo de 3 o no.

4.- BUCLES
Muchas veces tendremos que verificar las condiciones más de una vez y para ello
utilizaremos bucles.

4.1.- while
Para repetir una condición utilizaremos while (mientras) en lugar de if.

// Pedir un número positivo con while


#include <iostream>
using namespace std;

int main ()

int numero;
cout <<” Escribe un numero positivo”;
cin>> numero;

while (numero<=0)

cout <<” Ese numero no es positivo”<<endl;
cout <<” Escribe otro numero positivo”;
cin>> numero;
}

return 0;
}
Si el usuario escribe un número negativo, le dirá que no es negativo y que escriba
uno positivo tantas veces como el usuario meta números negativos. Una vez que
meta un número positivo, se saldrá del while y terminará el programa porque ya no
se cumple la condición del while.

4.2.- do-while
El do-while, haz mientras se cumpla la condición establecida.

// Pedir un número positivo con do-while


#include <iostream>
using namespace std;

int main ()

int numero;
do

cout <<” Escribe un numero positivo”;
cin>> numero;
if(numero<=0)
cout <<” Ese numero no es positivo”<<endl;
}
while (numero<=0);
return 0;
}
Con while, si introducimos un número positivo la primera vez, la condición del while
no se cumple y por tanto no se entrará en el bucle while y el programa terminará sin
embargo con do-while, siempre se realizará una vez las órdenes que se indiquen ya
que la condición se comprobará al final.

4.3.- Contadores
En programación se suelen usar mucho contadores para lo que usaremos while,
aumentando el valor de una variable.

// Contador con while


#include <iostream>
using namespace std;

int main ()

int numero=1;
while (numero<=10)

cout<<numero<< “ “;
numero=numero+1;
}
return 0;
}

El contador mostrará los números de 1 al 10 separados por tantos espacios como se


meta entre las comillas.

4.4- for
Para crear contadores se puede usar una orden, for (para) de modo que podamos
agrupar los tres primeros pasos, valor inicial, incremento y comprobación.

// Contador con for


#include <iostream>
using namespace std;

int main ()

int numero;
for(numero=1; numero<=10; numero=numero+1)
cout<<numero<< “ “;
return 0;
}
Podemos salir de un bucle antes de tiempo utilizando la orden
break. // Interrumpir un bucle con break
#include <iostream>
using namespace std;

int main ()

int numero;
for (numero=1; numero<=10; numero++)

if (numero == 5)
break;
cout << numero <<” ”;
}
return 0;
}

A veces programamos de forma que un bucle no tenga salida de forma intencionada o


por error.
// Bucles sin fin
#include <iostream>
using namespace std;

int main ()

while(3>2) cout>>”Hola”;
for (int numero=0; numero<=10;)
cout << “ Hola “;
for (;;)
cout << “ Hola “;
return 0;
}

Podemos anidar bules para por ejemplo escribir tablas de multiplicar del 1 al
5. // Bucles anidados
#include <iostream>
using namespace std;

int main ()

int tabla, numero;
for (tabla=1; tabla<=5; tabla++)

for(numero = 1; numero<=10; numero++)
cout<<tabla<<”por”<<numero <<”es”<<tabla*numero<<endl;
break;
cout << endl;
}
return 0;
}
4.5- Incremento
Incrementar variables es una operación tan común que algunos lenguajes incorporan
una forma abreviada numero++.

// Contador con for


#include <iostream>
using namespace std;

int main ()

int numero;
for(numero=1; numero<=10; numero++)
cout<<numero<< “ “;
return 0;
}

4.6 Otras operaciones aritméticas abreviadas


Para aumentar o disminuir el valor de una variable en varias unidades utilizamos una
notación abreviada en vez de valor = valor + 3 utilizamos valor += 3

// Contador con for decrementando de 2 en 2


#include <iostream>
using namespace std;

int main ()

int numero;
for(numero=10; numero>=0; numero-=2)
cout<<numero<< “ “;
return 0;
}

4.7- Declarar una variable dentro de for


Podemos declarar variables en otro sitio que no sea al principio del programa. Es muy
normal que declaremos variables al principio de un for de modo que la variable
desaparece al terminar el for.
// Declarar una variable dentro de un for
#include <iostream>
using namespace std;

int main ()

for(int numero=10; numero>=0; numero-=2)
cout<<numero<< “ “;
return 0;
}
Problema 14
Diseña un programa, usando while, que escriba en pantalla, de mayor a menor, los
números impares pares del 1 al 30.

Problema 15
Elabora un programa que dé al usuario la oportunidad de adivinar un número del 1 al
100, en un máximo de seis intentos. En cada intento, el programa deberá avisar al
usuario de si se ha pasado o se ha quedado corto.

Problema 16
Crea un programa que pida números positivos al usuario y calcule la suma de todos
ellos (saldremos del bucle con un número negativo o con el cero).

Problema 17
Elabora un programa que pida al usuario su código de usuario y su contraseña, y que
no le permita finalizar hasta que introduzca el código de usuario 2017 y la contraseña
7890.

5.- ESTRUCTURAS BÁSICAS DE DATOS

5.1.- Contacto con los arrays


Un array es un conjunto de elementos del mismo tipo. Por ejemplo, un array “datos”
que tenga capacidad para 7 elementos (int datos[7]) contendrá desde el primer
elemento datos[0] hasta el último datos[6]. En los arrays se suele utilizar un for.

// Arrays1
#include <iostream>
using namespace std;
int main ()

int datos[7] = (300,200,100,0,-100,250,175);
int suma;
int i;
for (i=0; i<=6; i++)
suma +=datos[i];
cout<<”Su suma es”<<suma;
return 0;
}

5.1.- Un array para almacenar datos


Se suelen utilizar mucho los arrays para guardar datos que mete el usuario y luego
deberán ser manipulados, por ejemplo pedir al usuario que meta cinco datos y que el
programa los muestre en el orden inverso al que fueron introducidos.
// Arrays2
#include <iostream>
using namespace std;

int main ()
⎨ int datos[5];
int i;
for (i=0; i<=4; i++)

cout<<”Dime el dato”<<i+1<<”:”;
cin>>datos[i];
}
for (i=4; i>=0; i--)
cout<<”El dato”<<i+1<<”es”<<datos[i]<<endl;
return 0;
}

Problema 18
Crea un programa que pida cuatro números al usuario, los memorice utilizando un
array, calcule su media aritmética y , finalmente, muestre en pantalla tanto la media
como los datos tecleados.

5.2.- Arrays bidimensionales


Para declarar arrays de dos o más dimensiones por ejemplo si deseamos guardar
datos de dos o más grupos de medidas en un experimento, existen dos opciones: •
Usar double medidas[20] y recordar que las diez primeras medidas pertenece un
primer grupo y el resto al segundo grupo.
• Usar double medidas [2][10] de modo que agrupamos en 2 grupos de 10 datos
cada grupo las medidas siendo [0][i]los datos del primer grupo de medidas y
[1][i] los datos del segundo grupo de medidas y de forma que el primer dato es
el 0 y el último es 9 de cada grupo.

// Arrays bidimensionales
#include <iostream>
using namespace std;

int main ()
⎨ int medidas[2][10];

⎨2.25, 2.27, 2.30, 2.32, 2.33, 2.35, 2.36, 2.37, 2.38, 2.39}
⎨2.23, 2.26, 2.27, 2.29, 2.31, 2.32, 2.33, 2.35, 2.38, 2.40}
};
cout<<”La tercera medida de la serie 2 es ”<<tiempos[1][2];
return 0;
}
5.3.- Valores iniciales de arrays
Los datos de un array no tienen por qué tener como valor inicial 0, ya que pueden
contener “basura”, es decir, lo que en la posición de memoria que se está usando
quedé guardado de una operación anterior al igual que ocurre en los espacios
reservados para variables simples de modo que:

//Contenido de datos sin inicializar


#include <iostream>
using namespace std;

int main ()
⎨ float valor;
int datos[3];
cout<<”valor vale”<<valor<endl;
for (int i=0; i<=2; i++)
cout<<”El dato”<<i+1<<”es”<<datos[i]<<endl;
return 0;
}

5.4.- Arrays sobredimensionados


Cuando no se sabe la cantidad de datos que se van a almacenar empleamos arrays de
gran tamaño y llevamos un contador de la cantidad de datos que realmente contiene
por ejemplo:
//Array sobredimensionado
#include <iostream>
using namespace std;

int main ()
⎨ int datos[1000];
int contador=0;
int actual;
do

cout<<”dime un dato (5555 para salir):”;
cin>>actual;
if ((actual != 55555) && (contador<=999))

datos[contador] = actual;
contador++;
}
}
while ((actual != 55555) && (contador<=999));
cout<<”Los”<<contador<<”datos son: ”;
for (int i=0; i<contador; i++)
cout<<datos [i]<<” ”;
return 0;
}

Problema 19
Crea un programa que pida 11 números al usuario, los memorice (utilizando una tabla
no variables), calcule su media aritmética y finalmente muestre en pantalla los datos
tecleados y la media.

Problema 20
Elabora un programa que almacene en una tabla el número de días que tienen cada
mes (suponiendo que se trata de un año no bisiesto), pida al usuario que indique un
mes determinado (considerando 1=enero u 12= diciembre) y muestra en pantalla el
número de días que tiene el mes indicado.

Problema 21
Crea un programa que pida al usuario diez números enteros e indique cuál es el
menor.

Problema 22
Busca información sobre la “ordenación de burbuja” y crea un programa que pida diez
datos numéricos al usuario y los muestre ordenados de menor a mayor.

También podría gustarte