Documente Academic
Documente Profesional
Documente Cultură
FONDO 2
ESTRUCTURAS BASICAS
DE CONTROL Y LOGICA
ALGORITMICA
OBJETIVOS
Analizar y resolver algoritmos utilizando las
estructuras de control bsicas: secuencial,
condicional e iterativa.
Conocer, identificar y aplicar recursos
algortmicos: contadores, acumuladores,
mximos, mnimos. Etctera.
Hacer un seguimiento paso a paso del
algoritmo.
Analizar y resolver problemas
contextualizados.
ESTRUCTURA
SECUENCIAL
if(expresin)
proposicin1;
else
proposicin2;
#include <stdio.h>
Int main()
{
Int a,b;
Int mayor,menor;
If ( a>b)
{
mayor= a;
menor=b;
}
Else
{
mayor=b;
menor=a;
}
Return 0;
}
Si la expresin es verdadera, se ejecuta la
proposicin1, de lo contrario se realiza la
proposicin2.
Por ejemplo:
int x=4;
if(x<10)
printf(es menor que diez);
Else
printf(es mayor que diez);
EJERCICIOS
A- Escribe un programa que pida un nmero entero,
y conteste al usuario: Has introducido el numero
(x), gracias
EJERCICIO
Leer tres valores numricos enteros, indicar cual es
el mayor, cual es el medio, cual es el menor.
Considerar que los tres valores sern diferentes .
ANALISIS
Leemos los tres valores y comenzamos a
comparar preguntando si a>b, si esto se verifica
entonces preguntamos si a>c, si esto tambin se
verifica, como a>b y a>c no hay dudas de que a
es mayor.
Luego tenemos que comparar b y c para ver cual
esta en segundo y tercer lugar.
Si resulta que a>b pero no se verifica que a>c
( es decir que c es mayor que a) ser por que c es
el mayor, a el medio y b el menor.
Por otro lado si no se verifica que a>b
preguntamos si b>c, si esto es as entonces el
mayor ser b(ya que b es mayor que a y b es
mayor que c) preguntamos si a>c y podremos
deducir cual esta en segundo y tercer lugar.
Para finalizar si es falso que b>c entonces el mayor
ser c , medio b y menor a:
#include <stdio.h>
Int main()
{
int a, b, c;
int mayor, medio, menor;
Return 0;
}
SELECCIN EN LINEA O
IF-INLINE
Esta estructura implementa un if en una nica
lnea de cdigo y funciona as:
#include <stdio.h>
{
Int a,b,c;
Int mayor, medio,menor;
Printf (ingrese tres valores: );
Scanf (%d %d %d, &a, &b, &c);
Por ejemplo:
#define MAX(x,y) x>y?x:y
#define MIN(x,y) x<y?x:y
Int main()
{
int a, b, c;
int mayor, medio, menor;
#include <stdio.h>
#include <string.h>
Int main ()
{
Int nroDia;
Char dia [10];
Printf( Ingrese dia de la semana : );
Scanf( %d, &nroDia);
Switch (nroDia)
{
case 1:
strcpy (dia, Lunes); // asigno a dia la
cadena Lunes
break;
case 2:
strcpy (dia, Martes);
break;
case 3:
strcpy (dia, Miercoles);
break;
case 4:
strcpy (dia, Jueves);
break;
case 5:
strcpy (dia, Viernes);
break;
case 6:
strcpy (dia, Sabado);
break;
case 7:
strcpy (dia, Domingo);
break;
}
Printf (%d es %s , nroDia);
Return 0;
}
Es muy importante poner la sentencia
break al finalizar el conjunto de acciones
que se ejecutan dentro de cada caso ya
que si la omitimos se ejecutaran
secuencialmente todas las acciones de
todos los casos subsiguientes.
Es decir, supongamos que el usuario
ingresa el da numero 5 y omitimos poner
los breaks entonces el programa ingresara
por case 5, asignara Viernes a dia, luego
le asignara Sabado y luego Domingo.
Por lo tanto, la salida ser:
5 es Domingo
S= {
}
S={
}
Como vemos strcpy asigna el i-simo
carcter de la cadena Hola al i-simo
carcter del conjunto o array s.
Ademas strcpy agrega el carcter especial \
0
Que delimita el final de la cadena. Es decir
que si bien s tiene espacio para almacenar
10 caracteres nosotros estamos utilizando 5.
cuatro para la cadena Hola mas 1 para el
\ 0.
Un aray de n caracteres se puede almacenar
cadenas de , a lo sumo , n-1 caracteres ya
que siempre se necesitara incluir el carcter
de fin de cadena \ 0 al final. En un ejercicio
anterior se expuso lo siguiente:
#include <stdio.h>
Int main ()
{
char nombre [] = Pablo;
Int edad=39;
Double altura =1,70;
Nota 1: En las caras opuestas de un dado de seis caras estn los nmeros:
1-6, 2-5 y 3-4.
En pantalla:
En pantalla:
Listado de habitaciones:
1. Azul
2. Roja
3. Verde
4. Rosa
5. Gris
1. Azul
2. Roja
3. Verde
4. Rosa
5. Gris
int main( )
{
int i;
printf("Introduzca nmero del 1 al 5:");
scanf("%d",&i);
if (i!=4) {
printf("Es primo.");
}
else
{
printf("No es primo.");
}
system("PAUSE");
return 0;
}
SYSTEM (PAUSE);
system()es una funcin dellenguaje de
programacin Cincluida en
subibliotecaestndar, dentro de la cabecera
<stdlib.h>. Sirve para ejecutar subprocesos o
comandos del sistema operativo.
system permite ejecutar a su vez otras
funciones como: cls, dir o pause. Por
ejemplo, al escribirsystem ("pause")se est
incorporando una pausa en el programa, es
decir, que se espera a que el usuario
presione alguna tecla para continuar con la
ejecucin del mismo.
Realizar un programa en C que pida un
nmero y diga si es par o impar.
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int i;
printf("Introduzca nmero:");
scanf("%d",&i);
if (i%2==0)
{
printf("Es par.");
}
else
{
printf("Es impar.");
}
system("PAUSE");
return 0;
}
Realizar un programa en C que pida un
nmero del 1 al 12 y diga el nombre
del mes correspondiente.
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int i;
printf("Introduzca nmero del 1 al
12:");
scanf("%d",&i);
switch(i){
case 1:
printf ("Enero\n");
break;
case 2:
printf ("Febrero\n");
break;
case 3:
printf ("Marzo\n");
break;
case 4:
printf ("Abril\n");
break;
case 5:
printf ("Mayo\n");
break;
case 6:
printf ("Junio\n");
break;
case 7:
printf ("Julio\n");
break;
case 8:
printf ("Agosto\n");
break;
case 9:
printf ("Septiembre\n");
break;
case 10:
printf ("Octubre\n");
break;
case 11:
printf ("Noviembre\n");
break;
case 12:
printf ("Diciembre\n");
break;
default:
printf ("Opcin no vlida\n");
break;
}
system("PAUSE");
return 0;
}
Realizar un programa en C que pida 3 nmeros y los
muestre en pantalla de menor a mayor.
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int num1,num2,num3;
system("PAUSE");
return 0;
}
Realizar un programa en C que pida 3 nmeros y los muestre
en pantalla de mayor a menor.
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int num1,num2,num3;
system("PAUSE");
return 0;
}
Realizar un programa en C que pida 3 nmeros y los
muestre en pantalla de mayor a menor en lneas distintas.
En caso de haber nmeros iguales se imprimen en la misma
lnea.
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int num1,num2,num3;
system("PAUSE");
return 0;
}
Realizar un programa en C que pida un nmero y diga si es positivo o negativo.
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int num1;
if (num1>0){
printf("Es positivo\n");
}
else if (num1<0){
printf("Es negativo\n");
}
else
{
printf("Es cero\n");
}
system("PAUSE");
return 0;
}
Realizar un programa en C que slo permita introducir los caracteres S y N.
#include <stdio.h>
#include <stdlib.h>
int main( )
{
char c;
printf("Introduzca un carcter:");
scanf("%c",&c);
if (c=='s' || c=='n' ){
printf("Es correcto\n");
}
else
{
printf("Es incorrecto\n");
}
system("PAUSE");
return 0;
}
Realizar un programa en C que pida un nmero y diga si es mayor
de 100.
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int num1;
printf("Introduzca un nmero:");
scanf("%d",&num1);
if (num1>100){
printf("Es mayor\n");
}
else
{
printf("Es menor\n");
}
system("PAUSE");
return 0;
}
Realizar un programa en C que pida una letra y detecte si es una vocal.
#include <stdio.h>
#include <stdlib.h>
int main( )
{
char c;
printf("Introduzca un carcter:");
scanf("%c",&c);
switch (c)
{
case 'a':
printf ("Es vocal\n");
break;
case 'e':
printf ("Es vocal\n");
break;
case 'i':
printf ("Es vocal\n");
break;
case 'o':
system("PAUSE");
return 0;
}