Vous êtes sur la page 1sur 36

UNIVERSIDAD PRIVADA DEL NORTE (UPN)

CARRERA: INGENIERIA DE SISTEMAS COMPUTACIONALES

PROFESOR: MANUEL ENRIQUE MALPICA RODRIGUEZ

INTEGRANTES:

 Reyes Ruiz, Brayan

 Tejada Reyes, Andrés

 Carvalho Irujo, Aldair

1
Índice

INTRODUCCION.....................................................................................................................................3
1. Estructuras de control ...................................................................................................................4
2. Estructuras repetitivas: .................................................................................................................8
3. Vectores y matrices .....................................................................................................................11
4. Arreglos de caracteres ................................................................................................................13
Bibliografía ........................................................................................................................................34

2
INTRODUCCION

Este proyecto tiene como objetivo hacer que el estudiante aplique lo aprendido
en el curso a partir del análisis de un caso y haciendo uso de las diversas
estructuras de control en un lenguaje de programación de alto nivel,
demostrando lógica, legibilidad y buenas prácticas en la solución de problemas.

En este proyecto de programación se desarrollará una herramienta muy básica


que buscará mostrar una serie de pequeños programas integrados en uno solo,
por lo que se hace necesario que el estudiante consulte diferentes medios y sus
nuevos conocimientos los integre a los existentes.

Prácticamente, todo software comercial está escrito sobre la base de este


lenguaje “C++”, ya que provee una visión muy profunda de los fundamentos de
programación y del funcionamiento básico de las computadoras, sin llegar a
tener la complejidad de un lenguaje ensamblador y sin necesidad de tener
extensas librerías incorporadas en otros lenguajes.

La importancia del estudio de algoritmos radica en que es el punto de entrada al


fascinante mundo de la programación de computadoras. Al implementar
algoritmos, utilizamos nuestros conocimientos en diversas áreas para resolver
problemas y los estructuramos de tal manera que podamos establecer una serie
de pasos para llegar a su solución.

Objetivos:
Se tiene como objetivo, en primer lugar, la demostración de lo aprendido por los
alumnos en este curso de Fundamentos de Algoritmos.

Se debe demostrar que, a lo largo del ciclo, los alumnos han aprendido diversas
formas para desarrollar distintos tipos de ejercicios con la ayuda de una interfaz
de desarrollo en c++ llamado “Zinjai”.

Igualmente, que, los alumnos están preparados para cualquier tipo de ejercicios
con respecto a: Estructuras de control, estructuras repetitivas y todo tipo de
arreglos.

A continuación, se presentará todos los temas abordados en clase.

3
1. Estructuras de control

Las estructuras de control controlan la secuencia o flujo de ejecución de un


programa o función. Las estructuras de control permiten combinar sentencias o
instrucciones individuales en una simple unidad lógica con un punto de entrada
y un punto de salida.

Las estructuras de control se dividen en tres grandes categorías en función del


flujo de ejecución: secuencial, condicional y repetitiva.

Estructura secuencial
La estructura secuencial está formada por una secuencia de
instrucciones que se ejecutan en orden una a continuación de la otra.

Cada una de las instrucciones están separadas por el carácter punto y coma (;).
No obstante, en algunos casos nos interesará agrupar en un bloque una serie de
instrucciones, como veremos al explicar las estructuras de selección y de
iteración. El bloque de sentencias se define por el carácter llave de apertura ({)
para marcar el inicio del mismo, y el carácter llave de cierre (}) para marcar el
final.
Ejemplo:
{
Instrucción 1;
Instrucción 2;
Instrucción 3;
.....
Instrucción N;
}
“Sin embargo, en caso de que el bloque de sentencias este constituido por una
única sentencia no es obligatorio el uso de las llaves de apertura y cierre ({ })”.

(Hernández, 2013 )

Estructura condicional
Las estructuras condicionales controlan si una sentencia o bloque de sentencias
se ejecutan, en función del cumplimiento o no de una condición o expresión
lógica.

C++ tiene dos estructuras de control para la selección, “if” y “switch”.

4
Instrucción “IF”:
Esta instrucción hace que se ejecuten unas sentencias u otras dependiendo del
valor que toma una condición.

La instrucción “if” puede ser simple o doble:

Alternativa simple:

if (condición)

instrucción1;

if (condición)
{
Instrucción 1;
Instrucción 2;
Instrucción 3;
}
Alternativa doble.
if (condicion)
instrucción1;
else {
instrucción2;
}
if (condicion)
{
Instrucción 1;
instrucción 2;
}
else
{
instrucción 3;
instrucción 4;
}

Ejemplo de estructura condicional en C++. Programa que lee un número entero


por teclado y muestra si es par o impar.

5
#include <iostream>
using namespace std;
int main(void)
{
int num;
cout <<"Introduzca numero:";
cin >> num;
if ((num%2)==0)
cout << "PAR" << endl;
else
cout << "IMPAR" << endl;
system("pause");
}

Las instrucciones “if”-“else” se pueden anidar obteniéndose una estructura


condicional múltiple:
if(condicion1)
instrucción1;
else if(condicion2)
instrucción2;
else if(condicion3)
instrucción3;
else if(condicion4)
instruccion4;
else
instrucción5;

instrucción 6;
instrucción 7;
......

En este caso se evalúa la condicion1; si es cierta, se ejecuta la instrucción1 y se


continúa por la instrucción 6 después del bloque de “if-else” anidados. Si la
condición1 es falsa, se evalúa la condicion2, y así sucesivamente.
En caso de no ser cierta ninguna de las condiciones, la sentencia que se ejecuta
es la del último “else”, es decir, la instrucción 5.

Ejemplo de estructura condicional múltiple en C++. Programa que lee un número


entero que corresponde a una hora y muestra un mensaje según la hora que se
haya leído.

#include <iostream>
using namespace std;
int main(void)
{
int hora;
cout << "\nIntroduzca una hora (entre 0 y 24): ";
cin >> hora;
if ((hora >= 0) and (hora < 12))

6
cout << "\nBuenos dias\n";
else if ((hora >= 12) and (hora < 18))
cout << "\nBuenas tardes\n";
else if ((hora >= 18) and (hora < 24))
cout << "\nBuenas noches\n";
else
cout << "\nHora no válida\n";
system("pause");
}

Importante: La instrucción cout<<endl; se ejecutara independientemente del


resultado de la expresión, pues esta fuera del condicional.

Instrucción “switch":
La sentencia “switch” es una instrucción en C++ que se utiliza para seleccionar
una de entre múltiples alternativas. La sentencia “switch” es especialmente útil
cuando la selección se basa en el valor de una variable simple discreta o de una
expresión simple denominada expresión de control o selector.

La forma general de esta expresión es la siguiente:

switch (expresión)
{
case constante1:
instrucciones;
break;
case constante 2:
instrucciones;
break;
···
default:
instrucciones;
}

En una instrucción “switch”, expresión debe ser una expresión con un valor
entero, y constante1, constante2, deben ser constantes enteras, constantes de
tipo carácter o una expresión constante de valor entero. Expresión también
puede ser de tipo “char”, ya que los caracteres individuales tienen valores
enteros
Dentro de un case puede aparecer una sola instrucción o un bloque de
instrucciones.
La instrucción “switch” evalúa la expresión entre paréntesis y compara su valor
con las constantes de cada case. Se ejecutarán las instrucciones de aquel case
cuya constante coincida con el valor de la expresión, y continúa hasta el final del
bloque o hasta una instrucción que transfiera el control fuera del bloque del
“switch” (una instrucción break, o return). Si no existe una constante igual al valor

7
de la expresión, entonces se ejecutan las sentencias que están a continuación
de default si existe (no es obligatorio que exista, y no tiene porqué ponerse
siempre al final).

Ejemplo de uso de la instrucción switch en C++. Programa que lee dos números
y una operación y realiza la operación entre esos números.

#include <iostream>
using namespace std;
int main(void)
{
int A,B, Resultado;
char operador;
cout << "Introduzca un numero:";
cin >> A;
cout << "Introduzca otro numero:";
cin >> B;
cout <<"Introduzca un operador (+,-,*,/):";
cin >> operador;
Resultado = 0;
switch (operador)
{
case '-' : Resultado = A - B;
break;
case '+' : Resultado = A + B;
break;
case '*' : Resultado = A * B;
break;
case '/' : Resultado = A / B; //suponemos B!=0
break;
default : cout << "Operador no valido"<< endl;
}
cout << "El resultado es: ";
cout << Resultado << endl;
system("pause");
}

Importante: Si se olvida una instrucción break; en una sentencia “switch”, el


compilador no emitirá un mensaje de error, ya que sintácticamente está correcta,
pero no realizará las tareas previstas.

2. Estructuras repetitivas

Instrucción “While” (mientras):


Esta instrucción está reservada para indicar que se va un bucle “pretest” , le
indica al procesador que ejecute el cuerpo del bucle repetidas veces, siempre y
cuando la condición sea verdadera (true).

8
Ejecuta una instrucción o un bloque de instrucciones cero o más veces,
dependiendo del valor de la condición.

Se evalúa la condición, y si es cierta, se ejecuta la instrucción o bloque de


instrucciones y se vuelve a evaluar la condición; pero si la condición es falsa, se
pasa a ejecutar la siguiente instrucción después del “while”.

Ejemplo de instrucción “while” en C++. Programa que lee números enteros hasta
que se lee un número negativo. Se muestra la suma de todos los números leídos
excepto el número negativo.

/*Programa que lee números hasta que se lee un negativo y muestra


la
suma de los números leídos */
#include <iostream>
using namespace std;
int main(void)
{
int suma, num;
suma = 0;
cout << "Introduzca un numero: ";
cin >> num;
while (num >= 0)
{
suma = suma + num;
cout << "Introduzca un numero: ";
cin >> num;
}
cout << endl << "La suma es: " << suma << endl;
system("pause");
}

Importante: Si la variable control no se actualiza en el cuerpo del bucle “ while”, este


se ejecutará por siempre, ya que la condición nunca llega a ser falsa y se le
denomina bucle infinito. Esto no debe ocurrir en una buena programación.

Instrucción “do while” (hacer mientras):


Ejecuta una instrucción o un bloque de instrucciones, una o más veces,
dependiendo del valor de la condición.
Se ejecuta la instrucción o bloque de instrucciones y a continuación se evalúa la
condición. Si la condición es cierta, se vuelve a ejecutar la instrucción o bloque
de instrucciones, y si es falsa, pasa a ejecutarse la siguiente instrucción después
del “do-while”.
Cuando se utiliza una instrucción “do-while” el bloque de instrucciones se ejecuta
al menos una vez, ya que la condición se evalúa al final. En cambio, con una
instrucción “while”, puede suceder que el bloque de instrucciones no llegue a
ejecutarse nunca si la condición inicialmente es falsa.

9
Do
{
Instrucción 1;

..............

Instrucción N;

} While (condición);

Ejemplo de instrucción do while en C++. Programa que lee un número entero. El


número debe estar comprendido entre 1 y 100.

/* lee un número entre 1 y 10 */


#include <iostream>
using namespace std;
int main(void)
{
int numero;
do
{
cout << "Introduzca un numero entre 1 y 100: ";
cin >> numero;
}
while (numero < 1 || numero > 100);
}

Instrucción “for” (para):


Es el bucle o ciclo más adecuado cuando se conoce a prioridad la cantidad de veces a
ejecutarse el cuerpo del bucle o ciclo, es mejor que implementar un bucle “while” controlado
por contador, ya que ofrece más control sobre la inicialización, evaluación e incremento de la
variable control (contador) del bucle o ciclo. La sentencia o grupo de sentencias se ejecuta
una vez por cada valor de un rango especificado por anticipado.

A continuación de la palabra “for” y entre paréntesis debe haber siempre tres


zonas separadas por punto y coma:

-Zona de inicialización
-Zona de condición
-Zona de incremento ó decremento.

En alguna ocasión puede no ser necesario escribir alguna de ellas. En ese caso
se pueden dejar en blanco, pero los puntos y coma deben aparecer.
El funcionamiento de un bucle for el siguiente:

10
1. Se inicializa la variable o variables de control.
2. Se evalúa la condición.
3. Si la condición es cierta se ejecutan las instrucciones. Si es falsa, finaliza la
ejecución del bucle y continúa el programa en la siguiente instrucción después
del for.
4. Se actualiza la variable o variables de control (incremento/decremento).
5. Se pasa al punto 2.

Esta instrucción es especialmente indicada para bucles donde se conozca el


número de repeticiones que se van a hacer.
Como regla práctica podríamos decir que las instrucciones “while” y “do-while”
se utilizan generalmente cuando no se conoce a priori el número de pasadas, y
la instrucción “for” se utiliza generalmente cuando sí se conoce el número de
pasadas.

Ejemplo de instrucción “for” en C++. Programa que muestra los números del 1 al
10.

/* muestra los números de 1 a 10 */


#include <iostream>
using namespace std;
int main(void)
{
int n;
for (n = 1; n <= 10; n++)
{
cout << n << endl;
}
system("pause");
}

(Torre Alba, 2017)

3. Vectores y matrices
Vectores:
Un vector, también llamado array(arreglo) unidimensional, es una estructura de
datos que permite agrupar elementos del mismo tipo y almacenarlos en un solo
bloque de memoria juntos, uno después de otro. A este grupo de elementos se
les identifica por un mismo nombre y la posición en la que se encuentran. La
primera posición del array es la posición 0.

Podríamos agrupar en un array una serie de elementos de tipo enteros, flotantes,


caracteres, objetos, etc.

Crear un vector en C++ es sencillo, seguimos la siguiente sintaxix: Tipo


nombre[tamaño];

11
Ejemplo:
#include <iostream>
#include <cmath>
using namespace std;
void LeerX(int n, float x[]);
void MediaGeo(int n, float x[]);
int main(int argc, char *argv[]) {

float x[50];
cout<<"numero de datos a leer:";
int n;
cin>>n;
LeerX(n,x);
MediaGeo(n,x);
return 0 ;
}//ingreso datos en vector
void LeerX(int n,float x[]);{
for(int i=0; i<n; i++)
{
cout<<"ingrese elemento["<<i<<"]:";
cin>>x[i];
}
//calcula la media geometrica

void MediaGeo(int n,float x[]);


float p=1;
for(int i=0; i<n; i++){
p=p*x[i];}
cout<<endl;
cout<<"la media geometrica es:"<<pow(p,1.0/n);
return 0;
}

Matrices:
Una matriz es un vector de vectores o un también llamado array bidimensional.
La manera de declarar una matriz es C++ es similar a un vector:

1 int matrix[rows][cols];
“Int” es el tipo de dato, “matrix” es el nombre del todo el conjunto de datos y debo
de especificar el número de filas y columnas.

Las matrices también pueden ser de distintos tipos de datos como char, float,
double, etc. Las matrices en C++ se almacenan al igual que los vectores en
posiciones consecutivas de memoria.

Usualmente uno se hace la idea que una matriz es como un tablero, pero
internamente el manejo es como su definición lo indica, un vector de vectores,
es decir, los vectores están uno detrás de los otros juntos.

La forma de acceder a los elementos de la matriz es utilizando su nombre e


indicando los 2 subíndices que van en los corchetes.

12
Si coloco int matriz [2][3] = 10; estoy asignando al cuarto elemento de la tercera
fila el valor 10.

No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y


para recorrer una matriz podemos usar igualmente un bucle. En este caso
usando 2 for.

Ejemplo:

for(int i = 0; i < rows; i++) {


for(int j = 0; j < cols; j++) {
matrix[i][j] = i % j;
}
}

(Martí, 2014)

4. Arreglos de caracteres
• Cadenas de caracteres o "strings" (inglés).

• Una cadena en C++ es un conjunto de caracteres, o valores de tipo "char",


terminados con el carácter nulo (NULL).

• Internamente se almacenan en posiciones consecutivas de memoria.

• Declaración:
• Se declaran como arreglos unidimensionales.

• Debe contener 1 carácter más que la cadena más larga que pueda contener.

CADENA DE CARACTERES

• Cuando se declara una cadena hay que tener en cuenta que tendremos que
reservar una posición para almacenar el carácter nulo.

• Char cad [6];

• Cad=“hello” (5 para hello y uno para NULL)

• También es posible referenciar cada uno de los caracteres individuales que


componen la cadena, simplemente indicando la posición.

• Así el primer carácter de nuestra cadena sería cad [0], que es la 'H'.

13
(Licencia Creative Commons Atribución-CompartirIgual, 2017)

5. Desarrollo del programa


1. Ejemplo
Sacar el valor absoluto de un número.

1.1 Algoritmo
Datos de Salida
 Valor absoluto: -n o n

Datos de Entrada
 Número: n

Proceso
1. Si n>0
2. Escribir n
3. Sino n=-n
4. Escribir n

1.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Escribir "Ingresar numero: "
leer n
si (n>0)
Escribir n
Sino n=-n
FinSi
Escribir "El valor absoluto del numero es: ", n
FinAlgoritmo

Diagrama de Flujo

14
Código C++
#include <iostream>
#include <cmath>
using namespace std;
int absoluto (int n);
int main(int argc, char *argv[]) {
int n;
cout<<"Ingrese el numero: ";
cin>>n;
cout<<"El valor absoluto del numero es: "<<absoluto (n);
return 0;
}
int absoluto (int n){
if(n>=0)
cout<<n;
else n=-n;
return n;
cout<<endl;
}

2. Ejemplo
Determinar si un numero es par o impar.

2.1 Algoritmo
Datos de Salida
 Saber si es par o impar

Datos de Entrada
 Numero: n

Proceso
 Si MOD 2 =0
 Escribir “Numero par”
 De lo contrario escribir “Numero impar”

2.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Escribir "Ingresar numero: "
leer n
si (n MOD 2=0)
Escribir "Numero par"
Sino Escribir "Numero impar"
FinSi
FinAlgoritmo

15
Diagrama de Flujo

Código C++
#include <iostream>
#include <cmath>
using namespace std;
int main(int argc, char *argv[]) {
cout<<"Ingrese numero: ";
int n;
cin>>n;
parimpar (n);
return 0;
}
void parimpar (int n){
if(n % 2==0)
cout<<"Numero par";
else cout<<"Numero impar";
cout<<endl;
}

3. Ejemplo
Escribir los numero Fibonacci menores que “l”.

3.1 Algoritmo
Datos de Salida
 Números Fibonacci

Datos de Entrada
 Límite: l

Proceso
 Escribir "Ingresar límite: "
 leer l
 a=0
 b=1
 Escribir a
 Mientras b<l Hacer
 Escribir b
 c=a+b
 a=b
 b=c

16
3.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Escribir "Ingresar limite: "
leer l
a=0
b=1
Escribir a
Mientras b<l Hacer
Escribir b
c=a+b
a=b
b=c
Fin Mientras
FinAlgoritmo

Diagrama de Flujo

Código C++
#include <iostream>
#include <cmath>
using namespace std;
void fibonacci(int m);
int main(int argc, char *argv[]) {
return 0;
}
void fibonacci(int m){
int a=0;
int b=1;
cout << a << endl;
while ( b < m )
{
int c;
cout << b << endl;
c = a + b;
a = b;
b = c;
}
}

17
4. Ejemplo
Sacar el cociente y el residuo de una división por restas sucesivas.

4.1 Algoritmo
Datos de Salida
 Cociente: coc
 Residuo: r

Datos de Entrada
 Dividendo: a
 Divisor: b

Proceso
 coc=0
 Mientras a>b Hacer
 a=a-b
 coc=coc+1
 Escribir "Cociemte: ", coc
 Escribir "Residuo: ", a

4.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Escribir "Ingresar dividendo: "
leer a
Escribir "Ingresar divisor: "
leer b
coc=0
Mientras a>b Hacer
a=a-b
coc=coc+1
Fin Mientras
Escribir "Cociemte: ", coc
Escribir "Residuo: ", a
FinAlgoritmo

18
Diagrama de Flujo

Código C++
#include <iostream>
#include <cmath>
using namespace std;
void division (int a,int b);
int main(int argc, char *argv[]) {
cout <<"Ingrese dividendo: ";
int a;
cin >> a;
cout <<"Ingrese divisor: ";
int b;
cin >> b;
division (a,b);
return 0;
}
void division (int a,int b){
int coc=0;
while ( a>b )
{ a = a - b;
coc = coc + 1;
}
cout <<"Cociente: " << coc << endl;
cout <<"Residuo: " << a <<endl;
}

5. Ejemplo
Lectura y escritura de un vector.

5.1 Algoritmo
Datos de Salida
 Vector: v(i)

Datos de Entrada
 Elementos del vector: n

Proceso
 Definir v,n,i como entero;
 Escribir "Ingrese numero de elementos del vector: ";

19
 leer n;
 Dimension v(100);
 Para i<-1 Hasta n Con Paso 1 Hacer
 Escribir "V [",i,"] =";
 leer v(i);
 Fin Para
 Para i<-1 Hasta n Con Paso 1 Hacer
 Escribir V(i);
 Fin Para

2.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Definir v,n,i como entero;
Escribir "Ingrese numero de elementos del vector: ";
leer n;
Dimension v(100);
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir "V [",i,"] =";
leer v(i);
Fin Para
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir V(i);
Fin Para
FinAlgoritmo

Diagrama de Flujo

Código C++
#include <iostream>
#include <cmath>
using namespace std;
void mostrarV(int v[], int n);
void leerVec(int v[],int n);
int main(int argc, char *argv[]) {
cout<<"Numero de elementos: ";
int n;
cin>>n;
int v[1000];
leerV(v,n);
mostrarV(v,n);
return 0;
}
void leerV(int v[], int n){

20
for (int i=0;i<n;i++) {
cout<<"V["<<(i+1)<<"]= ";
cin>>v[i];
}
}
void mostrarV(int v[], int n){
cout<<endl;
for (int i=0;i<n;i++) {
cout<<v[i]<<"\t";
}
cout<<endl;
}

6. Ejemplo
Media de aritmética de un conjunto de datos.

6.1 Algoritmo
Datos de Salida
 Media: media

Datos de Entrada
 Datos: n

Proceso
 Definir v,n,i como entero;
 Escribir "Ingrese numero de elementos del vector: ";
 leer n;
 Dimension v(100);
 Para i<-1 Hasta n Con Paso 1 Hacer
 Escribir "V [",i,"] =";
 leer v(i);
 Fin Para
 Para i<-1 Hasta n Con Paso 1 Hacer
 Escribir V(i);
 Fin Para
 suma=0;
 Para i<-1 Hasta n Con Paso 1 Hacer
 suma=suma+v(i);
 Fin Para
 Escribir "La media aritmetica es: ", suma/n

6.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Definir v,n,i como entero;
Escribir "Ingrese numero de elementos del vector: ";
leer n;
Dimension v(100);
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir "V [",i,"] =";
leer v(i);
Fin Para
Para i<-1 Hasta n Con Paso 1 Hacer

21
Escribir V(i);
Fin Para
suma=0;
Para i<-1 Hasta n Con Paso 1 Hacer
suma=suma+v(i);
Fin Para
Escribir "La media aritmetica es: ", suma/n
FinAlgoritmo

Diagrama de Flujo

Código C++
#include <iostream>
#include <cmath>
using namespace std;
void mediaA (float x[],int n);
int main(int argc, char *argv[]) {
cout<<"Número de datos a leer: ";
int n;
cin>>n;
float x[50];
leerVi(x,n);
mostrarVi (x,n);
mediaA (x,n);
return 0;
}
void leerVec(int v[],int n){
for (int i=0;i<n;i++){
cout<<"Elemento "<<i+1<<": ";
cin>>v[i];
}
}

void mostrarVec (int v[],int n){


cout<<endl;
for (int i=0;i<n;i++){
cout<<v[i]<<"\t";
}
cout<<endl;
}

22
void media(int v[],int n){
float suma=0;
for (int i=0;i<n;i++){
suma=suma+v[i];
}
cout<<endl;
cout<<"La media aritmetica es: "<<suma/n;
}

7. Ejemplo
Declarar una matriz introduciendo valor por teclado.

7.1 Algoritmo
Datos de Salida
 Matriz: m(f,c)

Datos de Entrada
 Filas: f
 Columnas: c

Proceso
 Definir v,n,i como entero;
 Escribir "Ingrese numero de filas de la matriz: ";
 leer f;
 Escribir "Ingrese numero de columnas de la matriz: ";
 leer c;
 Dimension m(100,100);
 Para i<-1 Hasta f Con Paso 1 Hacer
 Para j<-1 Hasta c Con Paso 1 Hacer
 Escribir "m [",i,"][",j,"]= ";
 leer m(i,j);
 FinPara
 Fin Para
 Para i<-1 Hasta f Con Paso 1 Hacer
 Para j<-i Hasta c Con Paso 1 Hacer
 Escribir sin saltar m(i,j), " "
 FinPara
 Escribir " "
 Fin Para

7.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Definir v,n,i como entero;
Escribir "Ingrese numero de filas de la matriz: ";
leer f;
Escribir "Ingrese numero de columnas de la matriz: ";
leer c;
Dimension m(100,100);
Para i<-1 Hasta f Con Paso 1 Hacer
Para j<-1 Hasta c Con Paso 1 Hacer
Escribir "m [",i,"][",j,"]= ";

23
leer m(i,j);
FinPara
Fin Para
Para i<-1 Hasta f Con Paso 1 Hacer
Para j<-i Hasta c Con Paso 1 Hacer
Escribir sin saltar m(i,j), " "
FinPara
Escribir " "
Fin Para
FinAlgoritmo

Diagrama de Flujo

Código C++
#include <ctime>
#include <iomanip>
using namespace std;
void leer3M (int ma[][MAX],int f,int c);
void mostrar3M(int ma[][MAX], int f, int c);
int main(int argc, char *argv[]) {
cout<<"Filas de la matriz: ";
int f;
cin>>f;
cout<<"Columnas de la matriz: ";
int c;
cin>>c;
int ma[50][50];
leer3M (ma,f,c);
mostrar3M (ma,f,c);
return 0;
}
void leer3M (int ma[][MAX],int f,int c){
for (int i=0;i<f;i++) {
for (int j=0;j<c;j++) {
cout<<"m["<<(i+1)<<"]["<<(j+1)<<"]= ";
cin>>ma[i][j];
}
}
}
void mostrar3M(int ma[][MAX], int f, int c){
cout<<endl;
for (int i=0;i<f;i++) {
for (int j=0;j<c;j++) {
cout<<setw(6)<<ma[i][j];
}
cout<<endl;
}

24
8. Ejemplo
Generar una matriz identidad.

8.1 Algoritmo
Datos de Salida
 Matriz identidad

Datos de Entrada
 Orden de la matriz: o

Proceso
 Escribir "Ingrese orden de la matriz: ";
 leer orden;
 Dimension m(100,100);
 Para i<-1 Hasta orden Con Paso 1 Hacer
 Para j<-1 Hasta orden Con Paso 1 Hacer
 Si i=j Entonces
 m(i,j)<- 1
 SiNo
 m(i,j)<- 0
 Fin Si
 FinPara
 Fin Para
 Para i<-1 Hasta orden Con Paso 1 Hacer
 Para j<-i Hasta orden Con Paso 1 Hacer
 Escribir sin saltar m(i,j), " "
 FinPara
 Escribir " "
 Fin Para

8.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Escribir "Ingrese orden de la matriz: ";
leer orden;
Dimension m(100,100);
Para i<-1 Hasta orden Con Paso 1 Hacer
Para j<-1 Hasta orden Con Paso 1 Hacer
Si i=j Entonces
m(i,j)<- 1
SiNo
m(i,j)<- 0
Fin Si
FinPara
Fin Para
Para i<-1 Hasta orden Con Paso 1 Hacer
Para j<-i Hasta orden Con Paso 1 Hacer
Escribir sin saltar m(i,j), " "
FinPara
Escribir " "
Fin Para
FinAlgoritmo

25
Diagrama de Flujo

Código C++
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
int const MAX = 50;
void generarMI(int m[][MAX], int o);
void mostrarMI(int m[][MAX], int o);
int main(int argc, char *argv[]) {
cout<<"Orden de la matriz: ";
int o;
cin>>o;
int m[50][50];
generarMI (m,o);
mostrarMI (m,o);
return 0;
}
void generarMI(int m[][MAX], int o){
for (int i=0;i<o;i++) {
for (int j=0;j<o;j++) {
if (i==j) {
m[i][j] = 1;
} else {
m[i][j] = 0;
}
}
}
}
void mostrarMI(int m[][MAX], int o){
cout<<endl;
for (int i=0;i<o;i++) {
for (int j=0;j<o;j++) {
cout<<setw(6)<<m[i][j];
}
cout<<endl;
}
cout<<endl;
}

26
9. Ejemplo
Pasar una frase de mayúsculas a minúsculas.

9.1 Algoritmo
Datos de Salida
 Frase en minúsculas

Datos de Entrada
 Frase en mayúsculas

Proceso
 Declarar frase(200) como carácter
 Escribir “Ingresar una frase en mayúsculas: “
 I =0
 Mientras (frase (i) ¡= ‘\o’) Hacer
 Si (frase (i)>=’A’ Y frase (i)<=’Z’)
 Frase (i) += 32
 I++

9.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Declarar frase(200) como carácter
Escribir "Ingresar una frase en mayúsculas: "
I =0
Mientras (frase (i) != '\o') Hacer
Si (frase (i)>='A' Y frase (i)<='Z')
Frase (i) = Frase (i)+ 32
i++
FinSI
FinMientras

FinAlgoritmo

Diagrama de Flujo

27
Código C++
#include <iostream>
using namespace std;
void mayusculas(char frase[200]);
int main(int argc, char *argv[]) {
char frase[200];
cout<<"Ingrese una frase en mayusculas: ";
cin.getline(frase,200);
cout<<"Frase original: "<<frase<<endl;
mayusculas(frase);
cout<<"Frase en minusculas: "<<frase<<endl;
return 0;
}
void mayusculas(char frase[200]){
int i=0;
while (frase[i] != '\0') {
if(frase[i]>='A' && frase[i]<='Z'){
frase[i] = frase[i] + 32;
}
i++;
}
}

10. Ejemplo
Convertir una frase de minúsculas a mayúsculas.

10.1 Algoritmo
Datos de Salida
 Frase en mayúsculas

Datos de Entrada
 Frase en minúsculas

Proceso
 Declarar frase(200) como caracter
 Escribir “Ingresar una frase en minusculas: “
 I =0
 Mientras (frase (i) ¡= ‘\o’) Hacer
 Si (frase (i)>=’a’ Y frase (i)<=’z’)
 Frase (i) =frase(i) +32
 I++

10.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Declarar frase(200) como carácter
Escribir "Ingresar una frase en minusculas: "
I =0
Mientras (frase (i) != '\o') Hacer
Si (frase (i)>='a' Y frase (i)<='z')
Frase (i) = Frase (i)- 32
i++
FinSI
FinMientras
FinAlgoritmo

28
Diagrama de Flujo

Código C++
#include <iostream>
using namespace std;
void minusculas(char frase[200]);
int main(int argc, char *argv[]) {
char frase[200];
cout<<"Ingrese una frase en minusculas: ";
cin.getline(frase,200);
cout<<"frase original: "<<frase<<endl;
minusculas(frase);
cout<<"frase en MAYUSCULAS: "<<frase<<endl;
return 0;
}

void minusculas(char frase[200]){


int i=0;
while (frase[i] != '\0') {
if(frase[i]>='a' && frase[i]<='z'){
frase[i] = frase[i] - 32;
}
i++;
}
}

11. Ejemplo
Sacar el binomio al cuadrado de cualquier conjunto de datos.

11.1 Algoritmo
Datos de Salida
 Binomio cuadrado: binomiocuadrado

Datos de Entrada
 Primer término: a
 Segundo término: b

Proceso
 Escribir "Ingresar a: "
 leer a
 Escribir "Ingresar b: "
 leer b

29
 x1 <- a*a+2*a*b+b*b
 x2 <- a*a-2*a*b+b*b
 Escribir "Caso 1 (suma): ", x1
 Escribir "Caso 2 (resta): ", x2

11.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Escribir "Ingresar a: "
leer a
Escribir "Ingresar b: "
leer b
x1 <- a*a+2*a*b+b*b
x2 <- a*a-2*a*b+b*b
Escribir "Caso 1 (suma): ", x1
Escribir "Caso 2 (resta): ", x2
FinAlgoritmo

Diagrama de Flujo

Código C++
#include <iostream>
#include <cmath>
using namespace std;
void binomiocuadrado(int a,int b);
int main(int argc, char *argv[]) {
cout<<"Ingresar primer coeficiente: ";
int a;
cin>>a;
cout<<"Ingresar segundo coeficiente: ";
int b;
cin>>b;
binomiocuadrado(a,b);
void binomiocuadrado(int a,int b){
cout<<endl;
int x1,x2;
x1 = (a*a)+(2*a*b)+(b*b);
x2 = (a*a)-(2*a*b)+(b*b);
cout<<"Caso 1 '+': "<<x1<<endl;
cout<<"Caso 2 '-': "<<x2<<endl;
}

30
12. Ejemplo
Resolver un trinomio al cuadrado.

12.1 Algoritmo
Datos de Salida
 Trinomio: x

Datos de Entrada
 Primer término: a
 Segundo término: b
 Tercer término: c

Proceso
 Escribir "Ingresar primer coeficiente: "
 leer a
 Escribir "Ingresar segundo coeficiente: "
 leer b
 Escribir "Ingresar tercer coeficiente: "
 leer c
 x <- a*a+b*b+c*c+2*a*b+2*a*c+2*b*c
 Escribir "El resultado es: ", x

12.2 Representación
Pseudocódigo
Algoritmo sin_titulo
Escribir "Ingresar primer coeficiente: "
leer a
Escribir "Ingresar segundo coeficiente: "
leer b
Escribir "Ingresar tercer coeficiente: "
leer c
x <- a*a+b*b+c*c+2*a*b+2*a*c+2*b*c
Escribir "El resultado es: ", x
FinAlgoritmo

Diagrama de Flujo

31
Código C++
#include <iostream>
#include <cmath>
using namespace std;
int x(int a,int b,int c);
int main(int argc, char *argv[]) {
cout<<"Ingresar primer coeficiente: ";
int a;
cin>>a;
cout<<"Ingresar segundo coeficiente: ";
int b;
cin>>b;
cout<<"Ingresar tercer coeficiente: ";
int c;
cin>>c;
cout<<"Resultado: "<<x(a,b,c)<<endl;
return 0;
}
int x(int a,int b,int c){
cout<<endl;
int x;
x = a*a+b*b+c*c+2*a*b+2*a*c+2*b*c;
return x;
cout<<endl;
}

Video:

CONCLUSIONES

32
 Los lenguajes de alto nivel se desarrollaron con el objetivo de ser más
accesibles y entendibles por la mayoría de programadores, de manera que los
programadores pudieran concentrarse más en resolver la tarea o los problemas
y no en el lenguaje que la maquina tenía que entender.

 El lenguaje C++ presenta grandes herramientas de desarrollo para los


programadores como las funciones, bibliotecas, clases y los objetos. De manera
que el programador se ocupa de utilizar dichas herramientas para resolver un
problema específico.

 El desarrollo de esta aplicación permitió comprobar que el lenguaje 'C++' es un


lenguaje muy flexible y poderoso. Puede resultar complicado, pero se obtienen
resultados buenos con su uso.

33
Bibliografía
Hernández, E. G. (25 de Agosto de 2013 ). blogspot. Obtenido de
http://ejercicioscpp.blogspot.pe/2012/11/estructuras-de-control-en-c.html

Licencia Creative Commons Atribución-CompartirIgual. (5 de Octubre de 2017). wikibooks.


Obtenido de
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Cadenas_de_caracteres

Martí, S. T. (14 de Mayo de 2014). stmblog. Obtenido de http://stmblog.com/vectores-y-


matrices-en-c/

Torre Alba, G. (2017). scribd. Obtenido de


https://es.scribd.com/document/65511345/Estructuras-de-Control-en-C

34
35
36

Vous aimerez peut-être aussi