curso de desarrollo de software

43
CASA DE LA CULTURA “JUVENAL RAVELO” CARIPITO – ESTADO – MONAGAS CURSO DE DESARROLLO DE SOFTWARE INSTRUCTOR T.S.U. EN INFORMATICA ANGEL CHIRINOS

Upload: vekys

Post on 01-Jul-2015

440 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curso de desarrollo de software

CASA DE LA CULTURA “JUVENAL RAVELO”

CARIPITO – ESTADO – MONAGAS

CURSO

DE

DESARROLLO

DE SOFTWARE

INSTRUCTOR

T.S.U. EN INFORMATICA

ANGEL CHIRINOS

Caripito, julio del 2012

Page 2: Curso de desarrollo de software

ALGORITMICA

Y

LENGUAJE DE PROGRAMACIÓ

N

C++

Page 3: Curso de desarrollo de software

TEORIA DE ALGORITMICA

Que son Algoritmos:

El concepto de algorítmica fue desarrollado por el matemático persa ABU JAFAR MOHAMMED IBN MUSA AL KHWARIZMI. Se puede decir que un algoritmo es una fórmula para resolver un problema. Es un conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden, resuelven el problema planteado.

Definiciones básicas:

Definiciones básicas que se usan en el entorno de un programa de computadora.

Lenguaje maquina:

Es un lenguaje que puede ser integrado directamente por los circuitos internos de la computadora porque esta basado en instrucciones compuestas por secuencias de ceros (0) y unos (1).

Lenguaje de bajo nivel:

Es un lenguaje que usa el programador para codificar sentencias simbólicas que un compilador (programa traductor) puede convertir una a una en instrucciones de lenguaje de maquina. Hace uso de abreviaturas, para representar las instrucciones de maquina.

Lenguaje de alto nivel:

Es un lenguaje de programación orientado al problema o procedimientos, Ejemplo de estos lenguajes son COBOL, FORTRAN, C, C++, JAVA, PHP, etc.

Compilar:

Page 4: Curso de desarrollo de software

Es traducir un programa escrito en un lenguaje de alto nivel a un programa en lenguaje maquina, que es la forma en que la computadora puede ejecutar directamente las acciones o instrucciones.

El proceso de compilación se descompone en dos pasos: Compilar: las instrucciones de alto nivel para producir lo que se denomina el

código objeto. Enlazar: que es tomar el código objeto generado y cualquier otro código objeto que

sea requerido, que haya sido previamente generado, produciendo así el programa ejecutable o código ejecutable.

Crear un programa de computadora:

Para crear un programa de computadora, generalmente el programador debe partir de un algoritmo y escribir las sentencia (instrucciones) del código fuente de un editor. Un editor es un programa utilitario que permite la edición de textos y programas.

Datos tipos de datos y funciones incorporadas:

Un programa de computadora, para que pueda ser ejecutado debe ser cargado en memoria. La unida de procesamiento del ordenador solo puede trabajar con los datos e instrucciones que residen en la memoria.

Dato:

Un dato es cualquier objeto o elemento de información que se usa a lo largo de diversas operaciones dentro de un programa o fragmento de éste. Los datos son los elementos sobre los que se opera cuando se efectúa una operación en el computador, es decir, cuando se ejecuta una instrucción en un programa.

Un dato tiene un nombre que lo identifica y distingue de los demás elementos del programa. Dicho nombre no es más que otra forma de referenciar la dirección de memoria que ocupa el dato.

Tipo de dato:

Page 5: Curso de desarrollo de software

Es una definición que agrupa los valores validos para un conjunto de datos y las operaciones que sobre ellos se pueden realizar.

Cada tipo de dato tiene una representación determinada en el computador. Esto tiene que ver con el tamaño y la cantidad de memoria que el computador reserva para almacenar los datos de un tipo especifico cualquiera.

Los tipos de datos pueden ser:

Tipo de dato Primitivo: Tipos de datos básicos predefinidos en el sistema. Tipo de datos definidos por el usuario: Agregados por el programador

Los tipos de datos primitivos mas importantes son: Numéricos, Lógicos y carácter. A continuación se definen cada uno de ellos.

Numéricos: Pueden ser a su vez

Entero: Subconjunto finito del conjunto matemático de los números enteros. No tiene parte decimal. El rango de los valores depende del tamaño que se les asigne en la memoria para su representación, este tamaño es definido por el lenguaje de programación, usualmente 2 bytes.

Real: Subconjunto finito del conjunto matemático de los números reales. Llevan signo y parte decimal, se almacenan usualmente en 4 bytes o más (dependiendo del lenguaje de programación que se utilice).

Lógico o booleanos: Es aquel que solo puede tomar uno de los valores, verdadero o falso (1 ó 0).

Carácter: Abarca el conjunto finito y ordenado de caracteres que reconoce la computadora: letras, dígitos, caracteres especiales y ASCLL. Generalmente, sus valores se representan dentro de un par de comillas simples, aunque también se puede suministrar su código numérico o posición dentro del conjunto de caracteres válidos que se esté usando.

Tipo cadena o string: Conjunto de caracteres, que usualmente se presentan entre los símbolos de comillas dobles (“”).

Variables

Son instancias de un tipo de dato determinado, cuyo valor puede cambiar durante la ejecución del programa o corrida del programa.

Page 6: Curso de desarrollo de software

Antes de usar una variable, el programador debe definirla o declara, indicando su nombre y su tipo de dato al que pertenece.

El identificador de una variable será un conjunto de caracteres que tendrán ciertas restricciones, según los defina el lenguaje de programación. Por lo general, el identificador de una variable tiene que empezar por una letra, el tamaño y caracteres permitidos como parte del identificador dependen del lenguaje de programación.

Variable Acumuladoras:

Son aquellas variables que el programador usa para ir sumando valores a lo largo de la ejecución del programa, se denominan acumuladores y es recomendable inicializarlas con un valor conveniente al uso que posteriormente se les de.

Variables Contadoras:

Se llaman así a las variables que el programador para ir contando a lo largo de la ejecución del programa.

Constantes:

Son instancias de un tipo de dato determinado, que tiene un valor fijo asignado por el programador en el momento en que la define, Este valor no puede ser modificado durante la ejecución del programa o corrida del algoritmo.

Las constantes pueden llevar asociados un nombre o no, si no lo llevan, se llaman literales. El programador especifica su valor al definir la constante, que ya no puede cambiar a lo largo de la ejecución del programa. En cuanto al tipo de dato, hay que colocarlo o no dependiendo del lenguaje de programación

Ejemplo: nombre=josenum=2

Expresiones: Tipos y Operadores

Page 7: Curso de desarrollo de software

Una Expresión es una combinación de constantes, variables, signos de operación, paréntesis y nombres especiales (nombres de funciones estándar). De la evaluación de una expresión resulta un único valor o resultado.

Una Expresión tiene asociado un tipo de dato que corresponde con el tipo del valor que devuelve la expresión cuando se evalúa. En tal sentido, se tienen expresiones numéricas y lógicas.

Expresiones Numéricas: Operadores Aritméticos.

Es una combinación de variables y constantes numéricas con operadores aritméticos, que al evaluarla devuelve un valor numérico.

Los operadores aritméticos comúnmente usados son: +, -, *, /, los cuales equivalen a las operaciones suma, resta, multiplicación y división respectivamente.

Otras operaciones aritméticas soportadas en algunos lenguajes de programación son:

Operador Resto o Modulo (%): Devuelve el resto de una división entera.

Expresiones lógicas: Operadores relacionales y lógicos:

Una expresión lógica es aquella que solo puede devolver uno de dos valores: Verdadero o Falso. Los operadores que pueden aparecer en una expresión lógica son de dos tipos: lógicos o relacionales. Los operadores lógicos solo trabajan sobre expresiones o datos que retornan valores booleanos. Los operadores relacionales trabajan con expresiones numéricas para realizar comparaciones que retornan un valor booleano. Es común tener expresiones que combinan tanto los operadores lógicos como relacionales.

Los operadores relacionales mas usados son: < Menor que > Mayor que= Igual < > Diferente<= Menor o igual que>= Mayor o igual que

Page 8: Curso de desarrollo de software

Los operadores lógicos más utilizados son:

Y (and, &&)O (or, ||)No (not, !)

Los Símbolos: Flechas o líneas de Flujo: Sirven para conectar los Símbolos del diagrama.

Símbolo de Proceso: Indica la acción que tiene queRealizar la computadora.

Entrada/salida: Representa las acciones de entrada y salida. Dentro se colocan las acciones de lectura yEscritura.

Condición: En el rombo se coloca una condición, al encontrar este signo, se evalúa la condición que hay dentro. Según la condición sea verdadera o falsa, se toma un camino u otro, sirve para representar estructuras selectivas y repetitivas.

Principio y fin: Dentro del algoritmo va la palabra inicio o fin del algoritmo.

Page 9: Curso de desarrollo de software

Conectores: Sirven cuando un flujograma no cabe en una columna de la hoja y hay que seguir en otro columna y otro donde empieza. Hay dos tipos:

1.) Si es en la misma hoja2.) Si es en una hoja distinta

Pantalla: Cuando una salida es por pantalla.Teclado: También se usa para representar una entrada por teclado.

Impresora:

Pseudocódigo :

Es un lenguaje de documentación de programas similar al español o a las ingles. No necesita seguir ninguna regla específica, como por ejemplo ser requerido por los programas que van a hacer traducidos y compilados.

Ejemplo de palabras claves en pseudocódigo:

Inicio y Fin: Por donde empieza y termina el algoritmo.Si: <Condición> Entonces: <Acciones>Sino: <Acciones>Mientras: <Condición> HacerRepetir / Hasta: <Condición>Desde / HastaSegún sea: (Para evaluar opciones múltiples).

La estructura recomendada para los algoritmos en pseudocódigo es:

Algoritmo <Nombre algoritmo>Var<nombre>: <tipo>Inicio<Instrucciones>

Page 10: Curso de desarrollo de software

Fin

Programación Estructurada:

Estructuras Secuenciales:

Una instrucción sigue a otra en secuencia, es decir, la salida de una instrucción es la entrada de la siguiente.

FLUJOGRAMA PSEUDOCODIGO

Leer num

num=num*2

Escribir num

Estructuras Selectivas:

En este tipo de estructura se evalúa una condición y en función del resultado lógico (verdadero o falso) u otro resultado se ejecuta un conjunto de instrucciones. Son también denominadas estructuras de control de flujo, estructuras condicionales o de toma de decisiones.

Estructura selectiva Simple:Es la estructura condicional elemental y básica

FLUJOGRAMA PSEUDOCODIGO

no

si

Si <condición>

Entonces

<Acciones>

Fin Si

Leer num

num=num*2

Escribir num

C

Acciones

Page 11: Curso de desarrollo de software

Estructura Selectiva Doble:Es una estructura condicional que evalúa una condición dada. Si es verdad, ejecutan el conjunto de acciones asociadas a la parte del ‘si’, si es falso, se ejecutan el conjunto de acciones asociadas a la parte del ‘no’.

FLUJOGRAMA PSEUDOCODIGO

Si <condición>

Entonces

<Acciones>

Sino

<Acciones>

Fin Si

Estructura selectiva de alternativa múltiple:

Se evalúa una condición o expresión que puede tomar ‘n’ valores distintos. Según sea el valor de la expresión en un instante dado, se ejecutan las acciones correspondientes a ese valor.

Las acciones asociadas a la opción ‘otro’: se ejecutan cuando la acción no toma ninguna de los valores que aparecen antes. En algunos lenguajes de programación se le conoce como alternativa ’else’ o ‘default’.

FLUJOGRAMA PSEUDOCODIGO

cond

Acciones

Acciones

Page 12: Curso de desarrollo de software

Según sea <expresión> <valor>:<acciones> <valor>:<acciones> <valor>:<acciones> [<otro>:<acciones>]Fin según

Estructuras Repetitivas o de ciclo:

Representan un bucle o conjunto de instrucciones que se repiten un número finito de veces. Cada repetición del bucle se llama una iteración. Todo bucle tiene asociada una condición, que es la que va a determinar si debe ejecutarse el bucle y hasta cuando.

Existen tres tipos básicos de estructuras repetitivas:

Estructura repetitiva Mientras-Hacer:En la estructura repetitiva mientras-hacer, la condición de entrada al ciclo se evalúa antes de realizar cualquier iteración del bucle. Si la condición no se cumple, el ciclo no se ejecuta y el programa continúa con la secuencia de acciones siguientes.

FLUJOGRAMA PSEUDOCODIGO

no

si

Mientras <condición>

Hacer

<acciones>

Fin mientras

Expresión

Condición

Acciones

Page 13: Curso de desarrollo de software

Estructura repetitiva Repetir-Hasta:En la estructura repetitiva Repetir-Hasta, la condición del ciclo se evalúa después de realizar la primera iteración del bucle. Este bucle se repite mientras la condición evaluada al final se mantenga falsa. Al cumplirse la condición y ser verdadera, se sale del bucle.

FLUJOGRAMA PSEUDOCODIGO

no

si

Repetir

<Acciones>

Hasta <condición>

Estructura Repetitiva desde:Se usa cuando se sabe el número exacto de veces que se va a ejecutar el bucle. El bucle lleva asociado una variable que se denomina variable de índice, a la que se le asigna un valor inicial y se establece cual va a ser su valor final.

FLUJOGRAMA PSEUDOCODIGO

Desde <v=vi> hasta <vf>

<acciones>

Fin desde

Acciones

condicion

v = vi

V<=vf

v=v+1

Page 14: Curso de desarrollo de software

si

no

TEORIA DE LENGUAJE C

Lenguaje C:

El lenguaje de programación C fue desarrollado por Brian Kemighan y Dennis Ritchie en los Laboratorios Bell en el año 1972. Fue liberado en un momento cuando se desarrollaban cientos de lenguaje de programación.

Variables y sentencias:

Las variables son nombres que se les dan a las localidades en la memoria principal donde un elemento de dato puede almacenarse.

La sintaxis del lenguaje de programación C impone algunas reglas en la construcción de los nombres de variable. Estos se listan a continuación.

1.) Los nombres de variables siempre deben empezar con una letra. Esto incluye al carácter “_”.

2.) Un nombre de variable puede estar formado por una secuencia de letras del alfabeto y/o dígitos de 0 al 9 y/o el carácter “_” (subrayado).

3.) No se permiten comas ni espacios en blanco en un nombre de variable.4.) No se permite usar como nombres de variables, palabras reservadas por el

lenguaje como (int, enum, short, char, float, etc).

En el caso, de querer almacenar un entero, se declara como sigue.

Acciones

Page 15: Curso de desarrollo de software

Ejemplo: int num;

El uso de los caracteres de cadena de formato:

Cadena de Formato Propósito%d int (notación decimal con signo)%i int (notación decimal con signo, octal o hexadecimal).%o int (natación decimal sin signo).%x, %X int (notación hexadecimal sin signo)%u int (notación decimal sin signo).%c char%f, %e, %E, %g, %G doublé%s Cadena de caracteres

El uso de secuencias de caracteres de escape:

Secuencia de escape Propósito\a Carácter de alerta (timbre)\b Retroceso (Backspace)\f Formafeed\n Nueva línea\r Retorno de carro\t Tabulador Horizontal\v Tabulador vertical\\ Diagonal inversa\? Signo de interrogación\’ Comilla simple\” Comilla doble\ooo Numero octal\xhh Numero hexadecimal

Aceptar entradas del usuario:

Lo que realmente se necesita es tener la capacidad de conseguir que el usuario proporcione los elementos de datos que se requieren como una entrada. Esto puede hacerse a través de la función scanf de C.

Existen muchas funciones incorporadas como la función printf, que están disponibles a los usuarios programadores de lenguaje C a través de la librería estándar de E/S.

Librería estándar. #include <stdio.h>

Page 16: Curso de desarrollo de software

Esta sentencia es esencial en el momento de compilación del programa. Una de las funciones que pertenece a esta librería es printf.

De las funciones propias de la librería stdio.h existe una que permite obtener la entrada de un usuario, esta es la función scanf. Esta función se puede usar de la siguiente manera.

Ejemplo:scanf (“%d”, &num);

Cuando esta función se ejecuta, se espera que el usuario ingrese un entero válido. Una vez que el valor se obtiene del usuario, éste se almacena en la variable entera llamada num.

Tipos de datos básicos en C:

Tipo de dato Descripción Requerimientos típicos de memoria

Int Entero 2 bytesFloat Numero de punto flotante 4 bytesDoublé Numero de punto flotante

o de doble precisión8 bytes

Char Carácter simple 1 byte

Operadores Aritméticos:

+, -, *, / y %.

Expresiones y operadores lógicos y relacionales:

Las expresiones relacionales son aquellas que se forman con una combinación de identificadores, constates y expresiones aritméticas.

Operadores relacionales:

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

Operadores de igualdad:

Page 17: Curso de desarrollo de software

== Igual a != No igual a

Expresiones lógicas:

&& Y (and)| | O (or)! NO (NOT)

Estructuras de control, de decisión:

El control, de decisión abarca desde verificar condiciones muy simples hasta estructuras muy complejas.

Construcción if – else:

La forma general de la sentencia if – else se da a continuación.

if (condición){

Sentencia1;

….

Sentencia2;

}

else{

sentencia1;

Sentencian;

}

La estructura switch … case:

switch (variable){case valor1: sentencias;

break;

Page 18: Curso de desarrollo de software

case valor2: sentencias;break;

…case valorn: sentencias;

break;default: sentencias;

break;}

Estructuras de control Repetitivas:

Son estructuras que permiten repetir una porción del algoritmo que requiere repetición.

Construcción Iterativa while:

La variable de control del bucle se inicializa.while (prueba la condición usando la variable de control) {

Ejecutar sentencias;..Modificar la variable de control del bucle.}

Construcción Iterativa for:

for (inicialización del contador; condición de prueba; actualización del contador) {

Ejecutar todas las sentencias dentro de las llaves;

}

for (k = 1; k <= N; k++)

Inicialización Condición Incremento

Page 19: Curso de desarrollo de software

Estructura de la sentencia do - while:

do {

sentencia 1;sentencia2;

} while (la condición es verdadera);

Practica de ejercicios

Estructuras secuenciales

1.) Determine el promedio de 3 números reales2.) Dada las horas trabajadas de una persona y la tarifa de pago por hora, calcular su

salario e imprimirlo.3.) Dada la base y altura de un rectángulo, calcular el área y el perímetro del

mismo, Las formulas a utilizar son: área= base * altura y perímetro = 2 * (base + altura).

4.) Obtener la edad de una persona en meses, si se ingresa su edad en años y meses. Por ejemplo, si se ingresa 3 años 4 meses debe mostrar 40 meses.

5.) Dada una cantidad de hombres y de mujeres, calcular el porcentaje de cada género dentro del grupo.

6.) Hacer un algoritmo que permita ingresar dos números enteros y calcule las 4 operaciones básicas (suma, resta, multiplicación y división). Además calcular la potencia. El algoritmo debe mostrar los números y los resultados.

7.) Dado un tiempo en minutos, calcular los días, horas y minutos que le corresponden.

8.) Un instructor prepara tres modelos de exámenes para tres salones en un curso de programación. El instructor sabe que tarda 5 min en el modelo del salón A, 8 min en el modelo del salón B y 6 min en el modelo del salón C. Dada las cantidades de estudiantes en cada salón, ¿Cuántas horas y minutos tardara el instructor en revisar los exámenes de todos los salones.

9.) Calculando tres opciones sobre cuadrados y círculos y al final que muestre la suma de los dos resultados.

10.) Convertir una velocidad expresada en km/h a m/s. Si 1km=1000 m y 1h=3600 seg..

Page 20: Curso de desarrollo de software

Estructuras de control de decisión y selectivas:

1.) Dados sus lados (a, b, c), determinar si un triangulo es: equilátero, isósceles o escaleno.

2.) A un trabajador le pagan según sus horas y una tarifa de pago por horas. Si la cantidad de horas es mayor a 40 horas, entonces la tarifa se incrementa en un 50% para las horas extras. Calcular el salario del trabajador dadas las horas trabajadas y la tarifa.

3.) A un trabajador le descuentan de su sueldo el 10% si su sueldo es mayor o igual a 100, por encima de 1000 y hasta 2000 el 5% del adicional y por encima de 2000 el 3% del adicional. Calcular el descuento y sueldo neto que recibe el trabajador dado su sueldo.

4.) Dado un monto, calcular el descuento considerando que por encima de 100 el descuento es el 10% y por debajo de 100 el descuento es el 2%.

5.) Elabore un programa que permita emitir la factura correspondiente a una compra de un artículo determinado, del que se adquieren una o varias unidades. El IVA es del 15% y si el monto bruto (precio veta más IVA) es mayor de 50 pesetas se debe realizar un descuento del 5% sobre el monto total.

6.) Una aseguradora de vehículos tiene los siguientes porcentajes de prima dependiendo de los años de antigüedad del vehículo. Los vehículos de 1 año pagan el 5% de su valor, de 2 años pagan el 8% de su valor, de tres años el 10%, de 4 años el 12% y de 5 años o mas pagan el 15%. Elabore un programa que solicite el valor del vehículo y los años de antigüedad y muestre por pantalla el valor de la prima.

7.) Elabore un programa que imprima el mayor de dos números enteros introducidos por el usuario.

8.) Dado un número entero positivo determine si es par o no.9.) Dado un número del 1 al 7 indique a que día de la semana corresponde.10.) Construya un programa tal, que dado como dato el sueldo de un trabajador,

calcule su aumento según el siguiente criterio.

sueldo < 1000 el aumento es de 25% sueldo >= 1000 y sueldo <= 1500 el aumento es de 21% sueldo > 1500 el aumento es de 18%

11.) Dada la fecha en el rango de 01/01/1980 al 31/12/2010, determine si es correcta o incorrecta.

Por ejemplo:

Page 21: Curso de desarrollo de software

Día: 21Mes: 09Año: 2006

¡Fecha correcta!Día: 09Mes: 2006Año: 2006¡Fecha incorrecta!

No todos los meses tienen 31 días.

12.) Escribir un programa que tome la fecha actual y la fecha de nacimiento de una persona en la forma día y años (enteros) como entrada. Cada entero estará separado por ‘/’, el programa debe validar ambas fechas y determinar la edad de la persona en años.

13.) Suponga que usted esta encargado del centro de computación de la empresa “EL BIEN”, y se le ha pedido monto que adeuda el cliente mas moroso que tiene la empresa, así como el interés a pagar en el presente mes, sabiendo que: si el atraso es de 30 a 60 días inclusive, el interés a cobrar es de 2% inclusive, si el atraso esta entre 60 a 90 días inclusive, el interés a cobrar será del 5 %, si el atraso es de 91 a 120 días inclusive, el interés a cobrar será de 7% y si el atraso es mayor a 120 días el interés a cobrar será de 15%. Escribir un programa en C que calcule el monto a pagar por el cliente de acuerdo a los datos suministrados, donde el programa toma como entrada el monto original de la deuda y la cantidad de días del atraso.

14.) La empresa “LA MALLA” es productora de dos tipos de mallas: mallas planas mallas en rollo. La alta gerencia requiere controlar las ventas por día según las siguientes políticas: si el comprador tiene más de 5 años adquiriendo malla en rollo tendrá un descuento del 8% en esta malla. Si es comprador de malla plana por más de 6 años tendrá un descuento del 6% en esa malla. El costo de la malla plana es de 400 dólares por metro y de la malla de rollo es de 250 dólares por metro. Elabore un programa en C que capture los metros a comprar por tipo de malla para un cliente, además del tiempo en años que como comprador ha adquirido los tipos de mallas existentes. La salida del programa será la cantidad total de descuento obtenida por el cliente. (Hacer el programa considerando un solo cliente).

15.) En una pizzería se tienen 3 tamaños de pizzas; grande, mediana y pequeña de precios 20 bsf, 30 bsf y 80 bsf respectivamente todas con 2 ingredientes, además si un cliente desea ingredientes extras debe ser calculado adicionalmente al precio de la pizza; si desea agregar ingredientes extras se debe cancelar lo siguiente.

Page 22: Curso de desarrollo de software

*Champiñones = 5 bsf*Anchoas = 4 bsf*Jamón = 6 bsf

Las bebidas si el cliente las desea tienen cada una un valor de 8 bsf. Finalmente se debe cancelar el 10% correspondiente al servicio de mesa y el 15% por concepto de IVA. Se desea realizar un programa que emita la factura para tal cliente.

16.) Escribir un programa que, dado el número del mes y la información de si el año es bisiesto, imprima por pantalla el número de días del mes.

17.) Escribir un programa que, pida la fecha de nacimiento de una persona e imprima por pantalla su signo zodiacal.

18.) Escribir un programa que pida un numero entero y determine si es múltiplo de 2 y de 5.

19.) El costo de las llamadas telefónicas internacionales, depende de la zona geográfica en la que se encuentre el país destino, y del número de minutos hablados. En la siguiente tabla se presenta el costo por minuto, por zona. A cada zona se le ha asociado una clave.

CLAVE ZONA PRECIO12 América del norte 215 América Central 2.218 América del sur 4.519 Europa 3.523 Asia 625 África 629 Oceanía 5

Construya un programa que le permita calcular e imprimir el costo total de una llamada.

Datos: clave, nummin

Donde: clave es una variable entera que representa la clave de la zona geográfica a la que se llamo, nummin es una variable entera. Que expresa la duración (en minutos de la llamada).

Estructuras Repetitivas:

1.) Construya un algoritmo que reciba como entrada varios montos de depósito y despliegue la suma de ellos. Considere que un valor negativo, significa que no hay más datos y no debe ser considerado como dato valido.

Page 23: Curso de desarrollo de software

2.) Construya un algoritmo que reciba como entrada una secuencia de valores numéricos y genere como salida la suma de los valores pares y la multiplicación de los impares. Considere que un valor negativo, significa que no hay mas datos y no debe ser considerado como dato valido.

3.) Dado un número entero determinar la suma de sus dígitos.4.) Dado N notas de un estudiante calcular:

a.) Cuantas notas tiene desaprobadas.b.) Cuantas aprobadasc.) El promedio de notasd.) El promedio de notas aprobadas y desaprobadas

5.) Solicite 10 números enteros al usuario e imprima su promedio.6.) Realizar un programa en lenguaje C que sume los números impares

comprendidos del 1 al 1000.7.) La empresa GAME tiene 50 empleados. Por cada uno se lee el nombre,

departamento y sueldo. Hacer un programa en lenguaje C que lea esa información e imprima el nombre, sueldo actual y sueldo nuevo de acuerdo a lo siguiente.

Salario Actual % AumentoMenor o igual a 900 20Entre 900 y 1300 inclusive 10Entre 1300 y 1800 inclusive 05Mayor a 1800 00

8.) Escribir un programa que tome como entrada un numero entero positivo N, y formar dos números como sigue:

X se forma con los dígitos que sean números pares en el mismo orden de izquierda a derecha, tal como son presentados.

Y se forma con los dígitos que sean números impares en el mismo orden de izquierda a derecha, tal como son presentados.9.) Se esta realizando un proceso de elecciones entre dos candidatos A y B, al

votante se le da una tarjeta donde debe colocar 1 si su candidato es A o 2 si su candidato es B. Se considera como voto nulo todas aquellas tarjetas que contengan un número diferente a los previamente señalados. Determinar cuantos votos obtuvo el candidato A, cuentos obtuvo B, cuantos fueron nulos y cual fue el candidato ganador de un total de n votantes. Considerar que puede haber un empate entre ambas opciones electorales.

10.) Buscando el múltiplo de un numero de 10 en 10:11.) Realizar un programa de calculadora básica que repita operaciones

aritméticas cuando lo desee.

Page 24: Curso de desarrollo de software

12.) Elaborar el control de una empresa: Una compañía productora de aceite, ha decidido mecanizar el control de las ventas de sus empleados. La compañía produce tres tipos de aceites: Aceite tipo 1 (de primera) cuyo valor por litro es 25 dólares, aceite tipo 2 (de segunda) con precio de 20 dólares por litro y aceite tipo 3 (de tercera) con costo de 15 dólares por litro. Se desea realizar un reporte que incluya: código vendedor, por tipo de aceite cantidad vendida, monto en dólares vendidos por vendedor.

13.) Determinar de un grupo de personas cuales son de sexo femenino y cuales son de sexo masculino:

14.) Los ‘n’ superamos del ‘salón de la justicia’ lograron obtener un aumento de sueldo en el ultimo mes. Este aumento de sueldo se determino por niveles, de acuerdo a la siguiente tabla.

Nivel Sueldo % AumentoA 0 – 10000 8B 10001 – 30000| 6C 30001 – 60000 4D > 60000 2

Construya un programa que reciba como entrada el sueldo actual de cada uno de los trabajadores y calcule el nuevo sueldo. Además, el algoritmo deberá indicar cuanto mas gasta la empresa por concepto de sueldos, después del aumento.

15.) Se requiere elaborar en C que calcule el costo del vehículo en el concesionario MMCR para 3 clientes (debe mostrarse por pantalla el costo de cada vehículo), en estas fechas en concesionario ofrece a esos 3 clientes descuentos fabulosos en el costo del vehículo, si los clientes deciden instalar o adquirir en el concesionario MMRC: sistema de seguridad, papel ahumado, compra de la póliza de seguro y por cada accesorios recibirán los siguientes descuentos sobre el costo del vehículo.

0,15% para sistemas de seguridad (debe ser >1, sin importar cantidad)

1 % para el seguro.

0,1 % papel ahumado (todo el vehículo, sino no aplica)

0,01 % por cada accesorio (totalDesAcc=cantAcc * 0,01)

Monto por cada cliente:

Siendo el monto inicial del vehículo 47000

Page 25: Curso de desarrollo de software

Monto costo final del vehículo: monto costo inicial vehiculo – montoSisSeg – montoSeg – montoPaAh – montoTotalDesAcc

ARREGLOS UNIDIMENSIONALES Y BIDIMENSIONALES EN ALGORITMICA

Arreglos Unidimensionales: arreglos o vectores.Es un conjunto finito, consecutivo y organizado de elementos homogéneos,

es decir, elementos pertenecientes a un mismo tipo de dato.Para referenciar cada elemento de un arreglo se usa el índice, que es un valor que directa o indirectamente referencia la posición del elemento dentro del tiempo del arreglo.

Para referenciar un elemento de un arreglo se usa el nombre del arreglo y entre corchetes ([] ) el índice que determina la posición de ese elemento en el arreglo.

Los arreglos se almacenan siempre en posiciones consecutivas de memoria y se puede acceder a cada elemento del arreglo de manera independiente, a través de los índices.

Definición de un arreglo o vector.

Para definir un arreglo, se da el nombre del arreglo, el rango de sus índices y el tipo de los datos que contiene.

Ejemplo:

sueldo: arreglo [8] de real

Page 26: Curso de desarrollo de software

i: enteroi=2sueldo[i] =23.5

Operaciones con vectores:

Se va a usar la declaración de vector de la siguiente manera:

ventas: arreglo[10] de entero

Gráficamente este vector puede representarse como:

1 2 3 4 5 6 7 8 9 10

Asignar un dato a una posición del arreglo

Consiste en asignar un valor dado a una posición del arreglo dada por un índice.

La sintaxis de esta operación es: <nom_arreglo> [índice] = valor

Ejemplo: asignar el 4000 a la posición 5 del vector.

ventas [5] = 4000

Lectura y escritura de datos:

Consiste en usar una posición cualquiera del arreglo definida por un índice para operaciones de entrada y salida.

La sintaxis para estas operaciones es:

Leer <nom_arreglo> [índice]

Escribir <nom_arreglo> [índice]

Ejemplo:

Leer y mostrar las ventas de los 12 meses del año y almacenarlas en un vector.

Desde i = 1 hasta 12

Page 27: Curso de desarrollo de software

Escribir “Introduzca las ventas del mes” i

Leer ventas[i]

Fin desde

Desde i = 1 hasta 12

Escribir “Ventas del mes” i “=” ventas[i]

Fin desde

Arreglos bidimensionales: Matrices m x n.

En un arreglo unidimensional o vector cada elemento es referenciado por un índice. En un arreglo bidimensional cada elemento se va a referenciar por 2 índices.

La representación lógica de un arreglo bidimensional es una matriz de dimensiones M x N donde M es el numero de filas y N el numero de columnas, es decir, la primera dimensión las filas y la segunda las columnas. Al acceder a un elemento, i,j se esta accediendo al elemento que ocupa la fila i y la columna j.

En general se puede definir un arreglo de 2 dimensiones de la siguiente manera:

<nombre arreglo>: arreglo [rango-filas, rango-columnas] de <tipo de dato>

Así la matriz para la representación de las ventas mensuales de 3 años será:

ventas: arreglo [3,12] de realtamaño = m x n = 5 x 12 = 36

En memoria, sin embargo todos los elementos del arreglo se almacenan en posiciones contiguas.

Matriz de ventas 5 x 12, total de 60 elementos:

1 2 3 4 5 6 7 8 9 10 11 12123 120

ventas [3, 2] = 120

Ejemplo:

Page 28: Curso de desarrollo de software

Inicializar la matriz de ventas mensuales para 5 años:

ventas: arrelo[5, 12] de entero

var i, j: entero

Desde i = 1 hasta 5

Desde j = 1 hasta 12

ventas[i, j] = 0

Fin desde

Fin desde

ARREGLOS UNIDIMENCIONALES Y BIDIMENSIONALES EN LENGUAJE C

Los arreglos son un almacén de d múltiples elementos de datos. Las dos formas en las cuales los arreglos se pueden usar son:

Ilustración de un Arreglo unidimensional:

15242010657

Ilustración de un arreglos bidimensional:

15 20 24

5 8 66

90 88 34

Page 29: Curso de desarrollo de software

Un vector no es más que un arreglo unidimensional. Por otro lado un arreglo bidimensional se denomina matriz en matemáticas.

Declarar un arreglo en C:

Se puede declarar un arreglo unidimensional de la siguiente manera:

int = [5];

Inicializar un arreglo:

Se puede inicializar un arreglo a través de asignación:

int k, num[100];for (k = 0; k < 100; k++)num[k] = 0;Ejemplo:

Imprmir un arreglo:

#include <include stidio.h>main (){/*declaracion de variables*/int k, num[100];/*El bucle inicializa el contenido del arreglo*/for (k = 0; k < 100; k++)num[k] = k + 1;/*el bucle imprime el contenido del arreglo*/for (k = 0; k < 100; k++)

printf (“num[%d] = %d\n”, k, num[k]);fflush (stdin);getchar ();

}

Declarar un arreglo bidimensional:

La forma general de declaración de un arreglo bidimensional se da a continuación:

Tipo-de-dato arreglo[exp1][exp2];

Resolver problemas con arreglos bidimensionales:

Page 30: Curso de desarrollo de software

Los primeros pasos para aprender sobre arreglos bidimensionales es a declararlos e inicializarlos. Al igual que los arreglos unidimensionales, los arreglos bidimensionales se declaran como sigue:

int a[100][100]; char texto[25][80]; float num[10][18];

Ejercicios de arreglos unidimensionales:

Page 31: Curso de desarrollo de software
Page 32: Curso de desarrollo de software