You are on page 1of 16

UNIVERSIDAD NACIONAL DE INGENIERIA

FACULTAD DE INGENIERÍA QUÍMICA

INTRODUCCION A LA COMPUTACION

ARREGLOS UNIDIMENSIONALES

Nombre: meyling

Grupo: 2M2Q

Doc.: Msc. Sergio Álvarez

Managua 20 de agosto de 2013


1.1. Determinar los valores de los vectores N y M después de la ejecución de las
instrucciones siguientes:
Var M, N: array [1..3} of integer;

1. M[1]:=1;
2. M[2]:=2;
3. M[2]:=3;
4. N[1]:=M[1]+M[2];
5. N[2]:=M[1]-M[3];
6. N[3]:=M[2]+M[3];
7. M[2]:=2*N[1]-N[2];
8. M[1]:=M[2]-M[1];
Program Ejercicio_6_1;
Uses Crt;
Var
i: integer;
M, N: array [1..3] of integer;
Begin
ClrScr;
M[1] := 1;
M[2] := 2;
M[3] := 3;
N[1] := M[1] + M[2];
N[2] := M[1] - M[3];
N[3] := M[2] + M[3];
M[2] := 2*N[1] - N[2];
M[1] := M[2] - M[1];
for i:= 1 to 3 do
Writeln('El valor de M[',i,'] es: ',M[i]);
for i:= 1 to 3 do
Writeln('El valor de N[',i,'] es: ',N[i]);
Readln;
End.

1.2. Leer un vector V y mostrar su contenido.


Program Ejercicio_6_2;
Uses Crt;
Var
V: array[1..3] of integer;
i: integer;
Begin
ClrScr;
for i := 1 to 3 do
Begin
Write('Introduzca el valor de v[',i,']: ');
readln(V[i]); end;
for i := 1 to 3 do
Begin
Writeln('el valor de v[',i,']: ',V[i]); end;
Readln;
End.

1.3. Escribir un programa que permita calcular el cuadrado de los 100 primeros números
enteros y, a continuación, escriba una tabla que contenga dichos cuadrados.
Program Ejercicio_6_3;
Uses Crt;
Var C: array[1..100] of integer;
i: integer;
Begin
ClrScr;
for i := 1 to 100 do
C[i]:= i * i;
for i := 1 to 100 do
Writeln(C[i]);
Readln;
End.

1.4. Escribir un programa que pida 100 números enteros cualesquiera y, a continuación,
escriba una tabla que contenga los cuadrados de los números introducidos.
Program Ejercicio_6_4;
Uses Crt;
Var C: array[1..100] of integer;
i, a: integer;
Begin
ClrScr;
for i := 1 to 10 do
Begin
Write('El valor de numero entero ',i, ' es: ');
Readln(a);
C[i]:= a * a;
End;
for i := 1 to 10 do
Writeln(C[i]);
Readln;
End.
1.5. Se tienen N temperaturas almacenadas en un array. Se desea calcular su media y
obtener el número de temperaturas mayores o iguales que la media.
Program Ejercicio_6_5;
Uses Crt;
Var T: array[1..100] of real;
i, j, N: integer;
a: real;
Begin
ClrScr;
// N es la cantidad de temperaturas que se almacenaran en el array
// y es menor o igual a 100
Write('Escriba la catidad de temperaturas que posee en array: ');
Readln(N);
for i:= 1 to N do
Begin
Write('Introduzca la temperatura ', i, ': ');
Readln(T[i]);
a := a + T[i];
End;
a := a / N;
for i:= 1 to N do
If T[i] >= a then j := j + 1;
Writeln('La temperatura media es: ', a);
Writeln('El numero de temperaturas mayores o iguales a media es: ', j);
Readln;
End.

1.6. Calcular la suma de todos los elementos de un vector de 100 elementos, asi cono su
media aritmética.
Program Ejercicio_6_6;
Uses Crt;
Var l: real;
j: integer;
k: array[1..100] of integer;
// El vector contiene los todos los numeros pares de 2 al 200
Begin
ClrScr;
for j:= 1 to 100 do
k[j]:= 2 * j;
for j:= 1 to 100 do
l:= l + k[j];
Writeln('La suma de los elementos del vector es: ',l:2:0);
l:= l / 100;
Writeln('La media es: ',l:2:0); readln;
End.

1.7. Calcular el número de elementos negativos, positivos y nulos de un vector N elementos.


Program Ejercicio_6_7;
Uses Crt;
Var a, b, c,d, i, N: integer;
v: array[1..100] of real;
Begin
ClrScr;
//EL valor de N no puede ser mayor que 100
Write('Escriba el numero de elementos del arreglo: ');
Readln(N);
for i:= 1 to N do
Begin
Write('Escriba el valor ',i,' del arreglo: ');
Readln(v[i]);
End;
for i:= 1 to N do
If v[i] > 0 then
a:= a + 1
else
If v[i] < 0 then
b:= b + 1
else
c:= c + 1;
Writeln ('la cantidad de numeros negativos, positivos y nulos; ');
Writeln(b,', ',a,', ',c, ', respectivamente'); readln;
End.

1.8. Diseñar un algoritmo que calcule el mayor valor de una lista L de N elementos.
Program Ejercicio_6_7;
Uses Crt;
Var i, N: integer;
a: real;
v: array[1..100] of real;
Begin
ClrScr;
//EL valor de N no puede ser mayor que 100
Write('Introduzca el numero de elementos del arreglo: ');
Readln(N);
If (N <= 100) and (N > 0) then
Begin
for i:= 1 to N do
Begin
Write('Introduzca el valor ',i,' del arreglo: ');
Readln(v[i]);
End;
for i:= 1 to N do
If v[i] > a then
a:= v[i];
Writeln ('el numero mayor del arreglo es ', a:3:3);
End
else writeln('Error: N mayor que 100 o N negativa');
Readln;
End.

1.9. Dada una lista L de N elementos, diseñar un algoritmo que calcule de forma
independiente la suma de los números pares y la suma de los impares.
Program Ejercicio_6_9;
Uses Crt;
Var L: array[1..100] of integer;
a, b, i, N: integer;
Begin
ClrScr;
//N la cantidad de numeros que puede tener un arreglo (N >= 100)
Write('Introduzca la cantidad de elementos en el arreglo: ');
Readln(N);
If (N > 0) and (N <= 100) then
Begin
for i:= 1 to N do
Begin
Write('Introduzca el elemento ',i, ' del arreglo: ');
Readln(L[i]);
End;
for i:= 1 to N do
If (L[i] mod 2 = 0) then
a := a + L[i]
else
b := b + L[i];
Writeln('La suma de los valores pares e impares es: ',a,' y ',b,';
respectivamente.');
End
else
Writeln('Error: El valor N no es correcto'); readln;
End.

1.10. Rellenar un vector A de N elementos consecutivos de forma que cada elemento


cumpla que A[i]=i.
Program Ejercico_6_10;
Uses Crt;
Var i, N: integer;
A: array[1..100] of integer;
Begin
ClrScr;
//N es el numero de elementos en el arreglo (N <= 100 y N > 0)
Write('Introduzca el numero de elementos del arreglo: ');
Readln(N);
for i:= 1 to N do
A[i] := i;
Readln;
End.

1.11. Hacer deferentes listados de una lista de 10 números según el siguiente criterio:
 si un numero está en el intervalo [0,50), ponerlo en la lista 1
 si un numero está en el intervalo [50,100), ponerlo en la lista 2
 si un numero está en el intervalo [100,150), ponerlo en la lista 3
Program Ejercicio_6_11;
Uses Crt;
Var L, L1, L2, L3: array[1..10] of real;
i, i1, i2, i3: integer;
Begin
ClrScr;
for i:=1 to 10 do
Begin
Write('Inroduzca el valor del elemento ',i, ' de la lista: ');
Readln (L[i]);
End;
for i:=1 to 10 do
If L[i] > 0 then
If L[i] < 50 then begin
i1 := i1 + 1;
L1[i1]:= L[i];
End else
If L[i] < 100 then begin
i2 := i2 + 1;
L2[i2]:= L[i];
End else
If L[i] < 150 then begin
i3 := i3 + 1;
L3[i3]:= L[i]; end;
Writeln('Elementos de la lista 1: ');
for i:=1 to i1 do
Writeln('Elemento ',i, ' de la lista: ',L1[i]:3:3); writeln;
Writeln('Elementos de la lista 2: ');
for i:=1 to i2 do
Writeln('Elemento ',i, ' de la lista: ',L2[i]:3:3); writeln;
Writeln('Elementos de la lista 3: ');
for i:=1 to i3 do
Writeln('Elemento ',i, ' de la lista: ',L3[i]:3:3); readln;
End.

1.12. Escribir un programa para introducir una serie de números desde el teclado.
Utilizar un valor centinela (-1E5) para terminar la serie. El programa deberá
almacenar en un array los valores introducidos. Deberá de visualizar también la suma,
la media de los valores y todos los valores junto con su desviación.
Program Ejercicio_6_12;
Uses Crt;
Var i, N: integer;
a, b: real;
V, V2: array [1..999] of real;
Begin
ClrScr;
repeat
Begin
N:= N + 1;
Write('Introduzca el elemento ',N,' o identificador del arreglo: ');
Readln(V[N]);
a:= a + V[N];
End
until (V[N]= -1E5);
N:= N - 1;
b:= a / N;
Writeln ('la suma y la media de todos los elementos es:',a:2:3,' y ', b:2:3);
for i:= 1 to N do
Begin
V2[i] := V[i] - b;
Writeln('El elemento ',i,' es ', V[i]:2:3,' y su desv media es ', V2[i]:2:3);
End;
Readln;
End.

1.13. Dado un vector de 15 valores, hacer un programa que pueda obtener, y sacr por
pantalla
 El mayor de los valores
 El menor de los valores
 El más próximo a la media
Suponiendo que los valores del problema anterior fueran mediciones, modificarlo
de forma tal que sin uso de vectores auxiliares, se pueda calcular la desviación
media y la desviación estándar.
∑𝒏𝒋=𝟏 𝑿𝒋 − 𝑿 ̅
𝑴𝑫 =
𝑵
∑𝒏𝒋=𝟏(𝑿𝒋 − 𝑿)̅̅̅̅𝟐
𝑺= √
𝑵
Donde Xj, es cada uno de los valores X es la medida de los valores, y N la cantidad
de valores.
Program Ejercicio_6_13_a;
Uses Crt;
Var i: integer;
a, b, c, d, d1, d2: real;
L: array[1..15] of real;
Begin
ClrScr;
for i:= 1 to 15 do
Begin
Write('El elemento ',i,' es: ');
Readln(L[i]);
c := c + L[i];
If i = 1 then begin
a:= L[i];
b:= L[i]; end
else
Begin
If L[i] > a then
a := L[i];
If L[i] < b then
b := L[i];
End;
End;
c := c / 15;
for i:= 1 to 15 do
Begin
d := abs(L[i] - c);
If i = 1 then begin
d1 := d;
d2 := L[i]; end
else
If d < d1 then begin
d1 := d;
d2 := L[i]; end
End;
Writeln('El mayor es ',a:3:3,', el menor es ', b:3:3);
Writeln(' y el mas proximo a la media es ', d2:3:3);
Readln;
End.
Program Ejercicio_6_13_b;
Uses Crt;
Var i: integer;
c, d, d1, d2: real;
L: array[1..15] of real;
Begin
ClrScr;
for i:= 1 to 15 do
Begin
Write('El elemento ',i,' es: ');
Readln(L[i]);
c := c + L[i];
End;
c := c / 15;
for i:= 1 to 15 do
Begin
d := abs(L[i] - c);
d1 := d1 + d;
d2 := d2 + d * d;
End;
d1 := d1 / 15;
d2 := sqrt(d2 / 14);
Writeln('La desviacion media es ',d1:3:3);
Writeln('La desviacion estandar es ', d2:3:3);
Readln;
End.

1.14. Escribir un programa en Pascal que lea una palabra carácter a carácter. El
ultimo carácter que se introduce es la barra de dividir (‘/’), que indica que la palabra ha
finalizado. Escribir un programa que imprima la palabra en el orden en que se
introdujo y en sentido inverso (por ejemplo: ‘pera’ ‘arep’). La palabra podrá tener
hasta 20 caracteres.
Program Ejercicio_6_14;
Uses Crt;
Var A: array[1..21] of char;
i, N: integer;
Begin
ClrScr;
repeat
Begin
i := i + 1;
Write('El elemento ', i, ' es: ');
Readln(A[i]);
If A[i] = '/' then
N := i - 1;
End
until ((A[i] = '/') or (i = 22));
If N > 0 then
Begin
Write('La palabra es: ');
for i:= 1 to N do
Write(A[i]);
Write(' e invertida es: ');
while N >= 1 do begin
Write(A[N]);
N := N - 1;
End;
End;
Readln;
End.

1.15. Escribir un programa que visualice los elementos de un vector en el orden


inverso en que fueron introducidos.
Program Ejercicio_6_15;
Uses Crt;
Var A: array[1..100] of integer;
i, N: integer;
Begin
ClrScr;
//N menor o igual a 100
Write('Digite el numero de elementos que posee el arreglo: ');
Readln(N);
for i := 1 to N do
Begin
Write('Introduzca el elemento ',i,': ');
Readln(A[i]);
End;
Writeln('El elementos del vector Invertido: ');
while N >= 1 do
Begin
Writeln(A[N]);
N:= N - 1;
End;
Readln;
End.

1.16. Escribir un programa en Pascal que permita obtener un vector V2 como el


resultado de invertir el orden de los elementos del otro vector V1.
Program Ejercicio_6_16;
Uses Crt;
Var V1, V2: array[1..100] of integer;
i, N: integer;
Begin
ClrScr;
//N menor o igual a 100
Write('Introduzca el numero de elementos del arreglo: ');
Readln(N); writeln; writeln('Los elementos de V1 son:');
for i := 1 to N do
Begin
Write('El elemento ', i, ' del arreglo V1 es: ');
Readln(V1[i]);
End; writeln; writeln('Los elementos de V2 son:');
i := 0;
while N >= 1 do
Begin
i := i + 1;
V2 [i]:= V1[N];
N:= N - 1;
Writeln('El elemento ', i, ' del arreglo V2 es: ',V2[i]);
End;
Readln;
End.

1.17. Escribir un programa en Pascal que permita invertir el contenido de un vector,


sin necesidad de usar un vector auxiliar. Por ejemplo:
Vector original: 28 35 12 43 56 77
Vector invertido: 77 56 43 12 35 28
Program Ejercicio_6_17;
Uses Crt;
Var A: array[1..100] of integer;
b, i, m, n: integer;
Begin
ClrScr;
//N menor o igual a 100
Write('Introduzca el numero de elementos del arreglo: ');
Readln(N);
for i:= 1 to N do
Begin
Write('Introduzca el elemento ', i,': ');
Readln(A[i]);
End;
m:= N;
i:= 1;
while i <= N / 2 do
Begin
b:= A[i];
A[i]:= A[m];
A[m]:= b;
m:= m - 1;
i:= i + 1;
End; writeln;
Writeln('El arreglo invertido es:');
for i:= 1 to N do
Begin
Writeln ('El elemento ', i, ' del arreglo es: ', A[i]);
end;
Readln;
End.
1.18. Escribir un programa en Pascal que permita realizar la suma y el producto de
dos vectores
 El usuario puede elegir el tamaño del vector (entro 2 y 10 valores)
 El usuario elige la operación a realizar.
Program Ejercicio_6_18;
Uses Crt;
Var A1, A2, A3: array[1..10] of integer;
i, N, N1, N2: integer;
M: char;
Begin
ClrScr;
//N1, N2: son un tamaño del V1 y V2 (entre 2 y 10).
Write('Escriba el numero de elementos de V1: ');
Readln(N1);
Write('Escriba el numero de elementos de V2: ');
Readln(N2);
If (N1 >= 2) and (N1 <= 10) and (N2 >= 2) and (N2 <= 10) then
Begin
Writeln('El vector V1:');
for i:= 1 to N1 do
Begin
Write('El elemento ',i,' de V1 es: ');
Readln(A1[i]);
End;
Writeln('El vector V2:');
for i:= 1 to N2 do
Begin
Write('El elemento ',i,' de V2 es: ');
Readln(A2[i]);
End;
//M es el tipo de operacion a realizarse; ('+' o '*')
Write('Introduzca la operacion: Suma(+) o producto(*): ');
Readln(M);
If N1 >= N2 then
N := N1
else
N:= N2;
If M = '+' then
Begin
Writeln('La suma de los Vectores V1 y V2 genera V3');
for i:= 1 to N do
Begin
A3[i]:= A1[i] + A2[i];
Writeln('El elemento ', i,' del V3 es: ', A3[i]);
End; end
else
If M = '*' then
Begin
Writeln('El producto de los Vectores V1 y V2 genera V3');
for i:= 1 to N do
Begin
A3[i]:= A1[i] * A2[i];
Writeln('El elemento ', i,' del V3 es: ', A3[i]);
End;
End
else
Writeln('Error: No escribio ninguno de los comandos validos.');
End;
Readln;
End.

1.19. Disponemos de un array unidimensional de MaxLista elementos de tipo entero.


Se desea diseñar un programa que lea los elementos del array y los inserte de forma que
todos los elementos del array permanezcan ordenados.
Program Ejercicio_6_19;
Uses Crt;
Var N, B, i: integer;
A: array[1..9999] of integer;
Begin
ClrScr;
Write('Introduzca el numero de elementos del arreglo: ');
Readln(N);
If (N > 0) and (N < 10000) then
Begin
for i := 1 to N do begin
Write('El elemento ',i, ' es: ');
Readln(A[i]); end;
Write('Introduzca el numero de elementos que desea agregar al arreglo: ');
Readln(B);
If (B + N) < 10000 then begin
for i:=1 to B do begin
N := N + 1;
Write('El elemento ',i, ' adicional del arreglo es: ');
Readln(A[N]); end; writeln;
Writeln('El contenido del arreglo es el siguiente:'); writeln;
for i := 1 to N do
Writeln('Elemento ',i,' del arreglo es: ', A[i]); end
else
Writeln('Error el numero de elementos del arreglo no puede ser menor que 1 ni
mayor a 9999');
End
else
Writeln('Error el numero de elementos del arreglo no puede ser menor que 1 ni
mayor a 9999');
Readln;
End.

1.20. Disponemos de un array unidimensional de MaxLista elementos de tipo entero.


Se desea diseñar un programa que elimine un elemento del array situado en una
posición determinada, conservando el array en el mismo orden.
Program Ejercicio_6_20;
Uses Crt;
Var N, B, i: integer;
A: array[1..9999] of integer;
Begin
ClrScr;
Write('Introduzca el numero de elementos del arreglo: ');
Readln(N);
If (N > 0) and (N < 10000) then
Begin
for i := 1 to N do Begin
Write('El elemento ',i, ' es: ');
Readln(A[i]); end;
Write('Introduzca el numero de elemento que desea eliminar del arreglo: ');
Readln(B);
If B <= N then Begin
for i := B to N do
A[i] := A[i+1];
N := N - 1;
Writeln('El contenido del arreglo es:'); writeln;
for i := 1 to N do
Writeln('Elemento ',i,' del arreglo es: ', A[i]); end
else
Writeln('Error: el N¦ del elemento que deasea eliminar no existe');
End
else
Writeln('Error el numero de elementos del arreglo no puede ser menor que 1 ni
mayor a 9999');
Readln;
End.

You might also like