Anda di halaman 1dari 15

Práctica 4 Resuelta

Lógica de la Programación

25 de junio de 2010

1.
Escriba un programa que pida al usuario 10 números, y luego muestre los
números pares que ingresó.

El problema de este ejercicio es que una vez pedidos los 10 números, necesitás tenerlos a
todos en memoria para poder ver uno por uno cuál es par y luego mostrarlos. Una solución
serı́a, por ejemplo, esta:
INPUT n1
INPUT n2
INPUT n3
..
INPUT n10

IF n1 MOD 2 = 0 THEN PRINT n1


IF n2 MOD 2 = 0 THEN PRINT n2
IF n3 MOD 2 = 0 THEN PRINT n3
..
IF n10 MOD 2 = 0 THEN PRINT n10

En este programa, n1,n2, ..., n10 son 10 variables independientes, que van a almacenar los 10
valores que ingresa el usuario. Esta solución es poco atractiva, podemos guardar los 10 números
en un arreglo y luego recorrerlo.

Un arreglo es una lista de variables de un mismo tipo, y agrupados bajo un mismo nombre,
a las cuales se accede por medio de un ı́ndice.
Si un arreglo llamado numeros tiene 10 posiciones, entonces tenemos a nuestra disposición
las variables
numeros ( 0 ) , numeros ( 1 ) , numeros ( 2 ) , . . . . , numeros ( 9 ) ,

accedibles a través de un ı́ndice cada una, por ejemplo, el programa


FOR i =0 TO 9
PRINT numeros ( i )
NEXT

imprimirá todos los valores almacenados en cada una de las posiciones del arreglo numeros,
porque imprime numeros(0), numeros(1), y ası́ hasta numeros(9).
Con esto, podemos reescribir el programa original, de la siguiente forma:

1
’ tomamos l o s 10 numeros y l o s guardamos en e l a r r e g l o l l a m a d o
’ numeros

FOR i = 0 TO 9
INPUT numeros ( i )
NEXT

’ r e c o r r e m o s e l a r r e g l o , y s i a l g u n e l e m e n t o e s par , l o mostramos .

FOR i = 0 TO 9
IF numeros ( i ) MOD 2 = 0 THEN PRINT numeros ( i )
NEXT

2.
Escriba un programa que pida 10 números. El programa debe escribir el número
de enteros ingresados mayor a 10.

Este programa se puede hacer sin necesidad de tener todos los números ingresados alojados
en memoria: podemos contar cuántos hay mayores a 10 a medida que el usuario los ingresa, por
ejemplo:
c a n t m a y o r e s = 0 ’ i n i c i a l i z a m o s e l c o n t a d o r en 0

FOR i = 0 TO 9
INPUT n ’ pedimos un numero a l u s u a r i o
’ s i n>10 incrementamos e l c o n t a d o r
IF n > 10 THEN c a n t m a y o r e s = c a n t m a y o r e s + 1
NEXT
PRINT ”La c a n t i d a d de números mayores e s : ” ; c a n t m a y o r e s

Esto funciona bien, pero vamos a hacerlo con arreglos, para prácticar: vamos a hacerlo en
dos partes. La primer parte consiste en pedir todos los números y guardarlos en un arreglo, y la
2da parte consiste en recorrer el arreglo y contar cuántos valores son mayores a 10.
’ pedimos l o s numeros
FOR i = 0 TO 9
’ pedimos un v a l o r y l o guardamos en l a i −ésima p o s i c i ó n
INPUT numeros ( i )
NEXT

’ vemos c u á n t o s son mayores a 10


FOR i = 0 TO 9
IF numeros ( i ) > 10 THEN c a n t m a y o r e s = c a n t m a y o r e s + 1
NEXT

PRINT ”La c a n t i d a d de números mayores e s : ” ; c a n t m a y o r e s

3.
Escriba un programa que pida 10 números, y otro número N. El programa debe
buscar N en el arreglo e imprimir un mensaje indicando si N está o no allı́.

2
Todos estos ejercios empiezan siempre de la siguiente manera: pidiendo 10 números al usuario.
Luego esos números se van a usar para calcular o hacer lo que sea que diga el enunciado.
Además de estos 10 números, a veces es necesario pedir uno o más valores, según se indica.
En este caso, tenemos que pedir un valor más, le llamaremos N.
Aquı́, una vez que el usuario ingresó los 10 números, tenemos que ver si entre esos 10, se
encuentra alguno igual al número N ingresado por el usuario.
’ Pedimos l o s 10 números
FOR i = 0 TO 9
INPUT numeros ( i )
NEXT

’ a e s t e punto , tenemos l o s 10 números i n g r e s a d o s por e l u s u a r i o .


’ Que son numeros ( 0 ) , numeros ( 1 ) , . . . . , numeros ( 9 )

’ ahora vemos pedimos e l v a l o r a b u s c a r


INPUT N

’ ahora vamos a b u s c a r s i a l g u n o de e l l o s en i g u a l a N, s i a l g u n o
’ e s i g u a l a N, s e t e a m o s una v a r i a b l e , ” e n c o n t r a d o ” , a 1 ,
’ para i n d i c a r que e l número f u e e n c o n t r a d o .

FOR i = 0 TO 9
IF numeros ( i ) = N THEN e n c o n t r a d o = 1
NEXT

’ ahora , s i e n c o n t r a d o = 1 , s i g n i f i c a que a l g u n o de l o s números


’ e r a i g u a l a N, e n t o n c e s mostramos un mensaje d i c i e n d o que f u e
’ e n c o n t r a d o . Sino decimos l o c o n t r a r i o .

IF e n c o n t r a d o = 1 THEN
PRINT ” El v a l o r ” ; N; ” f u e e n c o n t r a d o ”
ELSE
PRINT ” El v a l o r ” ; N; ” NO f u e e n c o n t r a d o ”
END IF

4.
Escriba un programa que pida al usuario 10 números. El programa debe escribir
el ı́ndice del mayor elemento del arreglo.

El ı́ndice de un valor en un arreglo es su posición en el mismo. Por ejemplo, si un arreglo


tiene los siguientes valores.
A = [8 ,7 ,6 ,5 ,4 ,3 ,2 ,1]

Entonces A(0) = 8, A(3) = 5, y A(7) = 1, por dar algunos ejemplos. Notar que la primer
posición del arreglo (o el ı́ndice de la primer posición) es la 0.
Para resolver el problema, vamos a pedir 10 números al usuario, y vamos a guardarlos en
numeros(0), numeros(1), ..., numeros(9). Luego vamos a recorrer el arreglo, y vamos a ver en
qué posición se encuentra el valor más grande.

3
Para hallar el máximo, vamos a hacer lo siguiente: vamos a recorrer el arreglo, y a medida
que tomamos cada número, vemos si es el mayor número visto hasta ahora. Cuando terminamos
de recorrer el arreglo vamos a tener cuál es el máximo. Por ejemplo, si numeros es un arreglo de
10 posiciones, encontramos el máximo de la siguiente forma:
maximo = numeros ( 0 )
FOR i = 0 TO 9
IF numeros ( i ) > maximo THEN maximo = numeros ( i )
NEXT

primero decimos que el máximo es el primer número del arreglo, y luego recorremos todo el
arreglo para ver si encontramos alguno mayor que el máximo hasta ahora. Si lo encontramos,
actualizamos el valor máximo. Ası́, una vez terminado de recorrer el arreglo, la variable máximo
guarda el valor máximo que contiene el arreglo.
Notar que cada vez que se actualiza el valor del máximo ( maximo = numeros(i) ), i es el
ı́ndice (la posición dentro del arreglo) del número que se convierte en máximo. Entonces, para
obtener el INDICE del máximo valor del arreglo, tenemos que ir guardandolo a medida que
encontramos un número que supera al máximo.
indice del mayor = 0
maximo = numeros ( 0 )
FOR i = 0 TO 9
IF numeros ( i ) > maximo THEN
maximo = numeros ( i )
indice del mayor = i
END IF
NEXT

o, lo que es equivalente, pero más bonito:


indice del mayor = 0
FOR i = 0 TO 9
IF numeros ( i ) > numeros ( i n d i c e d e l m a y o r ) THEN i n d i c e d e l m a y o r = i
NEXT

Esto es, no tiene sentido guardar todo el tiempo el ı́ndice y el valor del elemento mayor,
basta con tener sólo el ı́ndice (su posición en el arreglo).

Entonces el programa queda, entero, de la siguiente forma:


’ Pedimos l o s 10 números
FOR i = 0 TO 9
INPUT numeros ( i )
NEXT

’ Buscamos e l i n d i c e d e l mayor
indice del mayor = 0
FOR i = 0 TO 9
IF numeros ( i ) > numeros ( i n d i c e d e l m a y o r ) THEN i n d i c e d e l m a y o r = i
NEXT

PRINT ” e l i n d i c e d e l mayor e l e m e n t o e s ” ; i n d i c e d e l m a y o r

4
5.
Escriba un programa que pida al usuario 10 números, y un valor V. El programa
debe ver si existe el valor V en el arreglo y remover la primer ocurrencia del mismo,
desplazando cada uno de los siguientes elementos a la izquierda, y agregando un
elemento 0 al final del arreglo. El programa debe luego mostrar el arreglo resultante.

Analicemos la siguiente situación. Tenemos el arreglo


A = [9 ,8 ,7 ,6 ,5 ,4 ,3 ,2 ,1 ,0]

El elemento en la posición 5 es
v
A = [9 ,8 ,7 ,6 ,5 ,4 ,3 ,2 ,1 ,0]

Veamos qué sucede si desplazamos todos los elementos que están a partir de la 5ta posición,
hacia la izquierda. y ponemos un 0 al final del arreglo. Es decir, movemos los valores en las
posiciones 6,7,8, y 9, una posición hacia la izquierda, es decir, los ubicamos en las posiciones
5,6,7, y 8, y ponemos un 0 en la 10ma posicion (o sea A(9)), queda:
A = [9 ,8 ,7 ,6 ,5 ,3 ,2 ,1 ,0 ,0]

Recordemos, el arreglo orginal tenı́a estos valores:


A = [9 ,8 ,7 ,6 ,5 ,4 ,3 ,2 ,1 ,0]

Ahora bien, ¿cómo hacemos para desplazar todos los elementos en la posición 6,7,8 y 9, una
posición hacia la izquierda?

Escribimos el valor de A(6) en A(5), queda


A = [9 ,8 ,7 ,6 ,5 ,3 ,3 ,2 ,1 ,0]

luego escribimos el valor de A(7) en A(6), queda


A = [9 ,8 ,7 ,6 ,5 ,3 ,2 ,2 ,1 ,0]

luego escribimos el valor de A(8) en A(7), queda


A = [9 ,8 ,7 ,6 ,5 ,3 ,2 ,1 ,1 ,0]

luego escribimos el valor de A(9) en A(8), queda


A = [9 ,8 ,7 ,6 ,5 ,3 ,2 ,1 ,0 ,0]

En general, lo que hicimos fue escribir, en A(i) el valor de A(i + 1), para todo i entre 5 y 8.

El enunciado pedı́a ingresar 10 números, meterlos en un arreglo, luego pedir un valor, en-
contrar su ı́ndice dentro del arreglo, y luego mover todos los elementos que tiene a su derecha,
una posición hacia la izquierda. Luego escribir un 0 en la última posición del arreglo.

Veamos cómo funcionarı́a esto:


’ tomamos l o s 10 números
FOR i =0 TO 9
INPUT numeros ( i )
NEXT

5
’ pedimos e l numero a b u s c a r
INPUT n

’ ahora vemos en qué p o s i c i ó n d e l a r r e g l o e s t á e l numero n . Con un w h i l e , r e c o r r e m o s


’ e l a r r e g l o y e l w h i l e t e r m i n a cuando encontramos un e l e m e n t o que t i e n e e l mismo
’ v a l o r que n .
j =0
do
j = j + 1
l o o p u n t i l numeros ( j ) = n ’ s i numeros ( j ) e s i g u a l a n , t e r m i n a e l w h i l e

’ a q uı́ , j e s e l ı́ n d i c e en e l a r r e g l o donde s e e n c u e n t r a e l v a l o r n .
’ e n t o n c e s d e s p l a z a m o s t o d o s l o s e l e m e n t o s que e s t á n a su derecha , una p o s i c i ó n
’a la izquierda .
FOR i = j TO 8
numeros ( i ) = numeros ( i +1)
NEXT

’ ahora e s c r i b i m o s un 0 en l a ú l t i m a p o s i c i ó n
numeros ( 9 ) = 0

’ mostramos e l a r r e g l o
FOR i =0 TO 9
PRINT numeros ( i )
NEXT

6.
Escriba un programa que pida al usuario 10 elementos de un arreglo, un valor
N, y un ı́ndice (i) dentro del arreglo. El programa debe poner el valor V en la posi-
ción i del arreglo, y desplazar el resto de los elementos a la derecha, descartando el
último. El programa debe luego mostrar el arreglo resultante.

Este programa funciona de forma análoga al anterior, sólo que en lugar de buscar un valor
dentro del arreglo para desplazar el resto, el ı́ndice del mismo ya está dado (lo indica el usuario).

Dado el ı́ndice, hay que desplazar los elementos a derecha de él, una posición a derecha. Y
luego escribir el valor V en la posición que indica el ı́ndice. Basicamente, se tiene que insertar el
valor V en la posición indicada por el usuario, y desplazar los que tiene a derecha una posición
a derecha).

Para, dado un indice i y un arreglo a, desplazar todos los elementos que le siguen, a derecha.

Hacemos:
FOR j = 8 TO i s t e p −1
a ( j +1) = a ( j )
NEXT

para escribir V en la posición i hacemos a(i) = v, entonces, el programa entero, queda:


’ tomamos l o s 10 números
FOR i =0 TO 9

6
INPUT numeros ( i )
NEXT
’ tomamos e l v a l o r V
INPUT v
’ tomamos e l i n d i c e
INPUT i

’ movemos l o s que t i e n e a d e r e c h a
FOR j = 8 TO i s t e p −1
numeros ( j +1) = numeros ( j )
NEXT

’ e s c r i b i m o s v en l a p o s i c i ó n i
numeros ( i ) = v

’ mostramos e l a r r e g l o
FOR i =0 TO 9
PRINT numeros ( i )
NEXT

7.
Escriba un programa que pida al usuario 10 números, el programa deberá in-
dicar en pantalla: “el arreglo es creciente”, “el arreglo es creciente”, “el arreglo es
constante”, o “el arreglo es creciente y decreciente”.

Tengamos en cuenta que un arreglo de 10 elementos:

Es creciente si para todo i entre 0 y 8, se cumple que a(i) < a(i + 1)

Es decreciente si para todo i entre 0 y 8, se cumple que a(i) > a(i + 1)

Es constante si para todo i entre 0 y 8, se cumple que a(i) = a(i + 1)

Si no se cumple ninguno de los anteriores casos, diremos que el arreglo está desordenado.

Para comprobar si un arreglo de 10 elementos es creciente, debemos ver que para todo i
entre 0 y 8, se cumple que a(i) < a(i + 1). Si para algún i, NO se cumple que a(i) < a(i + 1),
entonces no es creciente. Entonces, para comprobarlo, hay que ver si podemos encontrar un i
tal que a(i) no sea igual a a(i + 1).

Podemos crear una varible, llamemosla creciente, a la que le damos valor inicial = 1. Esta
variable nos va a indicar si el arreglo es o no creciente. Vamos entonces a recorrer el arreglo
para ver si podemos encontrar algun par a(i), a(i + 1) tal que NO se cumpla que a(i) < a(i + 1).
Si lo encontramos, damos valor 0 a la variable creciente, indicando que el arreglo no es creciente.

Una forma de hacer esto serı́a:


creciente = 1
FOR i = 0 TO 8
IF NOT ( numeros ( i ) < numeros ( i +1)) THEN c r e c i e n t e = 0
NEXT

7
IF c r e c i e n t e = 1 THEN PRINT ” e l a r r e g l o e s c r e c i e n t e ”

Lo análogo se puede hacer para revisar si un arreglo es decreciente, o constante.

El código pedido es entonces:


’ Pedimos l o s 10 números
FOR i = 0 TO 9
INPUT numeros ( i )
NEXT

’ vemos s i e s c r e c i e n t e
creciente = 1
FOR i = 0 TO 8
IF NOT ( numeros ( i ) < numeros ( i +1)) THEN c r e c i e n t e = 0
NEXT

’ vemos s i e s d e c r e c i e n t e
decreciente = 1
FOR i = 0 TO 8
IF NOT ( numeros ( i ) > numeros ( i +1)) THEN d e c r e c i e n t e = 0
NEXT

’ vemos s i e s c o n s t a n t e
constante = 1
FOR i = 0 TO 8
IF NOT ( numeros ( i ) = numeros ( i +1)) THEN c o n s t a n t e = 0
NEXT

IF c r e c i e n t e = 1 THEN
PRINT ” e l a r r e g l o e s c r e c i e n t e ”
ELSE
IF d e c r e c i e n t e = 1 THEN
PRINT ” e l a r r e g l o e s d e c r e c i e n t e ”
ELSE
IF c o n s t a n t e = 1 THEN
PRINT ” e l a r r e g l o e s c o n s t a n t e ”
ELSE
PRINT ” e l a r r e g l o e s d e s o r d e n a d o ”
END IF
END IF
END IF

8.
Escriba un programa que pida al usuario un arreglo de 10 números. El programa
los debe ordenar y mostrarlos en orden ascendente.

Esto puede ser resuelto con el algoritmo de burbuja o BubbleSort, fue explicado en la clase, el
pseudocódigo del algorı́tmo puede ser hallado en http://es.wikipedia.org/wiki/Ordenamiento de burbuja

8
9.
Escriba un programa que dados los arreglos a y b de 10 enteros cada uno, y el
arreglo c de 20 elementos, escriba los elementos de a seguidos de los elementos de
b en c y los muestre.

Tenemos dos arreglos, a y b, de 10 elementos cada uno, de modo que el arreglo a tiene los
elementos a(0), a(1), ..., a(9), y b tiene b(0), b(1), ...., b(9).

Tenemos también un arreglo c de 20 elementos, o sea que tiene c(0), c(1), ...., c(19).

Tenemos que escribir en c todos los elementos de a seguidos de todos los elementos de b.
’ d e c l a r a m o s e l a r r e g l o c , p o r q u e t i e n e mas de 10 e l e m e n t o s .
DIM c ( 2 0 ) AS INTEGER

’ e s c r i b i m o s l a primer mitad con l o s e l e m e n t o s de a


FOR i = 0 TO 9
c( i ) = a( i )
NEXT

’ e s c r i b i m o s l a segunda mitad con l o s e l e m e n t o s de a


FOR i = 0 TO 9
c ( i +10) = b ( i )
NEXT

Ası́, c queda de la forma:


c (0)= a ( 0 )
c (1)= a ( 1 )
..
c (9)= a ( 9 )
c (10)=b ( 0 )
c (11)=b ( 1 )
..
c (19)=b ( 9 )

10.
Escriba un programa que dado dos arreglos a y b de 10 enteros cada uno y un
arreglo c de 20 elementos, escriba en c el resultado de mezclar los arreglos a y b en c.

Ejemplo:
a = [1 ,3 ,5 ,7 ,9 ,11 ,13 ,15 ,17 ,19]
b = [2 ,4 ,6 ,8 ,10 ,12 ,14 ,16 ,18 ,20]
c = [1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20]

Vemos que lo que hace el programa que se pide programar, es ir intercalando, en el arreglo
c, los elementos de los arreglos a y b: en las posiciones impares de c, van los elementos de a, y
en las pares, los de b.

c debe escribirse de la siguiente forma:

9
c =[ a ( 0 ) , b ( 0 ) , a ( 1 ) , b ( 1 ) , . . . . , a ( 9 ) , b ( 9 ) ]

Entonces, el código resultarı́a de la siguiente forma:


’ d e c l a r a m o s c , p o r q u e t i e n e mas de 10 e l e m e n t o s
DIM c ( 2 0 ) AS INTEGER

’ pedimos l o s dos a r r e g l o s
FOR i = 0 TO 9
INPUT a ( i )
NEXT
FOR i = 0 TO 9
INPUT b ( i )
NEXT

’ y ahora l o s barajamos y l o s ponemos en c


FOR i =0 TO 9
c ( i ∗2)=a ( i )
c ( i ∗2+1)=b ( i )
NEXT

Vemos que en con c(i*2)=a(i) se escriben en c, sólo en las posiciones pares, los elementos
de a, mientras que con c(i*2+1)=b(i) se escriben sólo en las posiciones impares los elementos
de b.

11.
Escriba un programa que pida un número al usuario e indique si el número in-
gresado es primo.

Un número es primo sólo si tiene dos divisores entre 1 y él mismo, o si no tiene ninguno
entre 2 y él mismo menos 1.

Lo que hacemos entonces, es, dado el número que ingresa el usuario (llamemosle n), vamos
a ver si algún número entre 2 y n − 1 lo divide. Si alguno lo divide, entonces el número no es
primo.
’ tomamos e l numero
INPUT n

div = 0
i = 1

’ c i c l a m o s h a s t a que encontramos un numero que l o d i v i d e , o h a s t a que


’ no haya más números p o s i b l e s para c i c l a r .
DO
i = i + 1
’ s i i d i v i d e a n , e n t o n c e s s e t e a m o s d i v =1
IF n MOD i = 0 THEN d i v = 1
’ s i d i v =1, o l l e g a m o s a n−1, e n t o n c e s terminamos
LOOP UNTIL d i v = 1 OR i = n − 1

’ s i f u e d i v i d i d o a l g u n a vez , e n t o n c e s no e s primo , s i n o l o e s .
IF d i v = 1 THEN
PRINT ” no e s primo ”

10
ELSE
PRINT ” e s primo ”
END IF

12.
Escriba un programa que pida un número al usuario hasta que el número ingre-
sado sea múltiplo de 3.

Un número es múltiplo de 3 si su división por 3 da resto 0.


DO
INPUT n
LOOP UNTIL n MOD 3 = 0

13.
Escriba un programa que pida 10 números al usuario, los guarde en un arreglo
y los invierta de posiciones.

Para invertir un arreglo, tenemos que hacer una serie de intercambios. Pongamos un ejemplo.
Sea el arreglo A, y sea B el arreglo resultante de invertir A, entonces
A = [0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9]

B = [9 ,8 ,7 ,6 ,5 ,4 ,3 ,2 ,1 ,0]

Vemos que lo que era A(0) en A, es B(9) en B, y lo que era A(1) en A, es B(8) en B, en
general, para dar vuelta un arreglo, tenemos que hacer unos intercambios, de la forma

A(0) se intercambia con A(9)


A(1) se intercambia con A(8)
A(2) se intercambia con A(7)
A(3) se intercambia con A(6)
A(4) se intercambia con A(5)

En general, para todo i desde 0 a 4, intercambiamos a(i) con a(9 − i)


’ pedimos 10 numeros
FOR i = 0 TO 9
INPUT a ( i )
NEXT

’ los invertimos
FOR i = 0 TO 4
s = a( i )
a ( i ) = a (9 − i )
a (9 − i ) = s
NEXT

’ e l e n u n c i a d o no l o p i d e , p e r o l o s mostramos
FOR i = 0 TO 9

11
PRINT a ( i )
NEXT

14.
Escriba un programa que pida 10 números al usuario y sume los primeros 5 y
los reste a los últimos 5.

FOR i = 0 TO 9
INPUT a ( i )
NEXT

FOR i = 0 TO 4
s = s + a( i )
NEXT

FOR i = 5 TO 9
s = s − a( i )
NEXT

15.
Escriba un programa que pida al usuario 10 números, y devuelva la máxima
diferencia entre alguno de ellos.

La máxima diferencia de una tira de números, es la resta del par de números del arreglo que
mayor diferencia tiene, por ejemplo, si A es [0, 1, −2, 4, 5, 9, 7, 3, 8, 6], entonces la resta que da
un mayor valor es 9 − (−2) = 11.

Hay dos formas de hacer esto, podemos tomar todas las combinaciones posibles de pares,
calcular su diferencia y ver cuál es la mayor, de la forma
FOR i = 1 TO 10
FOR j = 1 TO 10
dif = a( i ) − a( j )
IF d i f > mayorDif THEN mayorDif = d i f
NEXT
NEXT

o podemos hallar el máximo elemento en el arreglo, después calcular el mı́nimo, y luego hacer
la diferencia, haciendo maximo − minimo.
maximo = a ( 0 )
FOR i = 0 TO 9
IF a ( i ) > maximo THEN maximo = a ( i )
NEXT
minimo = a ( 0 )
FOR i = 0 TO 9
IF a ( i ) < minimo THEN minimo = a ( i )
NEXT

PRINT ” l a maxima d i f e r e n c i a e s ” ; maximo−minimo

12
16.
Escriba un programa que pida al usuario 10 números, y vaya tomando de a 2
en 2, sumando y restando cada par de números. Debe escribir los resultados en un
arreglo de tamaño 5.

’ pedimos l o s v a l o r e s

FOR i = 1 TO 10
INPUT a ( i )
NEXT

’ ahora vamos tomando de a dos en dos , y l o s vamos sumando y r e s t a n d o

j = 0

FOR i = 1 TO 9
j = j + 1
IF i MOD 2 = 0 THEN
b( j ) = a ( i ) + a ( i + 1)
ELSE
b( j ) = a ( i ) − a ( i + 1)
END IF
NEXT

FOR i = 1 TO 5
PRINT b ( i )
NEXT

17.
Escriba un programa que pida al usuario 10 números, y luego devuelva el prome-
dio de pares y de impares encontrados.

’ pedimos l o s v a l o r e s

FOR i = 1 TO 10
INPUT a ( i )
NEXT

FOR i = 1 TO 10
IF a ( i ) MOD 2 = 0 THEN
sumaPares = sumaPares + a ( i )
cantPares = cantPares + 1
ELSE
sumaImpares = sumaImpares + a ( i )
cantImpares = cantImpares + 1
END IF
NEXT

PRINT ” promedio de p a r e s : ” ; sumaPares / c a n t P a r e s


PRINT ” promedio de i m p a r e s : ” ; sumaImpares / c a n t I m p a r e s

13
18.
Escriba un programa que pida 9 numeros al usuario. El programa debe decir si
los ultimos 3 son la suma de los 6 primeros. Es decir, si a(6..8) = a(3..5) + a(0..2)

’ pedimos l o s v a l o r e s

FOR i = 1 TO 9
INPUT a ( i )
NEXT

’ a q u i e s mas f a c i l asumir que l o que queremos comprobar s e cumple ,


’ l o que hacemos e s v e r s i e x i s t e a l menos un c a s o que no cumpla .

vale = 1
FOR i = 0 TO 2
IF a ( 6 + i ) <> a ( i ) + a ( 3 + i ) THEN v a l e = 0
NEXT

IF v a l e = 1 THEN
PRINT ” l o s u l t i m o s son suma de l o s p r i m e r o s ”
ELSE
PRINT ” l a c o n d i c i o n no v a l e ”
END IF

19.
Escriba un programa que dados dos arreglos de igual tamaño, y su tamaño
(menor a 10), sume las posiciones impares y reste las pares de cada uno, y ponga
el resultado en un 3er arreglo.

’ pedimos e l tamaño de l o s a r r e g l o s
INPUT t

’ pedimos los valores


FOR i = 1 TO t
INPUT a( i )
NEXT
FOR i = 1 TO t
INPUT b( i )
NEXT

FOR i = 1 TO t
IF i MOD 2 = 0 THEN
c( i ) = a( i ) − b( i )
ELSE
c( i ) = a( i ) + b( i )
END IF
NEXT

’ mostramos l o s e l e m e n t o s
FOR i = 1 TO t

14
PRINT c ( i )
NEXT

15

Anda mungkin juga menyukai