Académique Documents
Professionnel Documents
Culture Documents
SEUDOCODIGO
DIRECTIVAS
Reservar espacio de
memoria
Para definicin de
matrices
Iniciar valores de
variables
Asignacin de valores
Asignacin de valor a
constantes
Ejemplo:
const pi = 3.1416
const ango = 2007
Iniciar valores de
variables
Asignacin de valores
Asignacin de valor a
constantes
Ejemplo:
const pi = 3.1416
const ango = 2007
Tipos de datos
Tipo ENTERO
Tipo FLOTANTE
Tipo CARACTER
TipoENUMERADO
TipoESTRUCTURA
otros
enum meses(enero,febrero, .)
float x, double y
char x, char y[30], char z[10][30
typedef struct {
}x;
struct x{
}
...
Comentarios
Documentacin de la
solucin.
COMENTARIO marca de
inicio y fin o solo inicio
SEUDOCODIGO
INICIE
TERMINE
INICIE es el { en el lenguaje. A partir de inicie se escriben todas las instrucciones solucin del problema. Debe
estar al comienzo del mismo.
Los puntos ..
.. indican las instrucciones de seudocdigo o lenguaje utilizadas.
TERMINE es el } en el lenguaje. Indica que ha finalizado el conjunto de instrucciones.
Puede usarse EMPEZAR y TERMINAR, tambin como seudocdigo
Ejemplos:
HAGA var = valor
x = 40;
// haga x igual a 40
y = y + (x/z + 4); // calcule y con esa frmula
Instrucciones de
secuencia: Se utilizan
LEA variables
Console::ReadLine(Console::x:10:2);
para asignar valores,
Lee el valor de x con 2 decimales
calcular frmulas,
cin>>x; Lee el valor de x
lectura de datos y salida IMPRIMA variables
de resultados
scanf(%d,x); Lee el valor entero de x
read x; Lee el valor de x
Console::WriteLine(L"Seudocodigo");
Imprime el letrero Seudocodigo
cout<<"Seudocodigo";
Imprime el letrero Seudocodigo
Console::Write(Console::x:10:2);
Imprime x en la misma lnea
cout<<x; Imprime x en la misma lnea
Console::WriteLine(Console::x:10:2");
Imprime x en nueva lnea de salida
cout<<"\n"<<x ;
Imprime x en una nueva lnea
printf(%d,x); Imprime el valor entero de x
print x ; Imprime x
Instrucciones de
decisin o de control:
Sirven para tomar una
accin de continuar,
detener, o terminar un
proceso o programa.
CONTINUE
PARAR
SALIR
PAUSA
SI (condicin)
Inicie
.
.
Termine
termina el proceso
getch();
SI (condicin)
Inicie
.
.
Termine
D.O.M.
Inicie
else
{
y= y/2;
.
.
Termine
EN CASO DE (variable)
HAGA, ( instruccin
switch(var) ) es una
instruccin de seleccin
mltiple, que transfiere la
ejecucin de acuerdo al
valor de la variable: si
vale 1 hace la estructura
del caso 1: si vale 2
hace la estructura del caso
2: y as sucesivamente
dependiendo del valor de
la variable hace el caso
respectivo; en caso que el
valor de la variable sea
diferente a los valores
considerados 1, 2, 3,
n, entonces ejecuta la
estructura del D.O.M
default. Si el D:O:M no
se usa, y el valor de la
variable no est en los
casos, se presenta una
inconsistencia, pues con
ese valor no se podr
ejecutar ningun caso.
No solo puede ser
evaluacin de una
variable , sino puede ser
una expresin que al
evaluarse, transfiera la
ejecucin a la estructura
establecida segn el caso.
Instrucciones de
Repeticin; Se utilizan
cuando es necesario
repetir un proceso
varias veces sin
condicin
x=x-y;
clave= 0;
...
...
}
.
switch( var o expresin )
{
case 1: {
...
...
}
case 2: {
...
...
}
...
case n: {
...
...
}
default {
...
...
}
}
condicin
HACER MIENTRAS
(condicin)
Inicie
...
...
Termine
{
...
...
}while(condicin);
while (condicin
{
...
...
}
Enunciado 1
Hacer la tabla de multilpicar del 5 con 10 productoss.
Pertinencia: Aplicacin de la aritmtica relacionada con los operadores y variables
que establecen expresiones aritmticas.
Anlisis
Se debe hacer una tabla de multiplicar, la del 5 ; se requiere iniciar el multiplicando
L en 1, hacer el producto cada vez, aumentando L en 1, repitiendo este proceso hasta
Enunciado 2
Dado un nmero N mayor que 1, hacer un programa que haga las tablas de multiplicar
desde 1 hasta el nmero N; cada tabla con 20 productos.
Pertinencia: Aplicacin de la aritmtica relacionada con los operadores y variables
que establecen expresiones aritmticas.
Anlisis
Se deben hacer N tablas de multiplicar, la del 1, del 2, del 3, , la del N, se requiere
iniciar con la tabla t = 1, para cada tabla iniciar el multiplicando m en 1, hacer el
producto por el respectivo t, aumentando m en 1, multiplicar por t cada vez hasta
llegar al final de los 20 productos; aumentar t en 1 ( t=2), repetir el proceso anterior
hasta hacer la tabla t =n.
Cdigo
#include "stdafx.h"
#include "iostream"
#include<conio.h>
using namespace System;
using namespace std;
int main(array<System::String ^> ^args)
{int n,t,m,p;
Console::WriteLine(L"Tablas de 1 a N con 20 productos");
cout<<"Tecle n (numero de tablas) = a ";
cin>>n;
for(t=1;t<=n;t=t+1)
// hacer c/u de las n tablas
Enunciado 3
Hacer un diagrama y algoritmo para la obtencin de las races de la ecuacin
cuadrtica. Tome los valores a, b, c, como los coeficientes de la ecuacin aX 2 + bX +
c = 0.
Pertinencia: Aplicacin de la aritmtica relacionada con los operadores y variables
que establecen las expresiones aritmticas.
Anlisis
Evaluando los valores a, b, c en la ecuacin se define si existen races reales o
imaginarias. Si al evaluar el discriminante b2 4 * a * c el resultado es > = 0 entonces
existen dos races reales X1 y X2, en caso contrario existirn races imaginarias.
Observaciones
Se puede ampliar la solucin para n ecuaciones cuadrticas, considerando cada
ecuacin con coeficientes mayores, menores o iguales a cero.
Cdigo
#include "stdafx.h"
#include "iostream"
#include<conio.h>;
#include<math.h>; // librera de funciones matemticas
using namespace System;
using namespace std;
int main(array<System::String ^> ^args)
{float a,b,c,x1,x2,r,t;
Console::WriteLine(L"Solucin ecuacin de segundo orden");
cout<<"\n Tecle coeficiente a = ";
cin>>a;
Enunciado 4
Hacer un programa que lea un vector A de n elementos y que diga cul es el mayor y el
menor y en que posicin se encuentra.
Pertinencia: Aplicacin de los operadores de relacin (comparacin) para determinar
condiciones especiales de los datos.
Anlisis
Conocer n, el nmero de datos que contendr el vector, asignar cada dato al vector A, y
mediante comparacin uno a uno de los elementos del vector determinar cual es el
mayor y el menor.
Cdigo
#include "stdafx.h"
#include "iostream"
#include<conio.h>
using namespace System;
using namespace std;
int main(array<System::String ^> ^args)
{int A[100],i,n,p1,p2,may,men; // definicin de variables, Vector A de hasta 100 datos
Console::WriteLine(L"Hallar el mayor y menor elemento de un ");
Console::WriteLine(L"Vector A de n elementos, indicando la ");
Console::WriteLine(L"posicin que tienen en el Vector. ");
cout<<"\n Teclee el nmero de datos n = ";
cin>>n;
for(i=1;i<=n;i=i+1)
// Lectura del Vector A de n elementos
{cout<<"Dato "<<i<<" = ";
cin>>A[i];
}
may=A[1];
//Se supone el primer dato como mayor y menor
men=A[1];
p1=1;
p2=1;
for(i=2;i<=n;i=i+1)
// Hallar mayor y menor al tiempo.
{if(A[i]>may)
{may=A[i];
p1=i;
// Guardar la posicin del mayor
}
else{
if(A[i]<men)
{men=A[i];
p2=i; // Guardar la posicin del menor
}
}
} // fin del for i, para comparar todos
cout<<"El mayor es "<<may<<" y esta en la posicin "<<p1<<endl;
cout<<"El menor es "<<men<<" y esta en la posicin "<<p2<<endl;
getch(); // parada temporal hasta pulsar tecla (visualizar la solucin)
}
Observaciones
Inicialmente se asume que el primer elemento es tanto el mayor como el menor.
Modificar el programa suponiendo el primero como mayor y el ltimo como menor.
Enunciado 5
Hacer el programa que lea un vector A de n elementos. Estos elementos son nmeros
enteros y positivos. Debe crear dos nuevos vectores, B y C, de modo tal que en el
vector B queden todos los nmeros impares, y en el vector C todos los mltiplos de 3.
Al final debe imprimir los tres vectores.
Pertinencia: Aplicacin de la aritmtica relacionada con el uso y manejo de vectores.
Anlisis
Conociendo la dimensin del vector A se asignan cada uno de los valores que lo
componen. Luego se crea el vector B donde estarn contenidos los nmeros impares
del vector A y un tercer vector C en el cual se encontrarn los nmeros mltiplos de 3.
En caso de que no existan elementos para los vectores B C estos se mostrarn vacos.
Cdigo
#include "stdafx.h"
#include "iostream"
#include<conio.h>
using namespace System;
using namespace std;
int main()
{int A[100],B[100],C[100],i,n,j,k,d; // def de variables, Vector A,B,C de hasta100 datos
cout<<"\n Tecle el numero de datos n = ";
cin>>n;
for(i=1;i<=n;i=i+1)
// Lectura del Vector A de n elementos
{cout<<"Dato "<<i<<" = ";
cin>>A[i];
}
j=0;
// j = Subndice del Vector B (dice cuntos impares hay)
k=0;
// k = Subndice del vector C (cuntos mltiplos de tres)
for(i=1;i<=n;i=i+1)
// Repetidor para analizar c/u de los datos del Vector A
{
d=int(A[i]/2);
// tomar parte entera
d=d*2;
if(A[i]!=d)
// Prueba de si A[i], el dato, es par o impar
{j=j+1;
B[j]=A[i];
// el dato fue impar ===> guardarlo en el Vector B
}
d=int(A[i]/3);
// tomar parte entera
d=d*3;
if(A[i]==d)
// Prueba de si A[i], el dato, es mltiplo de tres
{k=k+1;
C[k]=A[i]; // dato fue mltiplo de tres ===> guardarlo en Vector C
}
} // fin del for i, para comparar todos los n datos
// Impresin de los tres Vectores c/u en el mismo rengln
cout<<" A[] = "; // Imprimir el Vector A de n elementos
for(i=1;i<=n;i=i+1)
{
cout<<A[i]<<" "; // imprime A[] uno por uno, separado por un espacio
}
cout<<"\n B[] = "; // Imprimir el Vector B de j elementos
for(i=1;i<=j;i=i+1)
{
cout<<B[i]<<" "; // imprime B[] uno por uno, separado por un espacio
}
Enunciado 6
Hacer un programa que toma N datos, con los cuales forma 2 vectores cada uno de 100
datos. El primero con los datos pares y el segundo con los impares. Si los N datos no
alcanzan para llenar cada vector de 100 datos, complete el vector de pares con el
nmero 2, y el de impares con el nmero 1. Llame I el vector de impares y P el vector
de pares.
Pertinencia: Aplicacin de la aritmtica relacionada con el uso y manejo de vectores.
Anlisis
Conociendo el valor de n que define la cantidad de datos ya sean pares o impares, se
crean 2 vectores P e I de pares e impares respectivamente. Cada vector debe tener 100
datos, si los definidos en n no alcanzan para completarlos, estos vectores se completan
con 2 si es el vector de pares y con 1 si es el de impares.
Cdigo
#include "stdafx.h"
#include "iostream"
#include<conio.h>;
using namespace System;
using namespace std;
int main(array<System::String ^> ^args)
{
float x,p[1000], i[1000]; // separar espacio n = hasta 1000 datos
int n,y,a,b,k,pr;
Console::WriteLine(L"Programa para vector P de pares, y vector I de impares");
Console::Write(L"Tecle el valor de n (nro de datos) que desea = ");
cin>>n;+1;
a=0;
// subndice para cada par que aparece
b=0;
// subndice para cada impar
for(k=1;k<=100;k=k+1)
{
p[k]=2; // se llenan los dos vectores pares con 2 impares con 1
i[k]=1; // vectores de 100 datos como dice el enunciado
}
// proceso de lectura de los n datos x, y decidir si cada dato x es par
// o impar y hacer el vector respectivo ( p i )
for(k=1;k<=n;k=k+1) // hasta n datos
{
cout<<"\n x = ";
cin>>x;
// teclear c/u de los n datos
y=int(x/2);
// para probar si es par o impar el dato x
pr=2*y;
if(x==pr)
// x es par ==> hace vector p
{
a=a+1;
p[a]=x;
}
else {
// x es impar ==> hace el vector i
b=b+1;
i[b]=x;
}
} //termina el for k para analizar los n datos x
// proceso para imprimir los dos vectores de 100 datos
// no importa que n nro de taos x sea menor que 100 puesto
// que se completaron con 2 y 1 respectivamente
cout<<"\n Vector p[] de pares ";
for(k=1;k<=100;k=k+1)
{
cout<<p[k]<<" "; // impresin sobre la misma lnea, separados por espacio
}getch();
cout<<"\n Vector i[] de impares ";
for(k=1;k<=100;k=k+1)
{
cout<<i[k]<<" "; // impresin sobre la misma lnea separados por espacio
}
getch(); // pulsar tecla, para ver resultados (detiene la pantalla esperando tecla)
cout<<"\n Vector P[] pares Vector i[] impares";
for(k=1;k<=100;k=k+1)
{
cout<<"\n
"<<p[k]<<"
Enunciado 7
Hacer el programa que lea una matriz A de 10 filas y 20 columnas. Los elementos son
nmeros enteros positivos. Crear e imprimir 2 vectores as: un vector B que contenga
los nmeros pares de la matriz y un vector C que contenga los impares.
Pertinencia: Aplicacin de la aritmtica relacionada con el uso y manejo de matrices y
vectores.
Anlisis
Para crear los vectores B y C, se empieza llenando cada una de las posiciones de la
matriz A, se compara si el dato es par o impar y se asignan a su respectivo vector. Si no
se encuentran para llenar uno de los vectores, este se muestra vaco.
Cdigo
#include "stdafx.h"
#include "iostream"
#include<conio.h>
using namespace System;
using namespace std;
int main()
{int A[10][20],B[200],C[200],i,j,k,L,d; // variables, Matriz A, Vector B, C de 200 datos
// Lectura de la matriz A. c/u de las 10 filas con 20 datos
// Nota: para prueba se tomo matriz de 3 filas por 4 columnas
// debe teclear c/u de los 4 datos separados por un espacio y
// pulsar enter para la nueva fila (son 3 filas c/u con 4 columnas (datos)
for(i=1;i<=3;i=i+1) // aqu sera ==> hasta 10 filas como el enunciado
{cout<<"\n Fila "<<i<<" ===> ";
for(j=1;j<=4;j=j+1) // aqu seria ==> hasta 20 columnas como el enunciado
{cin>>A[i][j];
}
}
j=0;
// j = Subndice del Vector B (datos pares de la matriz A)
L=0;
// L = Subndice del vector C (datos impares de la matriz A)
Cdigo
#include "stdafx.h"
#include "stdafx.h"
#include "iostream"
#include<conio.h>;
using namespace System;
using namespace std;
int main()
{int A[10][10],m,n,i,j; // definicion de variables, Matriz A de hasta 10x10 elementos
float sf,sc;
// Se lee el orden de la matriz n x m
Console::Write(L" Numero de filas de la matriz n = ");
cin>>n;
Console::Write(L" Numero de columnas m = ");
cin>>m;
// se lee la matriz A de orden n x m
for(i=1;i<=n;i=i+1) // aqui seria ==> hasta n filas
{for(j=1;j<=m;j=j+1) // aqui seria ==> hasta m columnas
{
cout<<"\n dato A["<<i<<"]["<<j<<"] = ";
cin>>A[i][j];
}
}
// Proceso para calcular la suma de cada fila
for(i=1;i<=n;i=i+1) // i subindice indica la fila
{sf=0;
// antes de sumar cada elemento de la fila
for(j=1;j<=m;j=j+1) // j subindice indica la respectiva columna
{
sf=sf+A[i][j]; // suma cada elemento de la respectiva fila i
}
cout<<"\nSuma de la fila "<<i<<" = "<<sf;
cout<<"\n"; // saltar a nueva linea para la siguiente fila
}
// Proceso para calcular la suma de cada columna
for(i=1;i<=n;i=i+1) // i subindice indica la columna
{sc=0;
// antes de sumar cada elemento de la columna
for(j=1;j<=m;j=j+1) // j subindice indica la respectiva fila
{
sc=sc+A[j][i]; // suma cada elemento de la respectiva columna i
}
cout<<"\nSuma de la columna "<<i<<" = "<<sc;
cout<<"\n"; // saltar a nueva linea para la siguiente columna
}
getch(); // para ver el resultado hasta pulsar tecla
}
Observaciones
Como m no es necesariamente igual a n, se puede hacer una matriz de cualquier
dimensin.
Enunciado 9
Haga un programa que construya e imprima una matriz identidad orden N.
Pertinencia: Aplicacin de la aritmtica relacionada con el uso y manejo de
operaciones con matrices.
Anlisis
Determinar el orden de la matriz, que siempre ser de n * n. La diagonal de la matriz se
llena con el valor 1 y las dems posiciones de la matriz con el valor 0, formando as la
matriz identidad.
Cdigo
include "stdafx.h"
#include "stdafx.h"
#include "iostream"
#include<conio.h>;
using namespace System;
using namespace std;
int main()
{int A[10][10],i,j,n; // definicion de variables, Matriz A de hasta 10x10 elementos
// No se lee la matriz identidad de orden N; sino que se hace la matriz.
// Matriz de orden n, quiere decir matriz cuadrada de orden n (n x n )
// NOTA: 1a forma de hacer el programa.
Console::Write(L" orden de la matriz identidad que desea n = ");
cin>>n;
for(i=1;i<=n;i=i+1) // aqui seria ==> hasta n filas
{for(j=1;j<=n;j=j+1) // aqui seria ==> hasta n ( n x n)
{
if(i==j) // unos en la diagonal principal
{
A[i][j]=1;
}
else{
A[i][j]=0; // 0 todos los demas elementos
}
}
}
// Proceso para imprimir la matriz a de orden n
for(i=1;i<=n;i=i+1)
// i subindice indica la fila
{
for(j=1;j<=n;j=j+1) // j subindice indica la respectiva columna
{
cout<<" "<<A[i][j]; // cada elemento de la respectiva fila
}
// de la matriz separado por espacio
cout<<"\n"; // saltar a nueva linea para la siguiente fila
}
getch(); // para ver el resultado hasta pulsar tecla
}
Observaciones
Como m no es necesariamente igual a n, se puede hacer una matriz de cualquier
dimensin.
Enunciado 10
Haga un programa que construya la siguiente matriz
111111111
222222222
333333333
444444444
555555555
666666666
777777777
888888888
999999999
Pertinencia: Aplicacin de la aritmtica relacionada con el uso y manejo de matrices.
Anlisis
Teniendo en cuenta que la matriz tiene la dimensin establecida, 9 * 9, se llena la
matriz con los valores propuestos en el enunciado mediante un ciclo de repeticin.
Cdigo
#include "stdafx.h"
#include "iostream"
#include<conio.h>;
using namespace System;
using namespace std;
int main()
{int a[9][9];// definicion de Matrices a de 9x9
int i,j; // definicion de subindice i, j enteros
Enunciado 11
Haga un programa que construya la siguiente matriz
111111111
122222221
123333321
123444321
123454321
123444321
123333321
122222221
111111111
getch();
}
Observaciones
El llenado de la matriz se realiza llenando primero toda la matriz con el valor de 1.
Luego se superpone el valor 2 en las filas y columnas necesarias, luego el valor 3, el
valor 4 y finalmente se acomoda el valor 5.
Enunciado 12
Haga un programa para hallar el producto de dos matrices. Es condicin indispensable
que A(n x m) * B(k x l) = C(n x l). Siendo k = m.
Pertinencia: Aplicacin de la aritmtica relacionada con los operadores y variables en
el clculo de matrices.
Anlisis
Definir la dimensin de la matriz A y B con sus respectivos elementos, es preciso
determinar que k = m para realizar el producto entre las dos matrices, si se cumple esta
condicin se realizan las operaciones aritmticas necesarias que componen el producto
entre matrices, determinando as el valor de las posiciones de la matriz C.
Cdigo
#include "stdafx.h"
#include "iostream"
#include<conio.h>;
using namespace System;
using namespace std;
int main()
{int a[10][10],b[10][10],c[10][10];// definicion de Matrices a, b, c, hasta 10x10 elementos
int i,j,n,m,k,l,x;
// Se lee el orden de la matriz a ( n x m )
Console::Write(L" Numero de filas de la matriz a n = "); cin>>n;
Console::Write(L" Numero de columnas m = "); cin>>m;
// Se lee el orden de la matriz b ( k x l )
Console::Write(L" Numero de filas de la matriz b k = "); cin>>k;
Console::Write(L" Numero de columnas l = ");cin>>l;
/* Proceso para calcular el producto de dos matrices a y b. El producto es
posible solo si (m) numero de columnas de la matriz que premultiplica (a),
es igual al numero de filas (k) de la matriz (b) que posmultiplica.
Se verifica si m=k ==> cumplen la condicion anterior, y se pueden multiplicar,
siendo el resultado la matriz c de orden nxl.
*/
if(m==k){ // si se pueden muiltiplicar, se leen las dos matrices
cout<<"\nTeclear datos de la matriz a";
}
Observaciones
Para comprobar que se puede realizar el producto entre la matriz A(n x m) y B( k x l),
es preciso de terminar que k = m garantizando as el producto entre las dos matrices,
mostrando resultado en una matriz C(n x l).
Enunciado 13
Hacer un programa para calcular la matriz suma de dos matrices A y B.
Recuerde: la suma de matrices se efecta entre matrices de igual orden.
Pertinencia: Aplicacin de la aritmtica relacionada con los operadores y variables en
el clculo de matrices.
Anlisis
Definir la dimensin de la matriz A y B con sus respectivos elementos, es preciso
determinar que la dimensin de las matrices debe ser igual, si se cumple esta condicin
se realiza la operacin aritmtica necesaria que compone la suma entre matrices,
determinando as el valor de las posiciones de la matriz C.
Cdigo
#include "stdafx.h"
#include "iostream"
#include<conio.h>;
using namespace System;
using namespace std;
int main()
{int a[10][10],b[10][10],c[10][10];// definicion de Matrices a, b, c, hasta 10x10 elementos
int i,j,n,m,k,l;
// Se lee el orden de la matriz a ( n x m )
Console::Write(L" Numero de filas de la matriz a n = "); cin>>n;
Console::Write(L" Numero de columnas m = "); cin>>m;
// se lee la matriz a de orden n x m
for(i=1;i<=n;i=i+1) // aqui seria ==> hasta n filas
{for(j=1;j<=m;j=j+1) // aqui seria ==> hasta m columnas
{
cout<<"\n dato a["<<i<<"]["<<j<<"] = ";
cin>>a[i][j];
}
}
// Se lee el orden de la matriz b ( k x l )
Console::Write(L" Numero de filas de la matriz b k = "); cin>>k;
Console::Write(L" Numero de columnas l = ");cin>>l;
// se lee la matriz b de orden k x l
for(i=1;i<=k;i=i+1) // aqui seria ==> hasta k filas
Para comprobar que se puede realizar la suma entre la matriz A(n x m) y B( k x l), es
preciso de terminar que k = n y l = m garantizando as la suma entre las dos matrices.