martes, 7 de febrero de 2012

Lógica Algoritmica y Programación Febrero 2012 PROFESOR: MIGUEL ANGEL GAVIDIA

Lógica Algoritmica y Programación
Febrero 2012
PROFESOR: MIGUEL ANGEL GAVIDIA

PROPÓSITO:
El propósito de este curso es introducir al participante en los fundamentos del diseño Lógico de algoritmos para luego utilizar un Lenguaje de Programación conocido y general y observar su ejecución en un computador. Para ello se aprenden los elementos del proceso de desarrollo de aplicaciones que se ejecutan en los computadores.

Prerrequisito: Ninguno
Audiencia: Aprobar un curso de alfabetización tecnológica a nivel universitario.

OBJETIVO GENERAL:
Estimular al participante con la finalidad de adquirir conocimientos, habilidades, destrezas y actitudes en el análisis, diseño, implementación y prueba en un lenguaje de programación de algoritmos para ser ejecutados como programas en un computador.

Objetivos Específicos:
1)Conocer a un computador como una herramienta en la solución de problemas mediante el uso de aplicaciones.
2)Conocer el enfoque metodológico en la solución de problemas algoritmicos en cuanto a identificar, definir y describir un problema planteado.
3)Analizar los datos de entrada y salida de un algoritmo
4)Identificar los elementos principales que constituyen a un algoritmo
5)Usar con propiedad la terminología para analizar y diseñar algoritmos
6)Aplicar el uso de algoritmos para resolver rutinas de la vida diaria
7)Evaluar expresiones algebraicas en términos de expresiones algorítmicas
8)Analizar y entender problemas algoritmicos
9)Crear la lógica básica de un algoritmo.
10)Resolver problemas numéricos y no numéricos mediante algoritmos expresados una notación en lenguaje pseudocódigo
11)Evaluar algoritmos en cuanto a su funcionalidad, generalidad y eficiencia
12)Identificar los elementos fundamentales para conocer y ejecutar programas en un computador.
13)Identificar la utilidad de las estructuras de control condicional: si, si-sino
14)Resolver problemas algoritmicos usando la estructura de control condicional
15) Identificar la utilidad de las distintas estructuras de control repetición: para, mientras, hacer-hasta
16)Resolver problemas algoritmicos usando la estructura de control repetición
17)Probar y evaluar la confiabilidad de los algoritmos.

Contenido del curso de Algoritmos

Unidad 1: Fundamentos de algoritmos

Objetivos del Aprendizaje Unidad 1:

1.Definir el propósito y el contenido de un algoritmo como método para resolver un problema mediante el uso de un computador.
2.Establecer una metodología para resolver un problema mediante el uso de un computador.
3.Conocer algunos conceptos básicos relacionados al diseño de algoritmos.
4.Conocer a un computador como una herramienta en la solución de problemas mediante el uso de aplicaciones.
5.Conocer el enfoque metodológico en la solución de problemas algoritmicos en cuanto a identificar, definir y describir un problema planteado.
6.Analizar los datos de entrada y salida de un algoritmo
7.Identificar los elementos principales que constituyen a un algoritmo
8.Usar con propiedad la terminología para analizar y diseñar algoritmos
9.Aplicar el uso de algoritmos para resolver rutinas de la vida diaria.

Contenido de la Unidad 1:

1.Introducción a los algoritmos.
Introducción a la Metodología de la programación. Introducción al curso. El porqué de la Metodología. Ejemplo. (Subiendo escaleras). Importancia de su conocimiento- Decreto presidencial 3390
2.Propiedades de los algoritmos
Funcionalidad, Confiabilidad, Integro, Flexible, Portabilidad, Robusto

3.Etapas en el proceso del análisis y diseño de algoritmos
a.Entender: Introducción. Enunciado del ejercicio. Planteamiento
b.Analizar. Buscar una solución. Especificar una solución o algoritmo- Diseñar un algoritmo
c.Probar un algoritmo- Actualizar o modificar un algoritmo
d.Metodología en la resolucion de problemas enfoque clásico. Determinación y especificaciones del problema. Búsqueda de la solución. Algoritmos. Método de análisis descendentes. Otros métodos. Especificaciones de la solución. Representación textual secuencial. Representación mediante diagramas de flujo. Lenguaje natural. Lenguaje pseudos-formal. Lenguajes. Estructura de algoritmos. Construcciones básicas: secuencias. Condición. Repetición. Prueba de la solución. Métodos empíricos. Traza. Métodos analíticos. Elaboración del programa. Lenguaje de programación

4.Conceptos relacionados con el análisis y diseño de algoritmos: Dato, tipo de datos, funciones incorporadas a los algoritmos, Variable. Tipos de variable: Contador, acumulador, switch
a.Asignación, constante, Lenguaje, lenguaje natural, lenguaje seudoformal. Lenguaje formal,
b.Operadores y operandos, expresiones algebraicas, Semántica y sintaxis, codificación, traza, prueba, depuración. Concepto de variable. Definir una variable. Inicializar una variable. Características de las variables numéricas. Almacenar resultados en variables.

5.Los datos y sus operaciones básicas: Datos numéricos, lógicos y caracteres. Tipos de datos

6.Expresiones matemáticas: Tipos de operaciones: Aritméticas, Lógicas (or, and, not) y Relación
a.Uso de operadores y operandos, prioridades entre operadores
b.Expresiones algebraicas. Expresiones lógicas
7.Herramientas como ayuda para la especificación de algoritmos: Diagramas de flujo. Pseudocodigo
8.Diseño de algoritmos no numéricos relacionados con la vida real
a.Determinar el sueldo mensual de una trabajador. Obtener la VISA. Registrar una vivienda ante el registro público. Efectuar una transacción en comercio electrónico. Afiliarse al servicio de Internet
b.Comprar un computador
9.Tipos de Instrucciones que forman a todo algoritmo: Secuencia. Condición. Repetición
10.Funciones internas para el diseño de algoritmos: Raíz, parte entera, redondeo, modulo
11. Diseño de algoritmos numéricos usando la secuencia

1.Introducción y Fundamentos de los Lenguajes de Programación
2.El Desarrollo De Un Programa en Lenguaje C y en Lenguaje Java
3.Tipos de datos básicos. Caracteres (Tipo Char). Números Enteros (Tipo Int) . Números Enteros (Tipo Long). Números Reales (Tipo Float). Números Reales (Tipo Double) . Constantes
4.Expresiones y Operadores: Operadores Aritméticos. Operadores De Asignación . Operadores Incrementales . Operadores Relacionales . Operadores Lógicos
5.Conversión De Tipos. Funciones Matemáticas y de manejo de String : Función Strlen()
6.Función Strcat() . Funciones Strcmp() Strcomp() . Función Strcpy()
7.Formatos de Entrada y Salida de datos. Interfase con el sistema operativo. Función Printf()
8.Función Scanf().
9.Conversiones De Tipo Implícitas / Explícitas(Casting)


Unidad 2: Instrucciones Condicionales

Objetivos del Aprendizaje Unidad 2:

1) Validar los datos de entrada y salida de un algoritmo. Identificar los elementos principales que constituyen las instrucciones condicionales- Usar con propiedad las instrucciones condicionales
2) Aplicar el uso de algoritmos e instrucciones condicionales para resolver rutinas de la vida diaria.
3) Diseño de algoritmos numéricos usando instrucciones condicionales

Contenido de la Unidad 2:

1.Instrucciones de tipo condicional
a.Importancia del uso de instrucciones condicionales. Instrucción condicional simple
b.Instrucción condicional doble. Instrucción condicional de alternativa multiple
2.Diseño de algoritmos no numéricos relacionados con la vida real uso de condicional
3.Diseño de algoritmos numéricos usando la instrucción condicional
4.Operador Condicional: Sentencia If . Sentencia If ... Else . Sentencia If ... Else Múltiple
5.Sentencia Switch . Sentencias Switch() Anidadas. Sentencias If Anidadas
6.La Expresión Condicional

Unidad 3: Instrucciones Repetitivas

Objetivos del Aprendizaje Unidad 3:
1.Validar los datos de entrada y salida de un algoritmo- Solicitar claves de acceso
2.Identificar los elementos principales que constituyen las instrucciones repetitivas
3.Usar con propiedad las instrucciones repetitivas
4.Aplicar el uso de algoritmos e instrucciones repetitivas para resolver rutinas de la vida diaria.
5.Diseño de algoritmos numéricos usando instrucciones repetitivas

Contenido de la Unidad 3:

1.Instrucciones de tipo Repetición
a.Importancia del uso de instrucciones repetitivas. Instrucción repetitiva: Para
b.Instrucción repetitiva: Mientras. Instrucción repetitiva: Repetir-Hasta
c.Ciclos anidados
2.Diseño de algoritmos no numéricos relacionados con la vida real uso de instrucciones repetitivas
3.Diseño de algoritmos numéricos usando las instrucciones repetitivas.

Unidad 4: Estructura de datos Vectores, Funciones y/o Procedimientos

Objetivos del Aprendizaje Unidad 4:

1.Conocer las estructuras de datos e Identificar la importancia del uso de vectores o arreglos
2.Trabajar con arreglos o vectores como herramientas para diseño de algoritmos.
3.Conocer el almacenamiento de vectores en la memoria RAM del computador
4.Conocer la importancia de utilizar el uso de funciones en el diseño de algoritmos
5.Identificar las funciones internas y las funciones definidas por el programador
6.Identificar las variables locales y las variables globales
7.Paso de parametros en las funciones: Paso de parametro por valor y paso de parametro por nombre.

Contenido de la Unidad 4:

1)Fundamentos para el uso de vectores
a)Importancia del uso vectores, Características de los vectores, Declarar e inicializar un vector
b)Tipo de datos en vectores
2)Operaciones con vectores
a)Asignar datos, Sumar elementos, Lectura y escritura, Contenido y posición de los elementos de un vector
b)Buscar elementos en un vector, Actualizar elementos en un vector
3)Diseño de algoritmos aplicando funciones, Funciones internas de un Lenguaje de Programación
4)Funciones definidas por el programador, Variables locales y Variables Globales
5)Paso de Parametros por valor y por nombre o referencia
6)Estructuras de datos en Lenguaje C. La estructura Registro. Vectores y registros.
7)Funciones en lenguaje C: Paso de Parámetros Por Valor y referencia. Funciones De Tipo Void

Evaluación:

La evaluación del curso se basará en exámenes escritos, talleres e intervenciones en clase.
Cada prueba de evaluación escrita tendrá un valor de 25 puntos, los talleres tendrán un puntaje de 15% y cada intervención tendrá un valor de 1 punto.

Las evaluaciones programadas incluyen tanto el componente teórico como el componente práctico del curso.

Los exámenes escritos y las tareas se efectuarán en las siguientes fechas:

Primera Evaluación escrita: juPonderación 25 puntos. (temario unidad 1 y unidad 2),
Fecha: Semana 4 despúes de iniciar clases.

Segunda Evaluación Taller: Ponderación 15 puntos. (temario unidad 3 y las unidades anteriores),
Fecha: Semana 6 despúes de iniciar clases.
4/9/2008 a las 5 p.m.

Tercera Evaluación escrita: juPonderación 25 puntos. (temario unidad 4 y las unidades anteriores),
Fecha: Semana 8 despúes de iniciar clases.

Cuarta Evaluación: Taller: Projecto Práctico Ponderación 25 puntos. (temario todas las unidades)
Fecha: Semana 10 despúes de iniciar clases.

Quinta Evaluación escrita: juPonderación 10 puntos. (temario todas las unidades)
Fecha: Desde el inicio hasta el final del curso

Bibliografía

1)Joyanes Aguilar Luis “Metodología a la Programación”. MacGraw-Hill. 2000.
2)Joyanes Aguilar Luis “Resolución de Problemas”. MacGraw-Hill. 1998.
3)Alcalde Miguel “Metodología a la Programación”.
4)OVIEDO, Efraim: «Lógica para Programación». Ediciones ECOE, 2002.
5)Lopez, Leobardo: “Programación Estructurada, un enfoque algorítmico”, AlfaOmega, 2002.
6)El Lenguaje De Programación C. Brian W. Kernighan, Dennis M. Ritchie. Prentice-Hall Hispanoamericana, 1985. Isbn 968-880-024-4
7)American National Standard For Information Systems -- Programming Language C. American National Standards Institute. 1430 Broadway New York, Ny 10018
8)El Lenguaje De Programación C, Segunda Edición. Brian W. Kernighan, Dennis M. Ritchie.Prentice-Hall Hispanoamericana, 1991. Isbn 968-880-205-0
9)C. A Software Engineering Approach. Peter A Darnell, Philip E. Margolis. Springer-Verlag, 1991Isbn 3-540-97389-3

Modelos de Prueba para la evaluación Nro. 1

Evaluación Nro. 1. Ponderación 25% Cada pregunta 4 %
Contenido a evaluar Unidad 1: Fundamentos de la Programación
Objetivos a evaluar
1.Utilizar la metodologia para el diseño de algoritmos
2.Conocer los conceptos de variable, algoritmo y tipo de datos
3.Aplicar las operaciones de asignación, lectura y salida de datos
4.Utilizar las variables de tipo contador y acumulador
5.Describir los diferentes tipos de datos numericos y caracter
6.Evaluar expresiones aritmeticas
7.Identificar el uso de algunas funciones internas , como por ejemplo raiz cudrada y modulo.

Pregunta Número 1: Explique las semejanzas y diferencias entre estos dos algoritmos que se ilustran a continuación:
1) Comienzo
2) Declarar (a,b) Entero
3)Inicializar: a=0, b=0
4) Leer (a)
5) Leer (b)
6) a = a + b
7) b = a - b
8) a = a - b
9) Escribir ( a, b)
10) Fin

Otro ejemplo

1) Comienzo
2) Declarar (a,b,c) Entero
3)Inicializar: a=7, b=1, c=0
4) c = a
5) a = b
6) b = c
7) Escribir ( a, b)
8) Fin

Diseñe un algoritmo en lenguaje pseudocodigo el cual permita establecer lo siguiente:

Pregunta Nro 2:
Calcular el sueldo neto a pagar a un empleado, dada sus horas trabajadas y su tarifa por hora, asuma el siguiente contrato colectivo: Jornada laboral mensual de 169 horas, el pago de horas extras es de 150% adicional a la hora normal, se paga un bono de alimentacion de cinco unidades tributarias y un bono de alimentación de tres unidades tributarias y se deduce una unidad tributaria por el consumo de café durante el trabajo. Asuma costo de una unidad tributaria en Bs.80.

Pregunta Nro 3:
Dado el precio en Bs. De un producto y dada una tasa de porcentaje para incrementar su precio, determinar el nuevo precio y su equivalente en dólares y Euros. Asuma un dolar son Bs. 10 y un Euro son Bs. 12

Pregunta Nro 4:
Dados dos números enteros, calcular su producto notable, obtener su división y la raiz cuadrada de su cociente.

Pregunta Nro 5:
Dados cuatro (4) números enteros, determinar su sumatoria, su multiplicatoria y su media aritmética.

Pregunta Nro 6:
Determinar las raices de una ecuación de de segundo grado f(x): ax + bx + c = 0
Asuma el valor de a es 1, el valor de c es 2 y el valor de b es mayor a 6

Fin de la prueba Nro. 1


Ejemplos Propuestos correspondientes a la unidad 1

1)Mostrar un número entero, un número real, una letra y una palabra, asuma valores fijos.
2)Dado un número por teclado, una letra y una palabra mostrarla
3)Dados 2 números enteros y positivos sumarlos y mostrar el resultado
4)Dados 2 números enteros y positivos dividirlos y mostrar el resultado
5)Dados 5 números obtener la media aritmética
6)Dados 4 números sumarlos y multiplicarlos
7)Dados los valores a y b números enteros correspondiente a valores de un producto notable, obtener su resultado.
8)Sumar los números pares comprendidos entre 2 y 10
9)Sumar los números impares comprendidos entre 1 y 9
10)Dados 2 números obtener el resto de la división.
11)Dada una palabra en minúscula convertirla a mayúscula
12)Dado el radio de un círculo, calcular su área y longitud de la circunsferencia
13)Dada la base y la altura de un rectángulo obtener el área
14)Dada una medida convertir pulgadas a centíme­tros
15)Dado un monto convertir Dólares a Bolívares
16)Resolver una ecuación de Segundo Grado, dados los coeficientes a, b, y c como números enteros. Asuma a diferente de cero, c=1 y b > a
17)Dado el nombre y el número de horas trabajadas en un mes por un empleado, determinar su sueldo neto a cobrar
18)Cuál es el nuevo precio de un producto aumentado en un 40 %
19)Dada la edad de una persona determinar el año de su fecha de nacimiento
20)Si la entrada a un cine es de Bs. F. 20 y desean entrar 30 personas, determinar el monto total a cancelar por el grupo.
21)Dados 2 montos en variables a y b, intercambiar dichos valores
22)Si un saco de cemento en ferretería tiene un costo de Bs. F. 30, y el valor del iva es 9 %, determinar el costo total a pagar por la factura.
23)Determinar el tiempo transcurrido de una reunión que comenzó a las 8 con 40 y finalizo a las 11 con 55 minutos.
24)Si se presta un monto de Bs. F. 1000, a una tasa de interés del 30% mensual, indique el monto a pagar por concepto del préstamo.

Ejemplos Propuestos correspondientes a la unidad 2

1.Dados 2 números enteros determinar el mayor
2.Dados 2 números enteros determinar el menor
3.Dados 7 números indicar cuales son mayores a 5.
4.Dados 7 números indicar cuantos y cuales son mayores a 10.
5.Dado un numero determinar si es par
6.Dados 2 números determinar si uno de ellos es igual al doble del otro
7.Dada una letra determinar si es mayúscula
8.Dados dos números enteros determinar si son impares.
9.Dados 7 números sumar solo aquellos menores a 20 y número par.
10.Dados 3 números indicar si uno de ellos es la suma de los otros dos
11.Dada la edad de 6 alumnos , determinar el promedio de alumnos menores a 20 anos
12.Dada una palabra determinar cuantas vocales tiene
13.Dados 2 números verificar si uno es divisor de otro
14.Dados 7 números obtener la media aritmética
15.Dados 5 números indicar cuales son pares y cuales impares.
16.Dado un numero entero y positivo determinar si esta comprendido entre 5 y 20
17.Resolver una ecuación de Segundo Grado, dados los coeficientes a, b, y c como números enteros. Determine si es una recta, si la raíz tiene solución en los números complejos.
18.Validar un número dado comprendido dentro de un criterio de validación
19.Diseñar un Algoritmo para determinar el tiempo y pago de un automóvil cuando utiliza un estacionamiento cuyo pago es por hora.
20.Dado el nombre, el número de horas trabajadas y la tarifa por hora en un mes por un empleado, determinar su sueldo neto a cobrar. Supuestos: a) Total horas de trabajo normal 160. b) Pago de horas extras es el dhttp://lenguajedep1.blogspot.com/2012/02/logica-algoritmica-y-programacion.htmloble al costo de la hora normal. C) Pago del bono de transporte del 30 % solo si nunca falto en el mes. d) El bono de alimentación es del 40 % solo para aquellos que ganen por debajo de un sueldo básico y 6 unidades tributarias. E) El seguro social obligatorio es del 4% si sueldo básico es menor a 2000 B.s F. como sueldo referencial sino un monto único de Bs. F. 90 , Seguro de paro forzoso del 1% y ley de política habitacional del 2%.
21.Dada la fecha actual, determinar la fecha del día siguiente


Ejemplos resueltos

Ejemplo en Lc

#include
main()
{
int n1,n2;
n1=n2=0;
printf("deme un nro \n");
scanf("%d",&n1);
printf("deme otro nro ");
scanf("%d",&n2);
if (n1 > n2) {http://lenguajedep1.blogspot.com/2012/02/logica-algoritmica-y-programacion.html
printf("el mayor es %d \n",n1);
}
}
/* fin programa */

Ejemplo en Lc

#include
#define bono1 800

#define bono2 500

#define bono3 300

main()

{

char nombre[10];
int cedula[12];

int ht, mpago, extras, neto;

int he;
int bono;
int tarifa;
clrscr();
mpago=0; extras=0;
bono = 0;
neto = 0;

printf("Introduzca el nombre : ");
scanf("%s",nombre);

printf("\nIndique la cedula :" );
scanf("%d",&cedula);

printf("\nIndique las horas trabajadas :");
scanf("%d",&ht);

printf("\nIndique el costo de la hora :");
scanf("%d",&tarifa);

if (ht>40)
extras=(ht-40)*2*tarifa;

else
extras=0;

if (ht<41)
{
mpago=ht*tarifa;
}

else
{
mpago=(40*tarifa) + extras;
}

printf("\nEl valor de la variable mpago es: %d",mpago);

switch(mpago)

{

case 4000:

bono = bono+bono1;

break;

case 5000: bono = bono+bono2;

break;

case 6000: bono = bono+bono3;

break;

default:

bono = 0;

}

printf("\nEl costo del bono es: %d",bono);

neto = mpago + bono;

printf("\n El coste de lashoras extras es: %d",extras);

printf("\n El costo a pagar es es %d",mpago);

printf("\n El monto neto a cobrar es: %d",neto);

}


Ejemplo en Lc

/*programa Resuelve la ecuaci¢n de segundo grado
ax2 + bx + c = 0
*/

#include

#include

main()

{

float a,b,c,raiz,raiz2,a2,x1,x2,dis2,rr;

a=0; b=0; c=0;

printf("Introduzca el coeficiente a: ");

scanf("%f",&a);

printf("\nIntroduzca el coeficiente b: " );

scanf("%f",&b);

printf("\nIntroduzca el coeficiente c: ");

scanf("%f",&c);

if ((a == 0)
{

printf("la ecuacion es degenerada ");

goto finalito;

}

raiz = (b*b) - (4*a*c);

dis2 = sqrt(raiz);

x1 = (-b+dis2)/(2*a);

x2 = (-b-dis2)/(2*a);

printf("\n\nEl valor del discriminante : %f",raiz);

printf("\n\nEl valor de la raiz : %f",dis2);

printf("\n\nEl valor de la primera raiz es: %f",x1);

printf("\n\nEl valor de la segunda raiz es: %f",x2);

finalito:

}


Ejemplo en Lenguaje Java

public class nombre

{

public static void main(String args[])

{

System.out.println("Maribel Martinez");

}

}

Ejemplo

public class e5suma
{

public static void main(String args[]){


int a = 5;

int b = 10;

int c;

c = a + b;

System.out.println("El valor de la suma es " + c);

}

}
public class suma_reales

{

public static void main(String args[])

{


double a = 3.15; //primer número real

double b = 0.39; //segundo número real

double c;



// Calculo del valor

c = a + b;


// Muestra en pantalla del resultado

System.out.println("El resultado de " + a +" + " + b +" = " + c);

}

}


Ejemplo en Basic

' Z02SUMA.BAS

'DADOS DOS NUMEROS, SUMARLOS

NUM1 = 0

NUM2 = 0

SUMA = 0

CLS

INPUT "INTRODUZCA PRIMER VALOR: ", NUM1

INPUT "INTRODUZCA SEGUNDO VALOR: ", NUM2

SUMA = NUM1 + NUM2

PRINT "LA SUMA ES: ", SUMA

END

miércoles, 2 de marzo de 2011

Unidad II. Estructura de Control Condicional.

PROF. MIGUEL ANGEL GAVIDIA

EJEMPLOS CONDICIONALES DE ALGORITMOS: Unidad II.

Diseñar un algoritmo en lenguaje pseudocodigo y Lenguane C para los siguientes problemas: UNIDAD II

1. Dados 2 números enteros determinar el mayor y em menor.
2. Dados 7 números indicar cuales son mayores a 5.
3. Dados 7 números indicar cuantos y cuales son mayores a 10.
4. Dado un numero determinar si es par
5. Dados 2 números determinar si uno de ellos es igual al doble del otro
6. Dada una letra determinar si es mayúscula
7. Dados dos números enteros determinar si son impares.
8. Dados 7 números sumar solo aquellos menores a 20 y número par.
9. Dados 3 números indicar si uno de ellos es la suma de los otros dos
10. Dada la edad de 6 alumnos , determinar el promedio de alumnos menores a 20 anos
11. Dada una palabra determinar cuantas vocales tiene
12. Dados 2 números verificar si uno es divisor de otro
13. Dados 7 números obtener la media aritmética
14. Dados 5 números indicar cuales son pares y cuales impares.
15. Dado un numero entero y positivo determinar si esta comprendido entre 5 y 20
16. Resolver una ecuación de Segundo Grado, dados los coeficientes a, b, y c como números enteros. Determine si es una recta, si la raíz tiene solución en los números complejos.
17. Validar un número dado comprendido dentro de un criterio de validación
18. Dado el nombre de varias Ciudades de Venezuela y la cantidad de estudiantes activos. Determinar: a) Cuál es la Ciudad con mayor y menor población estudiantil. b) Cuántas Ciudades se encuentran por encima de la media

19. Diseñar un Algoritmo para determinar el tiempo y pago de un automóvil cuando utiliza un estacionamiento cuyo pago es por hora.

20. Dado el nombre, el número de horas trabajadas y la tarifa por hora en un mes por un empleado, determinar su sueldo neto a cobrar. Supuestos: a) Total horas de trabajo normal 160. b) Pago de horas extras es el doble al costo de la hora normal. C) Pago del bono de transporte del 30 % solo si nunca falto en el mes. d) El bono de alimentación es del 40 % solo para aquellos que ganen por debajo de un sueldo básico y 6 unidades tributarias. E) El seguro social obligatorio es del 4% si sueldo básico es menor a 2000 B.s F. como sueldo referencial sino un monto único de Bs. F. 90 , Seguro de paro forzoso del 1% y ley de política habitacional del 2%.

21. Dada la fecha actual, determinar la fecha del día siguiente

Ejemplos en Lenguaje C Unidad II. Condicionales.

Ejemplo:

if (expresion)
sentencia_1;
else
sentencia_2;

Ejemplo:
if (expresion_1)
sentencia_1;
else if (expresion_2)
sentencia_2;
else if (expresion_3)
sentencia_3;
else if (...) ...
[else
sentencia_n;

Ejemplo:
if (expresion_1)
sentencia_1;
else if (expresion_2) sentencia_2;
else if (expresion_3) sentencia_3;
else if (...) ...
[else sentencia_n;]

Ejemplo:
switch (expresion) {
case expresion_cte_1:
sentencia_1;
case expresion_cte_2:
sentencia_2; ...
case expresion_cte_n:
sentencia_n;
[default:
sentencia;] }

Ejemplo:
switch (expresion) {
case expresion_cte_1:
sentencia_1;
break;
case expresion_cte_2:
sentencia_2;
break;
default:
sentencia_3;
}

Ejemplo:
if (a >= b)
if (b != 0.0)
c = a/b;
else
c = 0.0;

Operadores de relación:

Igual que: ==
Menor que: <
Mayor que: >
Menor o igual que: <=

Mayor o igual que: >=
Distinto que: !=

expresion1 || expresion2 or
expresion1 && expresion2 and
x=(-b+sqrt((b*b)-(4*a*c)))/(2*a);


(2==1) || (-1==-1)
(2==2) && (3==-1)
((2==2) && (3==3)) || (4==0)
((6==6) || (8==0)) && ((5==5) && (3==2))


Ejemplo:

#include
main()
{
float a=0,b=0;
printf("\n deme un nro ");
scanf("%d",&a);
printf("\n deme un nro ");
scanf("%d",&b);
if (a>b)
{
printf("\n el nro. mayor es %f ",a);
}
if (a {
printf("\n el nro. mayor es %f ",b);
}
}

Ejemplo:

#include
main()
{
int a=0,c=0;
printf("\n deme un nro ");
scanf("%d",&a);
c= a % 2;
if (c==0)
{
printf("\n nro. es par %d ",a);
}
else
{
printf("\n nro. impar %d ",a);
}
}


Ejemplo:

#include
main()
{
int a=0,c=0;
printf("\n deme un nro ");
scanf("%d",&a);
if (a>=5) && (a<=20)
{
printf("\n el nro. es comprendido entre 5 y 20 ");
}
else
{
printf("\n el nro. esta fuera del rango 5 y 20 ");
}
}

sábado, 12 de febrero de 2011

Algunos ejemplos de la unidad 1: Secuencia

PROF. MIGUEL ANGEL GAVIDIA

CONCEPTOS BASICOS DE LOGICA Y PROGRAMACION DE ALGORITMOS

EJEMPLOS SECUENCIALES DE ALGORITMOS
Describir una Lógica, Diseñar un algoritmo en lenguaje pseudo-código y Editar un Programa en Lenguaje C para los siguientes problemas:
UNIDAD I
1. Mostrar un número entero fijo
2. Mostrar un número real fijo
3. Mostrar una letra fija
4. Mostrar una palabra fija
5. Mostrar un número entero fijo y un número real fijo
6. Mostrar un número entero dado por teclado
7. Mostrar un número real dado por teclado
8. Mostrar una letra dada por teclado
9. Mostrar una palabra dada por teclado
10. Mostrar un número entero dado por teclado y un número real dado por teclado
11. Dados 2 números enteros y positivos y dos números reales mostrarlos
12. Dadas 2 palabras y dos números reales mostrarlos
13. Dados 2 números enteros y positivos sumarlos y mostrar el resultado
14. Dados 2 números enteros y positivos restarlos y mostrar el resultado
15. Dados 2 números enteros y positivos multiplicarlos y mostrar el resultado
16. Dados 2 números enteros y positivos dividirlos y mostrar el resultado
17. Dados 4 números sumarlos y mostrar el resultado
18. Dados 4 números multiplicarlos y mostrar el resultado
19. Dados 5 números obtener la media aritmética
20. Dados 4 números sumarlos y multiplicarlos
21. Dados los valores a y b números enteros correspondiente a valores de un producto notable, obtener su resultado.
22. Sumar los números pares comprendidos entre 2 y 10
23. Sumar los números impares comprendidos entre 1 y 9
24. Dados 2 números obtener el resto de la división.
25. Dada una palabra en minúscula convertirla a mayúscula
26. Dado el radio de un círculo, calcular su área y longitud de la circunsferencia
27. Dada la base y la altura de un rectángulo obtener el área
28. Dada una medida convertir pulgadas a centíme¬tros
29. Dado un monto convertir Dólares a Bolívares
30. Resolver una ecuación de Segundo Grado, dados los coeficientes a, b, y c como números enteros.
31. Hallar la media de los números impares comprendidos entre dos limites dados
32. Dado el nombre y el número de horas trabajadas en un mes por un empleado, determinar su sueldo neto a cobrar
33. Suponiendo que Venezuela tiene 800 millas náuticas de mar territorial, cuantos kilómetros representa.
34. Cuál es el nuevo precio de un producto aumentado en un 40 %
35. Cuál es el nuevo precio de un producto rebajado en un 60 %
36. Dada la edad de una persona determinar el año de su fecha de nacimiento
37. Dado un monto en Bs.F determinar su monto en en Euros y Dólares USA
38. Si la entrada a un cine es de Bs. F. 20 y desean entrar 30 personas, determinar el monto total a cancelar por el grupo.
39. Dados 2 montos en variables a y b, intercambiar dichos valores
40. Si un saco de cemento en ferretería tiene un costo de Bs. F. 30, y el valor del iva es 12 %, determinar el costo total a pagar por la factura.
41. Determinar el tiempo transcurrido de una reunión que comenzó a las 8 con 40 y finalizo a las 11 con 55 minutos.
42. Dadas dos ciudades de Venezuela en las variables ciudad1 y ciudad2, intercambiar dichos valores
43. Generar un numero aleatorio
44. Generar 2 números aleatorios
45. Generar 3 números aleatorios comprendidos entre 1 y 6
46. Si se presta un monto de Bs. F. 1000, a una tasa de interés del 30% mensual, indique el monto a pagar por concepto del préstamo.

Contenido de la Unidad 1. Plan de Evaluación, Bibliografia y Ejemplos básicos

Asignatura: Algorítmica y Programación
Prof. Miguel Angel Gavidia
Febrero 2011 . Contenido Curricular de la Unidad 1

Introducción
Unidad I:
El Desarrollo De Un Programa
Funciones
Expresiones Y Operadores
Conversión De Tipos
Funciones De Entrada Y Salida Por Pantalla
Funciones Matemáticas
Identificadores en Lenguaje C
Nombre, Valor De Retorno Y Argumentos De Una Función
La Función Main( )
Palabras Clave Del C
Constantes
Operadores
Separadores
Comentarios
Características Generales del Lenguaje C
Compilador
Preprocesador
Librería Estándar
Ficheros
Lectura Y Escritura De Datos
Interfaz Con El Sistema Operativo
Tipos De Datos Fundamentales. Variables
Caracteres (Tipo Char)
Números Enteros (Tipo Int)
Números Enteros (Tipo Long)
Números Reales (Tipo Float)
Números Reales (Tipo Double)
Duración Y Visibilidad De Las Variables: Modos De Almacenamiento.
Conversiones De Tipo Implícitas Y Explícitas(Casting)
Constantes
Constantes Numéricas
Constantes Enteras.
Constantes De Punto Flotante
Constantes Carácter
Cadenas De Caracteres
Constantes De Tipo Enumeración
Cualificador Const
Operadores, Expresiones Y Sentencias
Operadores
Operadores Aritméticos
Operadores De Asignación
Operadores Incrementales
Operadores Relacionales
Operadores Lógicos
Otros Operadores
Expresiones
Expresiones Aritméticas
Expresiones Lógicas
Expresiones Generales
Reglas De Precedencia Y Asociatividad
Sentencias
Sentencias Simples
Resumen De Lenguaje Ansi C
Sentencia Vacía Ó Nula
Sentencias Compuestas O Bloques
Variables, Constantes, Operadores Y Expresiones
Archivos De Inclusión O Cabecera

Entrada y Salida De Consola
Para El Uso De Estas Funciones Es Necesario Incluir El Archivo "Stdio.H".
Función Getchar()
Función Getche()
Función Getch()
Función Putchar()
Función Gets()
Función Puts()
Función Cprintf()
Funcion Kbhit()
Función Fgets()
Función Fputs()



Plan de Evaluación:
Unidades a evaluar 5
Total 5 pruebas: Escritas o Talleres,
Ponderación: 20% cada Una. Total 100 %

Bibliografía

[1] El Lenguaje De Programación C.
Brian W. Kernighan, Dennis M. Ritchie.
Prentice-Hall Hispanoamericana, 1985.
Isbn 968-880-024-4

[2] American National Standard For Information Systems -- Programming Language C.
American National Standards Institute.
1430 Broadway. New York, Ny 10018

[3] El Lenguaje De Programación C, Segunda Edición.
Brian W. Kernighan, Dennis M. Ritchie.
Prentice-Hall Hispanoamericana, 1991.
Isbn 968-880-205-0

[4] C. A Software Engineering Approach.
Peter A Darnell, Philip E. Margolis.
Springer-Verlag, 1991
Isbn 3-540-97389-3
#include
main() /* buen dia */
{
int num1=4,num2,num3=6;
printf("El valor de num1 es %d",num1);
printf("\nEl valor de num3 es %d",num3);
num2=num1+num3;
printf("\nnum1 + num3 = %d",num2);
}

#include
#define pi 3.1416
#define escribe printf
main() /* Calcula el per¡metro */
{
int r;
escribe("Introduce el radio: ");
scanf("%d",&r);
escribe("El per¡metro es: %f",2*pi*r);
}

#include
int a;
main() /* Muestra dos valores */
{
int b=4;
printf("b es local y vale %d",b);
a=5;
printf("\na es global y vale %d",a);
}

#include
main() /* Realiza varias operaciones */
{
int a=1,b=2,c=3,r;
r=a+b;
printf("%d + %d = %d\n",a,b,r);
r=c-a;
printf("%d - %d = %d\n",c,a,r);
b++;
printf("b + 1 = %d",b);
}

#include
main() /* Modificadores 2 */
{
char cad[ ]="El valor de";
char cad2;
int a=25986;
long int b=1976524;
float c=9.57645;
printf("%s a es %9d\n",cad,a);
printf("%s b es %ld\n",cad,b);
printf("%s c es %.3f",cad,c);
cad2=getchar();
}

#include
main() /* Solicita dos datos */
{
char nombre[10];
int edad;
printf("Introduce tu nombre: ");
scanf("%s",nombre);
printf("Introduce tu edad: ");
scanf("%d",&edad);
}

#include #include
#include
main()
{
float a,b,c,raiz,raiz2,a2,x1,x2,dis2,rr;
a=0; b=0; c=0;
printf("Introduzca el coeficiente a: ");
scanf("%f",&a);
printf("\nIntroduzca el coeficiente b: " );
scanf("%f",&b);
printf("\nIntroduzca el coeficiente c: ");
scanf("%f",&c);
raiz = (b*b) - (4*a*c);
dis2 = sqrt(raiz);
x1 = (-b+dis2)/(2*a);
x2 = (-b-dis2)/(2*a);
printf("\n\nEl valor del discriminante : %f",raiz);
printf("\n\nEl valor de la raiz : %f",dis2);
printf("\n\nEl valor de la primera raiz es: %f",x1);
printf("\n\nEl valor de la segunda raiz es: %f",x2);
} /* fin */