Ejercicios de Todo

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 33

Ejercicios de 

programación
14 agosto 2009
tags: ejercicios de programación, Programación
por maf
 
 
7 Votes

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

ESTRUCTURAS DE CONTROL: ESTRUCTURA SECUENCIAL

Ejercicio 1

Encontrar el valor que almacenará la variable VALOR después de la ejecución de las siguientes
sentencias:

VALOR 4*5

X=3

Y = 20

VALOR = (X^Y)-Y

VALOR = 5

X=3

VALOR = VALOR*X

Ejercicio 2

¿Qué se obtiene en A y B tras la ejecución del siguiente código?

A = 10

B=5

A=B

B=A
Ejercicio 3

Escribir un algoritmo que pida el lado de un cuadrado y muestre el valor del área y del perímetro

Ejercicio 4

Diseñar un algoritmo que determine el área y el volumen de un cilindro.

Ejercicio 5

Realizar un algoritmo que lea el radio de una circunferencia y escriba la longitud de la misma, y
el área (Pi*R)^2 del círculo inscrito.

Ejercicio 6

Calcular el promedio de tres números introducidos por teclado, sin utilizar sentencias repetitivas.

Ejercicio 7

Diseñar un algoritmo que intercambie los valores de dos variables numéricas.

Ejercicio 8

Suma de 2 números

Ejercicio 9

Perímetro de un cuadrado L*4

Ejercicio 10

Superficie de un triángulo (B*H)/2

Ejercicio 11

Volumen de un cubo L^3

Ejercicio 12

Suma, resta, multiplicación y división de 2 números

Ejercicio 13

Hacer un programa que pida el radio y calcule:

Longitud de la circunferencia 2*pi*r


Áres del círculo pi*r^2

Área de la esfera 4*(pi*r^2)

Volumen de la esfera (4*pi*r^3)/3

Ejercicio 14

Calcular el sueldo de los empleados de una empresa. Para ello se deberá pedir el nombre del
empleado, las horas normales trabajadas y las horas extras. Tener en cuenta que el valor de la
hora es de $4 y que las horas extras se pagan doble.

Ejercicio 15

Pidiendo el ingreso del numerador y denominador de 2 fracciones mostrar la suma.

Ejercicio 16

Dados el día y mes de dos fechas, donde la primera fecha es menor a la segunda y ambas
pertenecea al mismo año, calcular los días que median entre ambas. Suponiendo que todos los
meses tienen treinta días.

Ejercicio 17

Dado el importe bruto de una factura calcular el resultado de bonificarlo con un 4%; al monto
obtenido calcularle el IVA. Finalmente mostrar el importe bruto, el valor de la bonificación, el
importe bruto bonificado, el monto correspondiente el IVA y el importe neto resultante.

Ejercicio 18

Dadas 3 variables mostarlas en el mismo orden en que se ingresaron pero con sus contenidos
intercambiados por una rotación circular.

Ejercicio 19

Calcular cuanto dinero tiene un banco de moneda extranjera si dispone de N1 monedas de medio
peso, N2 cuarto de peso, N3 de 10 céntimos y N4 de 5 céntimos.

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

ESTRUCTURAS DE CONTROL: ESTRUCTURA CONDICIONAL

SENTENCIA IF/THEN/ELSE/ENDIF Y EXPRESIONES SIMPLES Y COMPUESTAS

_Definir el concepto DECISION. Investigar en el manual la sentencia IF.


_Definir el concepto de expresión. Escribir 5 ejemplos de uso de expresiones.

_Definir expresiones simples y compuestas. Escribir 3 ejemplos de cada una.

Ejercicios:

Diagramar y codificar usando la sentencia IF / THEN / ELSE / END IF

1. Dados dos números A y B sumarlos si A es menor a B sino restarlos.

2. Dadas dos palabras cualesquiera decir si estan ordenadas alfabéticamente.

3. Dados dos números A y B encontrar el cociente entre A y B. Recordar que la división por cero
no esta definida, en ese caso debe aparecer una leyenda anunciando que la división n es posible.

4. DIA es una variable numérica que puede tomar 7 valores, ellos son 1, 2, 3, 4, 5, 6 o 7. Mostar
el nombre el nombre del día de la semana que corresponde al valor de la variable DIA.

5. Dadas las longitudes de los tres lados de un triángulo determinar si es equilátero o no.

a) Utilizando expresiones compuestas.

b) Utilizando expresiones simples.

6. Dadas las longitudes de los tres lados de un triángulo, determinar si este es equilátero,
isosceles o escaleno.

a) Utilizando expresiones compuestas.

b) Utilizando expresiones simples.

7. Se desea determinar si un boleto es capicúa o no. Para ello se debrán pedir las cifras del
número en cinco variables independientes.

8. Pidiendo el ingreso de dos valores que representan los colores primarios (1-rojo, 2-azul y 3-
amarillo), mostar el nombre de los colores que se ingresaron y que color secundario se forma con
ellos.

9. Dados dos números A y B sumarlos si al menos uno de ellos es negativo en caso contrario
multiplicarlos.

10. Pidiendo el día y el mes de nacimiento mostrar el signo.

11. Se deberán pedir los siguientes datos:

a) Educación (bachiller – universitario – maestría – doctorado)


b) Años de experiencia

c) Sexo (femenino – masculino)

d) Preferencia geográfica (N – S – E – O – Centro – Desea viajar)

Por cada dato ingresado se deberá indicar si cumple el primero, el segundo o el tercer requisito.

1ro: 5 años de experiencia, sexo masculino, bachiller y desea viajar

2do: hombre con 1 año de experiencia con maestría que prefiera el sur o el oeste

3ro: con más de tres años de experiencia, mujer, doctorada que prefiera el este.

12. Pidiendo el ingreso de la base y la altura de un cuadrilátero, indicar si es cuadrado o


rectángulo. Para cualquiera de los dos casos mostrar el peímetro y la superficie de la figura.

13. Dadas las cuatro notas bimestrales de un alumno indicar si se Exime o si debe rendir en
Diciembre o en Marzo.

14. Un negocio hace descuentos en las ventas de sus productos. Si la compra es inferior a $100 el
descuento es del 5%, si es mayor o igual a 100 y menor a 200 el descuento es del 10% sino será
del 15%. Dado el precio de la venta mostrar el descuento realizado en pesos y el precio final con
descuento.

15. Diseñar un algoritmo que determine el valor máximo y el valor mínimo de un conjunto de
tres valores, sin utilizar sentencias repetitivas.

16. Diseñar un algoritmo que determine el precio de un billete de ida y vuelta en ferrocarril,
dando la distancia a recorrer y el número de días en destino, sabiendo que si la estancia es
superior a 7 días y la distancia es superior a 800 km. el billete tiene una reducción del 30%. El
precio por kilómetro es de $8,5.

17. Se desea calcular el salario semanal neto de los empleados de una empresa cuyo trabajo se
paga por horas del siguiente modo:

• Si el número de horas trabajadas es inferior o igual a 35 se pagan a una tarifa fija que se debe
introducir por teclado. El número de horas trabajadas y el nombre del empleado también se
introducen por teclado.

• Las horas que excedan de las primeras 35, se pagarán como horas extras a un precio de una vez
y media la tarifa de las horas normales.

Los impuestos a deducir a los trabajadores varían en función del sueldo:

• Los primeras 200 pesos, no pagan impuestos.


• Los siguientes 150 deben pagar el 20%,

• El resto pagan el 30%

18. Dados tres números cualesquiera, mostrarlos ordenados de menor a mayor.

19. Pidiendo la hora de ingreso y la hora de salida mostar cuanto tiempo transcurrió. Las horas
deberán pedirse como HI, MI, SI (hora de ingreso, minuto de ingreso y segundo de ingreso) y
como HS, MS, SS (hora de salida, minuto de salida y segundo de salida).

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

CONTADORES

Un contador es una variable numérica a la cual se le suma una constante numérica.

Ejs: A=A+1

Z=Z+2

CON=CON+10

El primer ejemplo se interpretaría: en la variable A guarda lo que tenía A más 1.

Ejercicios:

Diagramación y codificación

1. Construya el algoritmo que muestre por pantalla los números del 1 al 5, uno debajo del otro.

1.1. Realice otro algoritmo donde también se muestre con el cero.

1.2. Escriba las conclusiones de comparar los dos algoritmos.

2. Muestre por pantalla la tabla de multiplicar del 5 de la siguiente forma:

5*1=5

5*2=10

5*9=45
2.1. Analizar que datos deben mostrarse en la sentencia PRINT.

2.2. Realizar un cuadro donde se indiquen los tipos de datos utilizados en el algoritmo.

2.3. Escribir una comparación de este ejercicio con el anterior.

3. Muestre por pantalla el cuadrado y el cubo de los números menores a 51 de la siguiente forma:

NUMERO CUADRADO CUBO

111

248

...

4. Muestre por pantalla la tabla de multiplicar que el operador desee.

5. Construya el algoritmo que permita generar e imprimir los múltiplos de 6 menores que 100.

6. Construya el algoritmo que permita el ingreso de una serie de números y que determine
cuantos números positivos, cuantos números negativos y cuantos ceros hay. Como primer dato
pedir la cantidad de números que forman la lista.

7. Se desea imprimir los recibos de pago de los socios de un club de la siguiente forma:

NOMBRE:xxxxxxxxxxx

CATEGORIA:xxxxxxxx

IMPORTE:9999999999

.mostrar el total de socios infantiles

.mostrar el total de socios cadetes

.mostrar el total de socios activos

Para ello se deberá pedir el ingreso del nombre y la edad de los socios. Para realizar los cálculos
tener en cuenta el siguiente cuadro:

EDAD CATEGORIA IMPORTE

<12 infantil 5

>=12 y <18 cadete 7


>18 activo 10

8. Pedir el ingreso de los datos de nacimientos de un hospital: día, mes, año y sexo(1-femenino
2-masculino). Mostra el total de varones, el total de mujeres, el total general, y el total de
nacimientos en el primer semestre.

9. Se deberá pedir el sexo (F-M) y el estado civil (S-C-V-D) de las personas que lleguen a un
espectáculo. Se deberán mostrar la cantidad y el porcentaje de hombres solteros, mujeres
solteras, hombres casados, mujeres casadas, etc.

10. Muestre por pantalla la tabla de multiplicar que el operador desee.

11. Ingresar 2 números M y N. Mostar y calcular la suma de los números entre M y N.

12. Una empresa fabrica 2 productos A y B y desea saber cual de ellos es el más aceptado en el
mercado, para ello realiza una encuesta y por cada persona interrogada se obtiene un par de
valores: el primer valor del par indica la aceptación o no del producto A según sea 1 o 0; el
segundo valor corresponde al producto B. Por ejemplo los valores 1 y 0 significa que el
encuestado acepta el producto A pero no el B. Se pide:

o Total de encuestados

o Porcentaje de consumidores que aceptan:

• El producto A

• El producto B

• Los dos productos

• El producto A pero no el B

• El producto b pero no el A

• Ninguno de los dos productos

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

ACUMULADORES

Un acumulador es una variable numérica a la cual se le suma otra variable numérica.

Ejemplos:

A=A+VN
D=D+I

El primer ejemplo se interpretaría: en la variable numérica A se guarda el resultado de sumar el


contenido de A mas el contenido de la variable VN.

Ejercicios:

1. Dado un número N:

a) genere, muestre y sume los primeros N números naturales.

b) genere, muestre y multiplique los primeros N números naturales.

c) genere, muestre y calcule su promedio.

2. Genere y sume los números impares menores que 100.

3. Se dispone de un conjunto de números positivos. Calcular y escribir su promedio sabiendo que


se ingresará un valor menor a 0 para indicar el fin del conjunto de valores.

4. Una farmacia va anotando los importes de las ventas del día. Por cada importe se anota una
“D” si la venta se realizó con descuento por alguna mutual y una “N” si no se realizó descuento.
Se desea saber:

• el monto total de las ventas del día;

• el total de clientes que compró con descuento y

• sobre el total de clientes,que porcentaje compró con descuento.

5. Desarrollar el algoritmo que resuelva el siguiente problema.

Permitir que el operador ingrese los siguientes datos:

• número de legajo N

• nombre del alumno N$

• edad E

• fecha de nacimiento F$

• estado civil EC

• sexo S
Realizado el ingreso deberá controlarse lo siguiente:

ECpuede ser 0 (casado), 1 (soltero) o 2 (viudo)

S puede ser 0 (femenino) o 1 (masculino)

un error en cualquiera de estos dos datos implica no considerar el ingreso y volver a pedir los
datos.

De ser válidos deberán tratarse los datos de la forma que correspondan a fin de informar por fin
de proceso lo siguiente:

• cantidad y porcentaje de alumnos mujeres

• cantidad y porcentaje de alumnos varones

• cantidad y porcentaje de casados

• cantidad y porcentaje de solteros

• cantidad y porcentaje de viudos

• edad y nombre del alumno mas joven

• edad promedio

Deberá verificarse con el operador el que halla o no mas datos para tratar.

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

ESTRUCTURAS DE CONTROL: ESTRUCTURA REPETITIVA Proceso iterativo con


cantidad conocida de veces

-Investigar la sentencia FOR / NEXT

-Explicar su uso y sus ventajas

1. Hacer un programa que calcule el promedio de una serie de números ingresados por teclado.
Como primer dato pedir cuantos números va a ingresar.

2. Calcular el perímetro y la superficie de 30 rectángulos pidiendo la base y la altura. Qué


modificaciones debería recibir el algoritmo si 30 fuera N?

3. Realizar un programa que muestre por pantalla un reloj digital. Investigar la instrucción
LOCATE.
4. Simular un contador de vueltas de 3 dígitos de un grabador.

5. Hacer un programa tal que introducido un número entero nos calcule el factorial de dicho
número. Sabiendo que el factorial de un número N es:

N!=1*2*3…*N

6. Hacer un programa que nos de una tabla de los factoriales de los diez primeros números
naturales.

7. Hacer un programa que muestre las tablas de multiplicar del 1 al 9. Cada tabla debe tener su
título.

8. Pidiendo el ingreso de 25 valores calcular y mostrar el cuadrado de cada uno.

9. Se cuenta con los valores que indica el medidor de consumo de energía eléctrica del mes
anterior y del mes actual para 1000 usuarios. Además se tiene el precio por KWH. Calcular el
importe que deberá abonar cada usuario. Para cada usuario imprimir el precio del KWH , el valor
medido en ambos meses y el importe resultante.

10. Pedir sucesivamente 50 valores numéricos. A cada valor multiplicarlo por 3 y sumarle 5.
Mostarr el retorno de dicha expresión junto con el número que la origina. Al final mostrar el
valor acumulado.

11. Hacer un programa que que genere los primeros 30 múltiplos de un número entero
cualquiera.

12. Dados dos números naturales, el primero menor al segundo, generar y mostrar todos los
números comprendidos entre ellos en secuencia ascendente.

13. El inventor del ajedrez propuso cobrar por su invento un grano de trigo por el primer
cuadrado del tablero, dos, por el segundo, cuatro por el tercero y así sucesivamente, el doble del
anterior en cada caso hasta completar los 64. Determinar que cantidad de granos debería haber
cobrado.

14. Diseñar un algoritmo que escriba el cubo de los números del 1 al 20

15. Diseñar un algoritmo que escriba el cubo de los números naturales tales que el cubo tenga
como máximo cuatro cifras.

16. Diseñar un algoritmo que escriba el cubo de los números naturales tales que el cubo tenga
exactamente cuatro cifras.

17. Realizar un algoritmo que calcule la potencia de un número real elevado a un número natural,
sin utilizar ni funciones ni procedimientos.
18. Realizar un algoritmo que muestre los valores de todas las piezas del domino de forma
ordenada:

0-0

0-1 1-1

0-2 1-2 2-2

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

ESTRUCTURAS DE CONTROL: ESTRUCTURA REPETITIVA Proceso iterativo con


cantidad desconocida de veces

1. Realizar un algoritmo que muestre por pantalla la tabla de multiplicar del dos. Hacer tres
versiones utilizando en cada una de ellas cada una de las estructuras repetitivas (desde…hasta,
hacer…mientras/repetir…hasta, mientras…hacer).

2. Realizar un algoritmo que determine el valor del cociente y el resto de una división entre
números enteros (usando solamente la operación de resta).

3. Dada la serie de números naturales de Fibonacci: Sucesión: 1, 1, 2, 3, 5, 8, 13, 21, … diseñar


un algoritmo que pida un número natural y calcule el elemento de la serie de Fibonacci asociado
a él, sin utilizar funciones ni procedimientos.

4. Se dispone de una lista de números distintos de 0 salvo el último. Determinar la cantidad de


números que la forman.

5. Dado el nombre de una persona, ingresando carácter por carácter, determinar la cantidad de
caracteres que lo forman teniendo como pauta que luego del nombre se ingresa un punto.

6. Realizar un proceso que detalle la compra y alcule lo que un cliente debe abonar en un
negocio conociendo la cantidad comprada de cada artículo y su precio. Para indicar el fin de
datos se ingresa una cantidad nula.

7. Se tiene una lista de números formada de la siguiente manera: primero todos los positivos,
luego un valor nulo, a continuación todos los negativos y finalmente otro valor nulo. Calcular y
mostrar el promedio de los valores positivos y el promedio de los negativos.

8. Encontrar N números de 3 dígitos que sean iguales a la suma de los cubos de sus dígitos.

9. La población de los paises A y B es de 52 y 85 millones de habitantes respectivamente. Las


tasas anuales de crecimiento de población son de 6% para el primero y 4% para el segundo.
Confeccionar un programa que calcule y muestre la población de cada uno de los paises en los
próximos años hasta que la población de A exceda a la de B y determinar y mostrar en cuantos
años se dará esa situación.

10. Sumar todos los números que se introducen mientras no sea 0.

11. Pedir el ingreso de los siguientes datos: número de cliente, saldo y código (1-deudor 2-
acreedor). Se deberán calcular los saldos finales de la empresa. El programa debe terminar
cuando el número de cliente sea igual a 0.

12. Debe solicitarse al operador los datos correspondientes a las facturas emitidas por la empresa,
estos son: número de factura, número de vendedor (1, 2 o 3) e importe. El programa debe
finalizar cuando el número de factura sea igual a 0. por fin de programa se deberá indicar: total
de facturas emitidas por la empresa, total de facturas por cada vendedor, total vendido por cada
vendedor y porcentaje de venta de cada vendedor sobre el importe total vendido.

13. Pedir los datos de los alumnos, estos son: sexo, edad y altura. Por fin de programa se deberá
mostrar la cantidad de varones, la cantidad de mujeres, la altura promedio y la cantidad de
alumnos que tienen una altura mayor a 1.5 metros. El programa debe finalizar cuando la edad sea
igual a 0.

14. Ingresar como datos las temperaturas registradas durante todo el día a intervalo de media
hora comenzando desde la hora 0. determinar las horas en la cual se produjo la temperatura
mínima y la máxima.

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

FUNCIONES DE BIBLIOTECA

1. Definir el concepto de función.

2. Clasificar las funciones.

3. Para tener en cuenta!!:

o e es un número que es base de los logaritmos neperianos y su valor aproximado es 2.718281….

o las funciones trigonométricas se calculan en radianes. Esuna unidad de medida de los ángulos y
su equivalencia en grados es:

o RADIANES= GRADOS * / 180

o la raiz cuadrada de un número negativo no existe

o el logaritmo de un número menor o igual a 0 no existe

Ejercicios:
Diagramar y codificar:

5. Hacer un programa que calcule la raíz cuadrada de números ingresados por teclado y que
muestre cuantos cálculos se realizaron. (tener en cuenta en que línea se inicializa el contador, en
cual se usa el contador y en cual se muestra). Marcar la línes del INICIO, del PROCESO y las
del FIN.

6. Realizar un algoritmo que verifique la siguiente igualdad:

LIM (1+1/X)^X=e

X->infinito

7. Determinar si un número ingresado N es par o impar, controlar que el numero ingresado sea
entero y positivo. Para lograr esto compárese el valor de N/2 con el valor truncado de N/2.

8. Hacer un programa que nos imprima una tabla logarítmica de los 50 primeros números
naturales.

9. Pedir el ingreso de un número; si es negativo calcular la raíz cuadrada de su valor absoluto; si


es positivo calcular el valor de e elevado al seno del número ingresado; y si es cero no hacer
ningún cálculo y controlar el fin del programa.

10. Realizar un algoritmo que determine si un año es bisiesto o no lo es.

11. Realizar un algoritmo que averigüe si un número es par o impar (utilizar la función mod para
calcular la parte entera de un número real).

12. Mostrar los números pares anteriores al valor 150 que son divisibles por 3.

13. Dado un número entero formado por los dígitos 0 y 1, diseñar un algoritmo que compruebe si
el número tiene la misma cantidad de 0 y 1.

14. Hacer un programa que genere números al azar entre 0 y 100. sumarlos y promediarlos de 10
en 10 e indicar de cada serie cuantos son pares,. El programa debe finalizar cuando el número
generado sea 70.

15. Hacer un programa que genere números de 3 en 3 y de estos números se deberán mostrar los
que sean pares y múltiplos de 3.

16. Mostrar por pantalla los números del 1 al 5 de la siguiente forma:

columna 10 15 20 25 30

1
2

a) Usando la funcion TAB

b) Usando la función SPACE$

17. Generar la tabla de caracteres ASCII.

18. Escribir el alfabeto en orden creciente

19. Diseñar el recuadro de la pantalla

20. Probar y explicar el siguiente programa:

10 C=0

20 INPUT “INGRESE UN NUMERO”;N

30 IF C=N THEN END

40 C=C+1

50 X$=STRING$(C,”_”)

60 PRINT X$, STRING$(C-1,”_”)

70 GOTO 30

21. Escribir un algoritmo que pida un carácter y un número N. Diseñar un procedimiento que
dibuje una línea formada por la repetición de ese carácter N veces. El algoritmo debe comprobar
que el número se encuentre dentro de los límites del ancho de la pantalla.

22. Pedir el ingreso del nombre y que aparezca en la pantalla en forma invertida.

23. Hacer un programa que pida el ingreso de un texto en minúscula y lo muestre en mayúscula.
Si el texto tiene dígitos reemplazarlos por 0 (ceros) y cualquier otro carácter especial deberá
reemplazarse por * (asterisco). Tener en cuenta los siguientes valores ASCII. Números: desde
0=48 a 9=57, Minúsculas: desde a=97 a z=122 y Mayúsculas: desde A=65 a Z=90.

24. Pidiendo el ingreso de la fecha de la siguiente forma DD/MM/AA mostrarla:


a) 25 de abril de 1992

b) DIA: 25

MES: 04

AÑO: 94

En los dos casos hacer los controles necesarios para evitar errores en la cantidad y el tipo de
caracteres ingresados, el día, el mes y el año.

25. Generar 5 números al azar y mostrarlos por pantalla. Investigar la función RND y la
instrucción RANDOMIZE. Probar el programa varias veces usando RANDOMIZE,
RANDOMIZE 6 y RANDOMIZE TIMER. Escribir las conclusiones comparar las tres
posibilidades.

26. Hacer un programa para que el ordenador genere un número del 0 al 9. Nosotros
introduciremos del 0 al 9 y cuando acertemos el número generado por el ordenador nos muestre
“ACERTADO” junto a la cantidad de números que hemos ingresado antes de acertar.

27. Analizar el juego “ADIVINE SI PUEDE”. Pasarlo, probarlo, y mejorarlo.

28. Hacer un programa que muestre la siguiente pirámide. Debe controlar la instrucción
LOCATE.

123

12345

1234567

123456789

12345678901

1234567890123

123456789012345

12345678901234567

1234567890123456789

29. Generar la siguiente pirámide de dígitos


1

232

34543

4567654

567898765

30. Generar 50 nos enteros al azar entre 0 y 100. Indicar cuantos son mayores a 50, cuantos
menores a 10 y sumar los que estan entre 10 y 20. Mostrar la suma total.

31. Mostrar en la pantalla 12 caracteres ASCII generados al azar.

32. Generar 3 caracteres ASCII al azar e indicar si son todos iguales.

33. Mostrar el alfabeto en minúsculas, en mayúsculas y los dígitos del 0 al 9.

34. Pedir al operador que ingrese un texto y un número, para encriptar el texto en base al número
ingresado.

35. Pedir un texto e indicar: la cantidad de caracteres, la cantidad de palabras y la cantidad de


vocales.

36. Pedir el ingreso de un texto y mostrarlo en forma invertida.

37. Muestre la tabla ASCII

38. Pedir el ingreso de una palabra en minúsculas y y mostrarla en mayúsculas

39. Pedir el ingreso de un texto y mostrarlo codificado con el valor ASCII de cada carácter.

40. Pedir el ingreso de un texto y mostrarlo encriptado reemplazando cada letra por la siguiente
del alfabeto.

41. Pedir el ingreso de dos textos e indicar si tienen la misma cantidad de vocales

42. Escribir el alfabeto en orden decreciente

43. Pedir el ingreso de un texto y encriptarlo restándole el ASCII de una letra ingresada como
clave.

44. Analizar el articulo “Perdiéndosé En un agujero negro”- Byte Argentina- “Julio’93

• Definir el concepto de atractor y de agujero negro.


• Diagramar, pasar y probar el listado 1.

• Realizar un programa autolistante; “3N+1″; y 2 programas que resuelvan un agujero negro.

Analizar el articulo “La Encriptación: un Tema Clave”- Byte Argentina- Abril’94

• Definir el concepto de encriptación

• Describir los distintos métodos de encriptación.

• Diagramar, pasar y probar el programa listado.

• Realizar un programa encriptador con un método seleccionado.

FUNCIONES DE BIBLIOTECA

FUNCIONES NUMERICAS

Devuelven como resultado un número.

ARITMETICAS

ABS(x) Devuelve el valor absoluto de x.

ATN(x) Devuelve el arcotangente en radianes de x.

CDBL(x) Convierte x en un número de precisión doble.

CINT(x) Redondea a x con parte fraccionaria.

COS(x) Devuelve el coseno de x.

CSNG(x) Convierte a x en un número de precisión sencilla.

EXP(x) Devuelve el número e a la potencia x.

FIX(x) Trunca a x a un nº entero.

INT(x) Devuelve una expresión entera menor o igual que x.

LOG(x) Devuelve el logaritmo natural de x.

RND(x) Devuelve un nº aleatorio.

SGN(x) Devuelve el signo de x (-1/0/1).


SIN(x) Calcula en radianes la función trigonométrica de x.

SQR(x) Devuelve la raíz cuadrada de x.

TAN(x) Devuelve la tangente del ángulo x.

RELATIVAS A CADENA DE CARACTERES

ASC(x$) Devuelveel codigo ASCIIdel primer caracter de x$.

CVI(x$),CVS(x$),CVD(x$) Comvierte valores de cadena a valores numéricos.

INSTR(n,x$,y$) Busca la primera ocurrencia de la cadena y$ en la cadena x$, y porcionar la


posición en la que se encuentra la cadena.

LEN(x$) Proporciona el número de caracteres de x$.

VAL(x$) Devuelve el valor numerico de x$.

I/O Y MISCELLANEOUS

CSRLIN Reestablece la posición de la fila actual del cursor.

EOF(f) Proporciona un -1 cuando se a llegado al final de un archivo secuencial o de


comunicaciones, o un 0 si no se ha encontrado el final del arrchivo.

ERL Devuelve el número de línea donde ocurrió un error.

ERR Devuelve el codigo de error del error producido.

FRE(X$) Proporciona el número de bytes disponibles en la memoria de cadenas asignadas.

INP(n) Proporciona el byte leido desde el puerto de entrada n.

LOC(f) Proporciona la posición actual en el archivo.

LOF(F) Proporciona la longitud (número de byte) asignado al archivo.

LPOS(n) Devuelve la posición actual de la cabeza de impresión dentro de la memoria intermedia


de la impresora de líneas.

PEEK(n) Lee el byte de la memoria especificada.

PEN(n) Lee el lápiz fotosensible.

POINT(x,y) Lee el color o valor del atributo de un pixel de la pantalla.


POS(n) Proporciona la posición actual del cursor.

SCREEN(fila,columna,z) Devuelve el caracter o color a la posición indicada.

STICK(n) Devuelve las coordenadas del joystick.

STRIG(n) Devuelve el estado del disparador del joystick.

USRn(x) Llama una subrutina del lenguaje ensamblador.

VARPTR$(variable) Devuelve la dirección de una variable en memoria.

VARPTR(#f) Devuelve la dirección del block de control del archivo desde el archivo f.

FUNCIONES ALFANUMERICAS

Devuelven un valor alfanumérico.

GENERALES

CHR$(n) Convierte un código ASCII a su caracter equivalente.

LEFT$(x$,n) Devuelve los n primeros caracteres mas a la izquierda de x$.

MID$(x$,n,m) Devuelve m caracteres de x$ desde la posición n.

RIGHT$(x$,n) Devuelve los n primeros caracteres mas a la derecha de x$.

SPACE$(n) Devuelve una cadena de n espacios.

STRING$(n,m) Devuelve el código ASCII del valor m, repetido n veces.

STRING$(n,x$) Devuelve el primer caracter de x$ repetido n veces.

I/O Y MISCELANEAS

DATE$ Devuelve la fecha del sistema.

HEX$(n) Devuelve una cadena que representa el valor hexadecimal del argumento numérico.

INKEY$(n) Devuelve un caracter leido desde el teclado.

INPUT$(n,#f) Lee n caracteres desde el archivo f.

MKI$(x)/MKS$(x)/MKD$(x) Convierte valores numéricos en valores de cadena.


OCT$(n) Convierte un valor decimal en un valor octal.

SPC(n) Deja n espacios en una sentencia PRINT o LPRINT.

STR$(x) Convierte x en alfanumérico.

TAB(n) Se ubica en la columna n en una sentencia PRINT o LPRINT.

TIME$ Devuelve la hora del sistema.

VARPTR$(v) Retorna una representación en forma de caracter del desplazamiento relativo

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

ESTRUCTURA CASE

SENTENCIA SELECT CASE

Escribir el formato de la sentencia SELECT CASE.

Describir su funcionamiento.

Comparar con la sentencia GOTO.

Definir el concepto de MENU.

Diseñar todos los programas con las pantallas con recuadro y los mensajes centrados.

Ejercicios:

Diagramación y codificación

1- Hacer un programa tal que introducidos dos números nos calcule si elegimos la opción 1 la
SUMA, si elegimos la opción 2 la RESTA, si la 3 la MULTIPLICACION y si la 4 la DIVISION.

2- Hacer un programa que calcule el parímetro de un cuadrado, un rectángulo, un triángulo o de


una circunferencia segun la opción elegida por el operador.

3- Hacer un programa que calcule el CAPITAL, el INTERES, la RAZON o el TIEMPO segun la


opción del operador. Tener en cuenta la siguiente fórmula:

I=(C*R*T)/(100*365)

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

ARREGLOS
VECTORES Y MATRICES

Un VECTOR es un conjunto de variables con el mismo nombre que se diferencian unas de otras
por un número de orden denominado subíndice, que nos indicará un dato en particular, de todo el
conjunto de datos que guarda el vector al cual nos referimos. Un ejemplo puede ser el vector
M$(12) que contendrá los meses del año; M$(1) contendrá el dato “ENERO”, M$(2) contendrá
“FEBRERO”, etc.

Una MATRIZ es semejante a un vector pero con dos subíndices. En ella se manejan filas y
columnas, el primer subíndice indica la fila y el segundo la columna. Una matriz AG$(20,3) nos
podría guardar el nombre, la dirección y el teléfono de nuestros 20 amigos.

Los subíndices pueden ser:

Una CONSTANTE NUMERICA P(15)

Una VARIABLE NUMERICA X(N,G)

Una VARIABLE INDEXADA A(B(2))

Cualquier EXPRESION NUMERICA M$(5+Z)

-Investigar las instrucciones DIM, DATA, READ, RESTORE

CONCEPTOS SOBRE VECTORES:

Dimensionar vectores

Cargar el vector desde una sentencia DATA

Cargar el vector desde consola

Mostrar los elementos en forma de vector

Mostrar los elementos en columnas

Sumar los elementos del vector

Buscar el mayor y el menor

Buscar un elemento en particular

Ordenar los elementos de un vector

1-Cargar un vector con los meses del año y mostrar el mes y el número que lo identifica:
a) Pidiendo los datos al operador

b) Desde una sentencia DATA

2-Hacer un programa que entrando la fecha del tipo 20/06/94 la muestre de la forma “20 de junio
de 1994″.

3-Cargar un vector de 50 elementos numéricos desde una sentencia DATA. Mostrar el vector.
Mostrar el elemento mayor y la fila donde se encuentra.

4-Cargar desde consola un vector de 20 posiciones numéricas e imprimirlo en 5 filas. Mostrar la


suma y el promedio de los elementos del vector.

5-Cargar desde consola un vector de 10 elementos numéricos. Multiplicar este vector por una
constante K y originar el vector resultado. Mostrar los elementos cuyo contenido es negativo
indicando en que posición se encuentran. Mostrar el elemento mayor y menor del vector
resultado.

6-Cargar 2 vectores de 10 elementos cada uno desde una sentencia DATA. Multiplicar los
elementos de las filas impares para originar el vector resultado. Mostrar los tres vectores y la
suma de los elementos de cada vector. Buscar el elemento 675 en el vector resultado, si existe
mostrar en que fila se encuentra, en caso contrario mostrar un mensaje que indique que el
elemento no se encuentra.

ORDENACION DE VECTORES

CLASIFICACION POR INTERCAMBIO

Se busca el elemento mayor y se va colocando en la ultima posición.

10 DIM V(5)

20 DATA 7,3,2,24,5

30 FOR I=1 TO 5

40 READ V(I)

50 NEXT I

60 FOR K=5 TO 2 STEP -1

70 M=V(K)

80 FOR I=1 TO K-1


90 IF V(I)>M THEN M=V(I): P=I

100 NEXT I

110 V(P)=V(K)

120 V(K)=M

130 NEXT K

140 FOR I=1 TO 5

150 PRINT V(I)

160 NEXT I

170 END

CLASIFICACION POR CAMBIO

Se compara el primer elemento con el siguiente y se cambian estos elementos siempre que el
primero sea mayor al segundo. Con ello se consigue que el elemento mayor de todos ellos se
desplace progresivamente hasta la última posición y que no tome parte en las comparaciones
siguientes. El proceso termina cuando en un paso no se efectue ningún cambio.

10 DIM V(5)

20 DATA 7,3,2,24,5

30 FOR I=1 TO 5

40 READ V(I)

50 NEXT I

60 N=5

70 FOR I=1 TO N-1

80 IF V(I)>V(I+1) THEN SWAP V(I),V(I+1):SW=1

90 NEXT I

100 N=N-1

110 IF SW=1 THEN SW=0:GOTO 70


120 FOR I=1 TO 5

130 PRINT V(I)

140 NEXT I

150 END

METODO DE LA BURBUJA

Se busca el elemento menor y se lo coloca en la primera posición y así sucesivamente hasta


realizar la última comparación que será entre el penúltimo y el último elemento.

10 DIM V(5)

20 DATA 7,3,2,24,5

30 FOR I=1 TO 5

40 READ V(I)

50 NEXT I

60 N=5

70 FOR I=1 TO N-1

80 FOR J=I+1 TO N

90 IF V(I)>V(J) THEN SWAP V(I),V(J)

100 NEXT J

110 NEXT I

120 FOR I=1 TO 5

130 PRINT V(I)

140 NEXT I

150 END

CONCEPTOS SOBRE MATRICES

Dimensionar matrices
Cargar una matriz desde una sentencia DATA

Cargar una matriz desde el teclado

Cargar una matriz por filas

Cargar una matriz por columnas

Mostrar la matriz en forma de matriz

Sumar los elementos de la matriz

Sumar las filas de la matriz

Sumar las columnas de la matriz

Buscar un elemento en particular

Buscar un elemento conociendo otro de la misma fila

7-Cargar desde consola una matriz A(20,10) por filas con elementos numéricos. Multiplicar esta
matriz por una constante K e imprimir los elementos cuyo contenido es negativo indicando la fila
y la columna donde se encuentran.

8-Cargar una matriz A(10,12) que contendrá el promedio de ventas mensuales durante 10 años
para una empresa X. Generar a partir de esta un vector B(10) que contendrá el promedio anual de
las ventas de la misma empresa.

9-De una matriz A(5,5) obtener un vector B(5) de la diagonal principal y uno V(5) de la diagonal
secundaria.

10-Sumar los elementos, de una matriz de 10 por 10, de la diagonal principal.

11-Dada una matriz de 5 elementos para la primera dimensión y 5 elementos para la segunda,
introducir valores desde una sentencia DATA para los 4 primeros elementos de las dos
dimensiones. Queremos dejar en la última columna la suma de cada fila, y en la ultima fila la
suma de todas las columnas, dejando en el elemento (5,5) la suma total.

12-Introducidos 10 nombres de alumnos junto a sus 10 notas, efectuar un listado ordenado por
orden alfabético del nombre. Introducir el nombre de un alumno y visualizar su nota.

DESCRIPCIÓN DE ALGORITMOS Y PROGRAMAS

ARCHIVOS DE DATOS

ARCHIVOS DE DATOS
Es una colección de registros de datos relacionados organizados de una manera específica. Cada
registro esta compuesto por campos que indican características de cada entidad. Un ejemplo
puede ser el archivo BIBLIOTECA donde cada registro sería un libro y los campos del registros
serian nombre, autor, editorial, argumento, tema, etc.

ARCHIVOS SECUENCIALES

Las siguientes instrucciones y funciones se utilizan en los archivos secuenciales:

CLOSE LOF

EOF OPEN

INPUT# PRINT#

LINE INPUT# PRINT# USING

LOC UNLOCK

LOCK WRITE#

Pasos para crear un archivo secuencial y lograr el acceso a los datos del archivo:

1- Abrir el archivo en el modo de salida(O).

OPEN “O”,#1,”NOMBRE DE ARCHIVO”

OPEN “NOMBRE DE ARCHIVO” FOR OUTPUT AS #1

2- Escribir datos en el archivo utilizando la instrucción PRINT# o WRITE#:

PRINT#1,A$

PRINT #1,E

3- Para lograr acceso a los datos del archivo, se debe cerrar el mismo y volver a abrirlo en el
modo entrada(I):

CLOSE#1

OPEN “I”,#1,”NOMBRE DE ARCHIVO”

o
OPEN “NOMBRE DE ARCHIVO” FOR INPUT AS #1

4- Utilizar la instrucción INPUT# o LINE INPUT#(para usar ” o , en el contenido de un campo)


para leer datos del archivo secuencial en el programa:

INPUT#1,A$,E

5- Cuando un archivo secuencial se abre en modo O, el contenido previo se destruye. Para


agregar datos a un archivo ya existente sin destruir su contenido, adrir el archivo en el modo A o
APPEND.

Ejercicios:

Diagramación y codificación

Desarrollar el algoritmo que permita:

1- Crear el archivo BIBLIOTECA compuesto por los siguientes campos:

número de libro N

nombre N$

autor A$

número de anaquel NA

fecha de edición F$

Cargar en el archivo 10 registros.

2- Agregar en el archivo BIBLIOTECA más regristros.

Cargar 5 registros más.

3- Listar el archivo BIBLIOTECA de la siguiente forma:

BIBLIOTECA

NOMBRE AUTOR FECHA DE EDICION ANAQUEL

....

....

....
....

....

....

TOTAL DE LIBROS:999999

4- Muestre todos los libros de un autor indicado.

5- Muestre todos los libros de un determinado anaquel.

6- Muestre el autor de un determinado libro.

7- Muestre el libro mas antiguo.

8- Integrar los ejercicios 4, 5, 6 y 7 en un solo programa.

9- Deberá solicitarse al operador los datos correspondientes a un empleado, estos son:

número de legajo N

nombre y apellido N$

centro de costos C$

horas normales trabajadas H

horas extras al 50% HE50

horas extras al 100% HE100

valor de la hora V

cantidad de hijos CH

estado civil (0-casado 1-otro) EC

Los cálculos son los siguientes:

importe por horas normales=H*V

importe por horas extras al 50%=HE50*V*1.5

importe por horas extras al 100%=HE100*V*2


importe por hijos=CH*10

importe por esposa=10 (si es casado)

descuentopor jubilación=11% deimportesdehoras trabajadas

descuento por sindicato=2.5

Realizados todos los cálculos deberá informarse al operador lo siguiente:

total de haberes sin descuento

total de haberes con descuento

total de descuento

neto a pagar=haberes con descuento – descuento + haberes sin descuento

Por fin de programa informe el total neto a pagar.

10- Incorporar al ejercicio anterior la grabación del archivo SUELDOS con los datos calculados
para cada empleado. El archivo se compone de los siguientes campos:

número de legajo N

nombre y apellido N$

centro de costos C$

total de haberes con descuento THCD

total de haberes sin descuento THSD

total de descuentos TD

neto NETO

11- A partir del archivo SUELDOS se desea mostrar por pantalla cada uno de los registros
grabados. Por fin de archivo se deberá mostrar los totales generales para cada uno de los
importes; el total de empleados de la empresa y los datos correspondientes al empleado que tuvo
el sueldo mas alto.

12- A partir de un archivo denominado CONTRIBUYENTES compuesto por los siguientes


campos:

zona ZO
número de contribuyente NC

nombre N$

valor edilicio VE

se desea calcular y mostrar el importe que deberá abonar cada contribuyente.

LISTADO DE VALORES

NUMERO DEL CONTRIBUYENTE VALOR EDILICIO IMPORTE

...

...

...

...

...

TOTAL CONTRIBUYENTES:

TOTAL IMPORTE:

El cálculo a realizar se basará en lo siguiente: si el valor edilicio es menor a 100 se lo multiplica


por 0.1 y el resultado es el importe; si esta entre 100 y 500 se lo multiplica por 0.3 y si es mayor
a 500 se lo multiplica por 0.4

Por otra parte se desea originar un archivo destino con los cálculos realizados para cada
contribuyente, este archivo se llamará CALCULOS y estará compuesto por el número de
contribuyente y el importe. Tener en cuenta que cada registro origen da lugar aun registro
destino.

13- A partir del archivo VENTAS compuesto por los siguientes campos:

fecha FECHA

nº de cliente CLIE

nº de artículo A

cantidad CANT

precio unitario PU
bonoficación BO

Se desea originar un archivo destino denominado FACTURAS compuesto por:

fecha FECHA

nº del cliente CLIE

nombre del cliente CLIE$

articulo A$

cantidad CANT

importe bruto IBRU

importe bonificación IBON

iva IVA

total neto NETO

Tener en cuenta que deberá cargarse:

una matriz de 20 filas por 2 columnas con una DATA que contiene los nº de cliente y el nombre
de la siguiente forma: DATA 1,”FRANCO”,2,”SALVATIERRA”,…

y una matriz de 50 filas por 2 columnas con una DATA que contiene primero los 50 número de
artículos y a continuación las 50 descripciones para cada número de artículo

Los cálculos a realizar son los siguientes:

IBRU=CANT*PU

IBON=IBRU*BO/100

IVA=(IBRU-IBON)-16/100

NETO=IBRU-IBON+IVA

Por otra parte se desea originar un listado de acuerdo al siguiente diseño:

LISTADO DE VENTAS

FECHA CLIENTE IMPORTE BRUTO IMPORTE NETO


....

....

....

....

....

TOTAL IMPORTE BRUTO 99999999

TOTAL IMPORTE NETO 99999999

TOTAL DE CLIENTES 9999

También podría gustarte