Está en la página 1de 22

Estructura de Datos y Taller

Repaso 1:
La resolución de un problema exige al menos los siguientes pasos:

 Definición o análisis del problema.


 Diseño del algoritmo.
 Transformación del algoritmo en un programa.
 Ejecución, validación y depuración del programa.

Algoritmo:
Conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en
orden, para resolver un problema. Se puede llegar a realizar un buen programa con el diseño
de un algoritmo y una correcta estructura de datos.

En el uso diario, datos e información son sinónimos esencialmente sinónimos. Sin


embargo, los informáticos suelen hacer una diferencia: datos se refiere a la representación de
algún hecho, concepto o entidad real (los datos pueden tomar diferentes formas); información
implica datos procesados y organizados.

Entrada = datos Procesador Salida = información

Para que un procesador realice un proceso se le debe suministrar en primer lugar un


algoritmo adecuado. El procesador debe ser capaz de interpretar el algoritmo, lo que significa:

 Comprender las instrucciones de cada paso


 Realizar las operaciones correspondientes

Cuando el procesador es una computadora, el algoritmo se ha de expresar en un formato


que se denomina programa. Un programa se escribe en un lenguaje de programación.

Los principales tipos de lenguajes utilizados en la actualidad son 3:

 Lenguaje máquina
 Lenguaje de bajo nivel (ensamblador)
 Lenguajes de alto nivel

Traductores de lenguaje:
Los traductores de lenguaje son programas que traducen a su vez los programas
fuente escritos en lenguajes de lato nivel a código máquina.
 Compiladores
 Intérpretes

Interpretes
Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación
lo ejecuta, ejemplo BASIC, QBASIC, QuickBasic.

Programa fuente

Intérprete

Traducción y
ejecución línea a
línea
Estructura de Datos y Taller

Compiladores
Un compilador es un programa que traduce los programas fuente escritos en lenguajes
de alto nivel a lenguaje máquina. Los programas escritos en lenguajes de alto nivel se llaman
programas fuente y el programa traducido programa objeto. El compilador traduce (sentencia a
sentencia) el programa fuente, Los lenguajes compiladores típicos son: C, C++; Pascal,
FORTRAN, COBOL.

LA COMPILACIÓN Y SUS FASES


La compilación es el proceso de traducción de programas fuente a programas objeto.
El programa objeto obtenido de la compilación ha sido traducido normalmente a código
máquina.
Para conseguir el programa máquina real se debe utilizar un programa llamado
montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje
máquina directamente ejecutable.

Programa fuente

Compilador

si Existen
errores en
la
compilación

no

Programa objeto

Montador

Ejecución

TIPOS DE DATOS

Tipo de datos Descripción Requisito típico de memoria

int Cantidad entera 2 bytes u una palabra


(varía de un compilador a otro)

char Carácter 1 byte

float Número real 1 palabra (4 bytes)


(un número que incluye
Punto decimal y/o exponte)

double Número real 2 palabras (8 bytes)


(más cifras significativas)
Estructura de Datos y Taller

int -32768 a 32767 y unsigned int 0 a 65535

char -128 a +127 u unsigned char 0 a 255

Instrucciones
Una instrucción hace que la computadora efectúe alguna acción. Hay tres tipos
diferentes de instrucciones en C; instrucciones de expresión, instrucciones compuestas e
instrucciones de control.

Una instrucción de de expresión consiste en una expresión seguida de un punto y


coma. La ejecución de una instrucción de expresión hace que se evalúe la expresión, ejemplo:

 a = 3;
 c=a+b;
 ++i;
 printf(“Area = %f”, area);
 ;

Las dos primeras instrucciones de expresión son instrucciones de tipo asignación. Cada
una hace que el valor de la expresión a la derecha del signo igual le sea asignado la variable
de la izquierda. La tercera instrucción de expresión es una instrucción de tipo incremento, que
hace que el valor de i sea incrementado en 1.

La cuarta cuarta instrucción de expresión hace que la función printf sea evaluada. Esta es
una función de biblioteca de C estándar que visualiza resultados en la computadora. En este
caso se visualizara el mensaje Area =, seguido del valor actual de la variable area. Así si area
tiene el valor de 100., la instrucción generará el mensaje Area = 100.

La última instrucción de expresión no hace nada, ya que consta de un punto y coma.

Una instrucción compuesta esta formada por varias instrucciones individuales encerradas
con un par de llaves { }. Las instrucciones pueden ser a su vez instrucciones de expresión,
instrucciones compuestas o instrucciones de control. A diferencia de una instrucción de
expresión, una instrucción compuesta no acaba con un punto y coma; ejemplo:
{
pi=3.1416;
circunferencia = 2 * pi * radio;
area = pi * radio * radio;
}

Las instrucciones de control se utilizan para conseguir ciertas acciones especiales en los
programas, tales como las comprobaciones lógicas, bucles y bifurcaciones. Muchas
instrucciones de contro requieren que otras instrucciones se encuentren incluidas en ellas;
ejemplo:

while ( cont <= n)


{
printf(“x = “);
scanf(“%f”, &x);
suma += x;
++cont;
}

Ejercicio sobre identificadores:


Determinar cuáles de los siguientes identificadores son válidos.
a) registro1 e) $impuesto h) nombre_y_direccion
b) 1registro f) nombre i) nombre-y-direccion
c) archivo_3 g) nombre y dirección j) 123-45-6789
d) return

Secuencias de escape:

Carácter Secuencia de escape Valor ASCII


sonido(alerta) \a 007
Estructura de Datos y Taller

retroceso \b 008
tabulador horizontal \t 009
tabulador vertical \v 011
nueva línea (avance de línea) \n 010
avance de página \f 012
retorno de carro \r 013
comillas (“) \” 034
comilla simple (‘) \’ 039
signo de interrogación(?) \? 063
barra inclinada hacia atrás (\) \\ 092
nulo \0 000

OPERADORES
Operadores Aritméticos

Operador Propósito
+ Suma
- Resta
* Multiplicación
/ División
% Resto de división entera

Operadores Monarios

Es probable que el operador monario de uso más frecuente sea el menos monario, que
consiste en un signo menos delante de una constante numérica, una variable o una expresión.
En C todas las constantes numéricas son positivas.

Otros dos operadores monarios de uso frecuente son el operador de incremento, ++, y
el operador decremento, --. El operador incremento hace que su operando se incremente en
uno, mientras que el operador decremento hace que su operando decremente en uno.
Supongamos que i es una variable entera que tiene asignado el valor 5. La
expresión i++, que es equivalente a escribir i = i + 1, hace que el valor de i sea 6.
Análogamente la expresión –i, que es equivalente a i = i -1, hace que el valor de i pase
a ser 4.

Operadores Relacionales

En C existen cuatro operadores relacionales:

Operador Significado
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que

Muy asociados a los operadores relacionales, existen dos operadores de igualdad:


Operador Significado
== igual que
!= diferente que

Ejemplo: Supongamos que i es una variable entera cuyo valor es 7, f es una variable flotante
cuyo valor es de 5.5 y c es una variable de carácter que representa el carácter ‘w’.

Expresión Interpretación Valor


f>5 cierto 1
( i + f ) <= 10 falso 0
c == 119 cierto 1
c != ’p’ cierto 1
c >= 10 * ( i + f) falso 0
Estructura de Datos y Taller

Operadores Lógicos

C posee tres operadores lógicos:

Operador Significado
&& y
|| o
! no

Ejemplos:

Expresión Interpretación Valor


( i >= 6 ) && ( c == ‘w’ ) cierto 1
( i >= 6 ) | | ( c == 119 ) cierto 1
( f < 11 ) && ( i > 100 ) falso 0
( c != ‘p’ ) | | (( i + f ) <= 10)) cierto 1

Operadores de Asignación

El operador de asignación más usado es: =.


Identificador = expresión
donde identificador representa generalmente una variable y expresión una constante, una
variable o una expresión mas compleja.
Además C posee cinco operadores de asignación más: +=, -=, *=, /= y %=.

Ejemplos: supongamos que

i += 5
f /= 3
i = 3.3
i = -3.3

Operador Condicional

Se pueden efectuar operaciones simples con el operador condicional ( ? : ). Una


expresión condicional se escribe de la forma siguiente:

expresión 1 ? expresión 2 : expresión 3

Cuando se evalúa una expresión condicional, expresión 1 es evaluada primero. Si expresión 1


es cierta (si su valor es no nulo), entonces expresión 2 es evaluada y éste es el valor de la
expresión condicional. Sin embrago, si expresión 1 es falsa (si su valor es cero), entonces se
evalúa expresión 3 y éste es el valor de la expresión condicional.

Ejemplo:
( i < 0) ? 0 : 100

REGLAS DE PRIORIDAD

Categoría del operador Operadores


Función, formación, miembro de estructura, ( ) [ ] . ->
puntero a miembros de estructura
Operadores monarios - ++ -- ! sizeof(tipo)
Multiplicación, división, módulo * / %
Suma, resta + -
Operadores relacionales < <= > >=
Operadores de igualdad != ==
y lógica &&
o lógica ||
no lógica !
Operador condicional ?:
Operadores de asignación = += -= *= /= %=
Estructura de Datos y Taller

Ejercicios:

1. Convertir a expresión en C las siguientes ecuaciones:

2
b  b  4ac M M
N
P
2a N P Q
n
m
mn p
pq r
q
5

2. Calcular el valor de las siguientes expresiones:


a) 8 + 7 * 3 + 4 * 6
b) -2 ^ 3
c) ( 33 + 3 * 4 ) / 5
d) 2 ^ 2 * 3
e) 3 + 2 * (18 – 4 ^ 2 )
f) 16 * 6 – 3 * 2

3. Supongamos que x, y y z son variables flotantes que tienen asignados los valores x =
88, y = 3.5 y z = -5.2. Determinar el valor de cada una de las siguientes expresiones
aritméticas.
a) 2 * y + z
b) x / y
c) x % y
d) 2 * x / (3 * y)

4. Supongamos c1, c2 y c3 variables de tipo carácter que tienen asignados los caracteres
E, 5 y ?, respectivamente. Determinar el valor numérico de las siguientes expresiones,
basándose en el conjunto de caracteres ASCII.
a) c1
b) c1 – c2 + c3
c) c2 – 2
d) c2 – ‘2’
e) c3 + ‘#’
f) c1 % c3
g) ‘2’ + ‘2’
h) ( c1 / c2 ) * c3
i) 3 * c2
j) ‘3’ * c2

5. Un programa en C contiene las siguientes declaraciones:


int i, j;
long ix;
short s;
flota x;
double dx;
char c;

Determinar el valor de cada una de las siguientes expresiones


a) ( 3 * i – 2 * j ) % ( 2 * d – c )
b) 2 * ( ( i / 5 ) + ( 4 * ( j – 3 ) ) % ( i + j – 2 ) )
c) ( i – 3 * j ) % ( c + 2 * d ) / ( x – y )
d) – ( i + j )
e) ++i
Estructura de Datos y Taller

f) i++
g) - -j
h) ++x
i) y- -
j) i <= j
k) c>d
l) x >= 0
m) x<y
n) j != 6
o) c == 99
p) 5 * ( i + j ) > ’c’
q) ( 2 * x + y ) == 0
r) 2 * x + ( y == 0 )
s) 2 * x + y == 0
t) ! ( i <= j )
u) ! ( c == 99 )
v) !(x>0)
w) ( i > 0 ) && ( j < 5 )
x) (i>0)||(j<5)
y) ( x > y ) && ( i > 0 ) | | ( j < 5 )

6. Un programa en C contiene las siguientes declaraciones y asignaciones iniciales:


int i=8, j=5;
double x=0.005, y=-0.01;
char c=’c’, d=’d’;
Determinar el valor de cada una de las siguientes expresiones, que hacen uso de funciones
de bibliotecas.

a) abs ( i – 2 * j ) n) log (exp (x ) )


b) fabs ( x + y ) o) sqrt ( x * x + y * y )
c) isprint ( c ) p) isalnum (10 * j )
d) isdigist ( c ) q) isalpha (10 * j )
e) toupper ( d ) r) isascii ( 10 * j )
f) ceil ( x ) s) toascii ( 10 * j )
g) ceil (x + y ) t) fmod ( x, y )
h) floor ( x ) u) tolower ( 65 )
i) floor ( x + y ) v) pow ( x – y, 3.0 )
j) islower ( c ) w) sin ( x- y )
k) isupper ( j ) x) strlen ( “hola\0”)
l) exp ( x ) y) strpos (“hola\0”, ‘e’)
m) log ( x ) z) sqrt ( sin ( x ) + cos ( y ) )
Estructura de Datos y Taller

Apéndice 1:

Conjunto de Caracteres ASCII


Estructura de Datos y Taller

Funciones de biblioteca más usadas


Estructura de Datos y Taller
Estructura de Datos y Taller
Estructura de Datos y Taller
Estructura de Datos y Taller
Estructura de Datos y Taller

Repaso 2:
Entrada de un Carácter – La Función getchar

Mediante la función de biblioteca getchar se puede conseguir la entrada de caracteres


uno a uno. La función no requiere argumentos, aunque es necesario que un par de paréntesis
vacíos sigan a la palabra getchar.

En forma general, una referencia a la función getchar se escribe así:

variable de carácter = getchar();

donde variable de carácter es una variable de carácter previamente declarada.

Ejemplo:
char c;
. . . . . . .
c = getchar();
En la primera instrucción se declara la variable c de tipo carácter. La segunda instrucción hace
que se lea el dispositivo de entrada estándar un carácter y entonces se le asigne a c.

Salida de un Carácter – La Función putchar

Se puede visualizar un carácter utilizando la función de biblioteca putchar. La función


putchar, así como getchar, es parte de la biblioteca de entrada/salida estándar.
Una referencia a la función putchar se escribe como sigue:

putchar(variable de carácter)

donde variable de carácter hace referencia a una variable de tipo carácter previamente
declarada.

Ejemplo:
char c;
. . . . . . .
putchar(c);
En la primera instrucción se declara la variable c de tipo carácter. La segunda instrucción hace
que se transmita el valor actual de c al dispositivo de salida estándar en donde se visualizará.

Ejemplo:
Conversión de un texto de minúsculas a mayúsculas. Leer una línea de texto minúsculas,
almacenarse en una formación de tipo carácter unidimensional y después escribir en
mayúsculas.

#include"stdio.h"
#include"ctype.h"
#include"conio.h"
char letras[80];
int cont, auxiliar;
main()
{
clrscr();
for(cont=0;(letras[cont]=getchar())!='\n';++cont)
auxiliar=cont;
for(cont=0;cont<auxiliar;++cont)
putchar(toupper(letras[cont]));
getch();
}
Estructura de Datos y Taller

Introducción de Datos – La Función scanf

Se pueden introducir datos en la computadora procedentes del dispositivo de entrada


estándar mediante la función de la biblioteca de C scanf.
La función scanf se escribe:

scanf(“cadena de control”, arg1, arg2, . . . . ., argn);

donde cadena de control hace referencia a una cadena de caracteres que contiene cierta
información sobre el formato de los datos. (En realidad, los argumentos representan punteros
que indican las direcciones de memoria en donde se encuentran los datos.)

Un grupo de caracteres estará formado por el signo de porcentaje, seguido de un


carácter de conversión que indica el tipo de dato correspondiente.

Caracteres de conversión de los datos de entrada de uso común

Carácter de conversión Significado


c El dato es un carácter
d El dato es un entero decimal
e El dato es un valor flotante
f El dato es un valor flotante
g El dato es un valor flotante
h El dato es un entero corto
i El dato es un entero decimal, octal o hexadecimal
l Dato largo (entero largo, entero largo sin signo o real en doble
presición)
L Dato largo (real en doble presición largo)
o El dato es un entero octal
s El dato es una cadena de caracteres seguida de un carácter de
espaciado (se añade automáticamente el carácter nulo \0 al final)
u El dato es un entero decimal sin signo
x El dato es una cadena de caracteres que puede incluir caracteres
de espaciado.

Ejemplo:
#inlcude<stdio.h>
char concepto[20];
int no_partida;
flota coste;
main()
{
. . . . . . .
scanf(“ %s %d %f”, &concepto, &no_partida, &coste);
. . . . . . .
}

Los datos se introducen en una línea, separados por espacios en blanco. También se
pueden introducir los datos en líneas separadas, ya que los caracteres de nueva línea se
considerarían también como caracteres de espaciado. Por tanto los datos de entrada se
podrían haber escrito así:

cremallera 12345 0.05

cremallera
12345
0.05

cremallera
12345 0.05

cremallera 12345
0.05
Estructura de Datos y Taller

La conversión de caracteres tipo s se aplica a una cadena de caracteres que acaba en


un carácter de espaciado. Por tanto, una cadena de caracteres que incluye caracteres de
espaciado no se puede introducir de esta forma.

Ejemplo:
#inlcude<stdio.h>
char linea[80];
{
. . . . . . .
scanf(“ %[ ABCDEFGHIJKLMNOPQRSTUVWXYZ]”, linea);
. . . . . . .
}
Si se introduce la cadena
CIUDAD DE ALMERIA
por el dispositivo de entrada estándar cuando se ejecuta el programa, se le asignará a la
formación linea toda la cadena de caracteres, ya que está compuesta sólo por letras
mayúsculas y espacios en blanco. Sin embargo, si se hubiese escrito la cadena
Ciudad de Almería
sólo se habría asignado a linea la letra C, ya que la primera letra minúscula (en este caso la i)
se interpretaría como el primer carácter a continuación de la cadena. Se podría, por supuesto ,
haber incluido mayúsculas y minúsculas dentro de los corchetes, pero esto ya resulta
incomodo.
Otra forma de hacer esto, es preceder los caracteres dentro de los corchetes por un
acento circunflejo (^). La cadena de caracteres introducida por el dispositivo de entrada
estándar puede tener cualquier carácter ASCII, excepto el carácter de nueva liena.

Ejemplo:
#include<stdio.h>
char liena[80];
main()
{
. . . . . . .
scanf(“%[^\n], linea);
. . . . . . .
}

Mas sobre la Función scanf

Ejemplo:
#include<stdio.h>
int a,b,c;
main()
{
. . . . . .
scanf(“%3d %3d %3d”, &a, &b, &c);
. . . . . .
}

Cuando se ejecuta el programa, se introducen tres cantidades por el teclado.


Supongamos que los datos introducidos son:
1 2 3

Entonces se efectuarán las siguientes asignaciones:


a=1, b=2, c=3

Si se introducen los datos


123 456 789

Entonces las asignaciones serían:


a=123, b=456, c=789

Supongamos ahora que se introduce


123456789
Estructura de Datos y Taller

Entonces las asignaciones serían:


a=123, b=456, c=789

como antes, ya que se le asignaría a a los tres primeros dígitos, los tres siguientes a b y los
últimos tres dígitos a c.

Finalmente, supongamos que los datos que se introducen son


1234 5678 9

Las asignaciones resultantes serían ahora


a=123, b=4, c=567

Ejemplo:
#include<stdio.h>
int i;
float x;
char c;
main()
{
. . . . . .
scanf(“%3d %5f %c”, &i, &x, &c);
. . . . . .
}

Si introducimos los siguientes datos


10 256.875 T

La asignación sería a i el valor de 10, a x el valor de 256.8 y a c se le asignará el carácter 7.

Ejemplo:
#include<stdio.h>
char concepto[20];
int no_partida;
float coste;
main()
{
. . . . . .
scanf(“%s %*d %f”, &concepto, &no_partida, &coste);
. . . . . .
}

Si los datos de entrada son


cremallera 12345 0.05

entonces a concepto se le asignará cremallera y a coste se le asignará 0.05. sin embargo, a


no_partida no se le asignará 12345 a causa del asterisco, que se interpreta como un carácter
de supresión de asignación.

Ejemplo:
#include<stdio.h>
char c1,c2,c3;
main()
{
. . . . . .
scanf(“%c%c%c”, &c1, &c2, &c3);
. . . . . .
}

Si los datos de entrada son


a b c
Estructura de Datos y Taller

(con espacios en blanco entre las letras)


c1=a, c2=<espacio en blanco>, c3=b

Sin embrago, la función scanf se hubiese escrito de la siguiente forma


scanf(“%c%1s%1s”, &c1, &c2, &c3);

entonces los mismos datos de entrada harían que se realizasen las siguientes asignaciones
c1=a, c2=b, c3=c

Otra forma de solucionar el problema:


scanf(“%c %c %c”, &c1, &c2, &c3);

Introducción de Datos – La Función printf

Se pueden escribir datos en el dispositivo estándar utilizando la función de biblioteca


printf.
La función printf se ocupa de transferir datos de la memoria de la computadora al
dispositivo de salida estándar.

La función printf se escribe:

printf(“cadena de control”, arg1, arg2, . . . . ., argn)

donde cadena de control hace referencia a una cadena de caracteres que contiene información
sobre el formato de la salida y arg1, arg2, . . . . ., argn son argumentos que representan los
datos de salida. En contraste con la función scnaf, los argumentos de la función printf no
representan direcciones de memoria y por lo tanto no son precedidos de ampersands.

Un grupo de caracteres consistirá en el signo de porcentaje (%) seguido por un


carácter de conversión que indica el tipo de dato correspondiente.

Ejemplo:
#include<stdio.h>
#include<math.h>
float i=2.0, j=3.0;
{
printf(“%f %f %f %f”, I, j, i+j, sqrt(i+j));
}

La ejecución del programa produce la siguiente salida:


2.000000 3.000000 5.000000 2.236068

Ejemplo:
#include<stdio.h>
char concepto[20]=cremallera;
int no_partida=12345;
float coste=0.05;
main()
{
. . . . . .
printf(“%s %d %f”, concepto, no_partida, coste);
. . . . . .
}

Se genera la siguiente salida:


cremallera 12345 0.05

Los espacios en blanco entre los datos son generados por los espacios en blanco que
aparecen en la cadena de control de la instrucción printf.
Supongamos que la instrucción printf se ha escrito así:
printf(“%s%d%f”, concepto, no_partida, coste);
Estructura de Datos y Taller

La instrucción printf es válida sintácticamente, aunque hace que los datos de salida se
presenten sin separación, esto es:
cremallera123450.05

Ejemplo:
#include<stdio.h>
float x=123.456;
main()
{
printf(“%f %.3f %.1f\n\n”, x,x,x);
}

La ejecución de este programa produce la siguiente salida:


123.456000 123.456 123.5

Las Funciones gets y puts

Las funciones gets y puts ofrecen alternativas sencillas al uso de scanf y printf para la
lectura y escritura de cadenas de caracteres.

Ejemplo:
#include<stdio.h>
char linea[80];
{
gets(linea);
puts(linea();
}

Ejercicios:
1. Realice un programa que calcule el área de un cuadrado.
2. Realice un programa que lea el nombre de una persona, tres
calificaciones y calcule su promedio, el resultado se imprime en pantalla.
Estructura de Datos y Taller

INSTRUCCIONES DE CONTROL

Se utilizarán los cuatro operadores relacionales, <, <=, >, >=, los dos operadores de igualdad,
== y ¡=, operadores lógicos, && y | | y el operador monario de negación, !.

Ejecución Condicional: La Instrucción if-else

La instrucción if-else se utiliza para realizar un test lógico y a continuación llevar a cabo
una de dos posibles acciones, dependiendo del resultado del test (de que es cierto o falso).
La parte else de la instrucción if-else es opcional. Por tanto, las instrucciones se
pueden escribir, en su forma general más simple,

If (expresión)
Instrucción
La expresión se debe encontrar entre paréntesis. De esta forma la instrucción se
ejecutará sólo si la expresión tiene un valor no nulo (si expresión es cierta). Si la expresión
tiene el valor cero (si expresión es falsa), entonces se ignorará la instrucción.
La instrucción puede ser simple o compuesta.

Ejercicios:

1. Realice un programa el cual lea desde el teclado un número entero positivo,


incluyendo el cero (0), e imprima en pantalla si el número leído es número par o
impar.
2. Realice un programa que lea 3 números enteros e imprima en pantalla cual es el
menor y mayor de ellos.
3. Dado el nombre o número de un mes y si el año es o no bisiesto, deducir el número
de días del mes.
4. Leer el año en que nacieron dos persona y determinar quien es más grande.
5. Realice un programa que determine cuál de dos personas es mayor en edad en
base a su año de nacimiento, ambos años de nacimiento serán leídos desde el
teclado, se imprimirá en pantalla por medio de un mensaje cual de las dos
personas tiene mayor edad en la actualidad.
6. Realice un programa el cual lea desde el teclado dos cadenas de caracteres y que
imprima en pantalla la cadena mas larga.
7. Realice un programa el cual lea un número entero desde el teclado e imprima en
pantalla si el número leído es positivo, negativo o cero (0).
8. Realice un programa el cual lea desde el teclado una vocal (a, e, i, o, u) e imprima
por medio de un mensaje en pantalla el número de vocal correspondiente, por
ejemplo; si se lee la vocal i, se imprimirá en pantalla el número 3.
9. Realice un programa el cual lea desde el teclado un año y determinar si es año
bisiesto o no.
10. Realice un programa que lea la hora en notación de 0 a 24 hrs. Y el resultado sea
en notación de 12 horas.
11. Realice un programa que permita leer la edad de una persona e imprima en
pantalla si es menos o mayor de edad.
12. Realice un programa que obtenga el doble de un número, leído desde el teclado,
sólo si el número es menor de 50, en caso contrario calcular su triple.
13. Obtener el total a pagar de un cliente que utiliza una computadora. El precio es el
siguiente: si utilizó la computadora 1 hora o menos el costo es de $10.00, en caso
de que su permanencia sea mayor de una hora el costo es de $20.00. Leer y
manejar el tiempo en minutos.
14. Realice un programa que lea un numero entero, si es mayor que 10 calcular su
doble, sino, el cubo.
15. Doña Martha dejo un testamento donde tiene como único heredero a su sobrino
Luis y a un hospicio municipal, el porcentaje en la que se dividirá la herencia
depende de la edad que tenga su sobrino al momento que Doña Martha muera. Si
su sobrino tiene 20 años o menos el porcentaje sería 80% para Luis y 40% para el
hospicio, en caso contrario, si Luis tiene mas de 20 años el porcentaje será 30%
para Luis y 70% para el hospicio. Determinar el porcentaje con un mensaje.
16. Aplica el 25% de descuento en una compra si la cantidad es mayor de $600,
desplegando el mensaje de que se aplico el descuento y la cantidad final, en caso
contrario presentar un mensaje que indique que no hubo descuento.
Estructura de Datos y Taller

17. Hacer un algoritmo para que obtenga el descuento del boleto de viaje por autobús
que se le aplicará al cliente de acuerdo a su edad: de 0 a 14 año tiene un
descuento del 50%, las personas mayores de 55 años tienen un descuento del
30%. Cualquier otra edad no aplica descuento. Leer la edad del pasajero y el
precio baso del boleto, al final mostrar el precio y su descuento respectivo.
18. Realice un programa que escriba los nombres de los días de la semana en función
del valor de una variable entera introducida por el teclado, que represente su
posición dentro de la semana. Los días de la semana son 7; por consiguiente, el
rango de la variable será de 1 a 7, y en caso de que la variable estuviese fuera de
este rango se deberá producir un mensaje de error advirtiendo la situación
anómala.

La Instrucción switch

La instrucción switch hace que se seleccione un grupo de instrucciones entre varios


grupos disponibles. La selección se basa en el valor de una expresión que se incluye en la
instrucción switch.

switch (expresión)
{
case1 expresión:
instrucción 1;
instrucción 2;
. . . . . . .
Instrucción n;
break;

case2 expresión:
instrucción 1;
instrucción 2;
. . . . . . .
Instrucción n;
break;

casen expresión:
instrucción 1;
instrucción 2;
. . . . . . .
Instrucción n;
break;

default::
instrucción 1;
instrucción 2;
. . . . . . .
Instrucción n;
break;

Ejercicios:
1. Realice un programa que escriba los nombres de los días de la semana en función del
valor de una variable entera introducida por el teclado, que represente su posición
dentro de la semana. Los días de la semana son 7; por consiguiente, el rango de la
variable será de 1 a 7, y en caso de que la variable estuviese fuera de este rango se
deberá producir un mensaje de error advirtiendo la situación anómala.
2. Leer un número arábigo entre el 1 y 7, desplegar su correspondiente en romana, si el
número esta fuera de rango se imprimirá error.
3. Convertir las calificaciones alfabéticas A, B, C, D y E a calificaciones numéricas
decimales 10, 9, 8, 7 y 6 respectivamente.
4. Realice un programa que examine el valor de una variable entera llamada indicador y
escriba uno de los siguientes mensajes dependiendo de su valor:
 CALOR, si indicador tiene el valor de 1
 TEMPLADO, si indicador tiene el valor de 2
Estructura de Datos y Taller

 FRÍO, si indicador tiene el valor de 3


 FUERA DE RANGO, si indicador tiene cualquier otro valor
5. 5. Realice un programa que examine el valor de una variable de tipo caracter llamada
color y escriba uno de los siguientes mensajes dependiendo de su valor:
 ROJO, si color tiene el valor de r o R
 VERDE, si COLOR tiene el valor de v o V
 AZUL, si color tiene el valor de a o A
 NEGRO, si color tiene cualquier otro valor
6. Hacer un algoritmo donde se lean dos variables desde el teclado, se presente un menú
para escoger una operación a realizar (suma, resta. Multiplicación, división o
potenciación) de esas dos variables y presentar en pantalla el resultado de lo que se
hizo.
7. Hacer un algoritmo para que obtenga el descuento del boleto de viaje por autobús que
se le aplicará al cliente de acuerdo a su edad: de 0 a 14 año tiene un descuento del
50%, las personas mayores de 55 años tienen un descuento del 30%. Cualquier otra
edad no aplica descuento. Leer la edad del pasajero y el precio baso del boleto, al final
mostrar el precio y su descuento respectivo.

La Instrucción while
La instrucción while se utiliza para generar bucles, en los cuales un grupo de
instrucciones se ejecutan de forma repetida, hasta que se satisface alguna condición.

Sintaxis:
While (expresión o condición)
{
acción 1;
acción 2;
………..
acción n;
}

Ejercicios:
1. Preguntar un nombre y repetirse en pantalla como se desee (preguntar cantidad de
repeticiones), indicando el número de repetición.
2. Escribe un algoritmo que calcule la media de una serie de N números.
3. Escribe un algoritmo que muestre en pantalla la suma de los cuadrados de los N
números.
4. Calcular la media aritmética de una serie de números positivos, termina con un número
negativo.
5. Obtener la tabla de multiplicar de un número leído.
6. Programa que despliegue del 1 al 500 en pantalla.
7. Programa que despliegue las primeras 10 tablas de multiplicar.
8. Programa que despliegue del 327 al 1 en pantalla.
9. Programa que lea una serie de números y se detenga cuando lea un 0.
10. Programa que lea una serie de números, obtenga el cuadrado de cada número
desplegando el resultado en pantalla y se detenga cuando el número leído sea un 0.
11. Programa que obtenga el factorial de un número leído.
12. Programa que determine la suma de las ventas de 5 empleados.

También podría gustarte