Вы находитесь на странице: 1из 28

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

ALGORITMICA
Y
LENGUAJE DE
PROGRAMACI
N

++

TEORIA DE ALGORITMICA

Que son Algoritmos:


El concepto de algortmica fue desarrollado por el matemtico persa ABU
JAFAR MOHAMMED IBN MUSA AL KHWARIZMI. Se puede decir que un
algoritmo es una frmula para resolver un problema. Es un conjunto de acciones o
secuencia de operaciones que ejecutadas en un determinado orden, resuelven el
problema planteado.
Definiciones bsicas:
Definiciones bsicas 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 simblicas
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 programacin orientado al problema o procedimientos,
Ejemplo de estos lenguajes son COBOL, FORTRAN, C, C++, JAVA, PHP, etc.
Compilar:
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 compilacin se descompone en dos pasos:


Compilar: las instrucciones de alto nivel para producir lo que se denomina el
cdigo objeto.
Enlazar: que es tomar el cdigo objeto generado y cualquier otro cdigo objeto que
sea requerido, que haya sido previamente generado, produciendo as el programa
ejecutable o cdigo 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 cdigo fuente de
un editor. Un editor es un programa utilitario que permite la edicin 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 informacin 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 efecta una operacin en el
computador, es decir, cuando se ejecuta una instruccin en un programa.
Un dato tiene un nombre que lo identifica y distingue de los dems
elementos del programa. Dicho nombre no es ms que otra forma de referenciar la
direccin de memoria que ocupa el dato.

Tipo de dato:
Es una definicin 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 representacin determinada en el computador.
Esto tiene que ver con el tamao 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 bsicos predefinidos en el sistema.

Tipo de datos definidos por el usuario:Agregados por el programador


Los tipos de datos primitivos mas importantes son: Numricos, Lgicos y carcter.
A continuacin se definen cada uno de ellos.

Numricos: Pueden ser a su vez


Entero:Subconjunto finito del conjunto matemtico de los nmeros enteros.
No tiene parte decimal. El rango de los valores depende del tamao que se
les asigne en la memoria para su representacin, este tamao es definido por
el lenguaje de programacin, usualmente 2 bytes.
Real:Subconjunto finito del conjunto matemtico de los nmeros reales.
Llevan signo y parte decimal, se almacenan usualmente en 4 bytes o ms
(dependiendo del lenguaje de programacin que se utilice).
Lgico o booleanos: Es aquel que solo puede tomar uno de los valores,
verdadero o falso (1 0).
Carcter:Abarca el conjunto finito y ordenado de caracteres que reconoce
la computadora: letras, dgitos, caracteres especiales y ASCLL.
Generalmente, sus valores se representan dentro de un par de comillas
simples, aunque tambin se puede suministrar su cdigo numrico o posicin
dentro del conjunto de caracteres vlidos que se est usando.
Tipo cadena o string: Conjunto de caracteres, que usualmente se presentan
entre los smbolos de comillas dobles ().
Variables
Son instancias de un tipo de dato determinado, cuyo valor puede cambiar
durante la ejecucin del programa o corrida del programa.
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 tendrn
ciertas restricciones, segn los defina el lenguaje de programacin. Por lo general,
el identificador de una variable tiene que empezar por una letra, el tamao y
caracteres permitidos como parte del identificador dependen del lenguaje de
programacin.
Variable Acumuladoras:

Son aquellas variables que el programador usa para ir sumando valores a lo largo de
la ejecucin 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 ejecucin 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 ejecucin 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 ejecucin del programa. En cuanto al tipo de dato,
hay que colocarlo o no dependiendo del lenguaje de programacin
Ejemplo:
nombre=jose
num=2
Expresiones: Tipos y Operadores
Una Expresin es una combinacin de constantes, variables, signos de
operacin, parntesis y nombres especiales (nombres de funciones estndar). De la
evaluacin de una expresin resulta un nico valor o resultado.
Una Expresin tiene asociado un tipo de dato que corresponde con el tipo del
valor que devuelve la expresin cuando se evala. En tal sentido, se tienen
expresiones numricas y lgicas.

Expresiones Numricas: Operadores Aritmticos.


Es una combinacin de variables y constantes numricas con operadores
aritmticos, que al evaluarla devuelve un valor numrico.
Los operadores aritmticos comnmente usados son: +, -, *, /, los cuales
equivalen a las operaciones suma, resta, multiplicacin y divisin respectivamente.

Otras operaciones aritmticas soportadas en algunos lenguajes de


programacin son:
Operador Resto o Modulo (%): Devuelve el resto de una divisin entera.

Expresiones lgicas: Operadores relacionales y lgicos:


Una expresin lgica es aquella que solo puede devolver uno de dos valores:
Verdadero o Falso. Los operadores que pueden aparecer en una expresin lgica
son de dos tipos: lgicos o relacionales. Los operadores lgicos solo trabajan sobre
expresiones o datos que retornan valores booleanos. Los operadores relacionales
trabajan con expresiones numricas para realizar comparaciones que retornan un
valor booleano. Es comn tener expresiones que combinan tanto los operadores
lgicos como relacionales.
Los operadores relacionales mas usados son:
< Menor que
>Mayor que
= Igual
<> Diferente
<= Menor o igual que
>= Mayor o igual que
Los operadores lgicos ms utilizados son:
Y (and, &&)
O (or, ||)
No (not, !)

Los Smbolos:
Flechas o lneas de Flujo:Sirven para conectar los
Smbolos del diagrama.
Smbolo de Proceso: Indica la accin que tiene que
Realizar la computadora.
Entrada/salida: Representa las acciones de entrada y
salida. Dentro se colocan las acciones de lectura y
Escritura.

Condicin: En el rombo se coloca una condicin, al


encontrar este signo, se evala la condicin que hay
dentro. Segn la condicin 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.
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 hoja
2.) Si es en una hoja distinta
Pantalla:Cuando una salida es por pantalla.
Teclado:Tambin se usa para representar una entrada por
teclado.
Impresora:

Pseudocdigo:
Es un lenguaje de documentacin de programas similar al espaol o a las
ingles. No necesita seguir ninguna regla especfica, como por ejemplo ser requerido
por los programas que van a hacer traducidos y compilados.
Ejemplo de palabras claves en pseudocdigo:

Inicio y Fin:Por donde empieza y termina el algoritmo.


Si: <Condicin>
Entonces: <Acciones>
Sino: <Acciones>
Mientras: <Condicin>Hacer
Repetir / Hasta: <Condicin>
Desde / Hasta
Segn sea: (Para evaluar opciones mltiples).
La estructura recomendada para los algoritmos en pseudocdigo es:
Algoritmo<Nombre algoritmo>
Var
<nombre>: <tipo>
Inicio
<Instrucciones>
Fin

Programacin Estructurada:
Estructuras Secuenciales:
Una instruccin sigue a otra en secuencia, es decir, la salida de una instruccin es la
entrada de la siguiente.
FLUJOGRAMA
Leer num

PSEUDOCODIGO
Leer num
num=num*2

num=num*2

Escribir num

Escribir num

Estructuras Selectivas:
En este tipo de estructura se evala una condicin y en funcin del resultado
lgico (verdadero o falso) u otro resultado se ejecuta un conjunto de instrucciones.
Son tambin denominadas estructuras de control de flujo, estructuras condicionales
o de toma de decisiones.

Estructura selectiva Simple:


Es la estructura condicional elemental y bsica

FLUJOGRAMA

PSEUDOCODIGO
Si <condicin>

no

Entonces
si

<Acciones>
Fin Si

Acciones

Estructura Selectiva Doble:


Es una estructura condicional que evala una condicin 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

cond

Si <condicin>
Accion
es

Entonces
<Acciones>

Acciones

Sino
<Acciones>
Fin Si

Estructura selectiva de alternativa mltiple:


Se evala una condicin o expresin que puede tomar n valores distintos.
Segn sea el valor de la expresin en un instante dado, se ejecutan las acciones
correspondientes a ese valor.
Las acciones asociadas a la opcin otro: se ejecutan cuando la accin no
toma ninguna de los valores que aparecen antes. En algunos lenguajes de
programacin se le conoce como alternativa else o default.
FLUJOGRAMA
Expresin

PSEUDOCODIGO
Segn sea <expresin>
<valor>:<acciones>
<valor>:<acciones>
<valor>:<acciones>
[<otro>:<acciones>]
Fin segn

Estructuras Repetitivas o de ciclo:


Representan un bucle o conjunto de instrucciones que se repiten un nmero
finito de veces. Cada repeticin del bucle se llama una iteracin. Todo bucle tiene
asociada una condicin, que es la que va a determinar si debe ejecutarse el bucle y
hasta cuando.
Existen tres tipos bsicos de estructuras repetitivas:
Estructura repetitiva Mientras-Hacer:
En la estructura repetitiva mientras-hacer, la condicin de entrada al ciclo se
evala antes de realizar cualquier iteracin del bucle. Si la condicin no se
cumple, el ciclo no se ejecuta y el programa contina con la secuencia de
acciones siguientes.
FLUJOGRAMA

PSEUDOCODIGO
Mientras <condicin>
Hacer

<acciones>
no

Condicin

Fin mientras
si

Acciones

Estructura repetitiva Repetir-Hasta:


En la estructura repetitiva Repetir-Hasta, la condicin del ciclo se evala
despus de realizar la primera iteracin del bucle. Este bucle se repite
mientras la condicin evaluada al final se mantenga falsa. Al cumplirse la
condicin y ser verdadera, se sale del bucle.

FLUJOGRAMA

PSEUDOCODIGO
Repetir
<Acciones>

Acciones

Hasta <condicin>

condicion

no

si

Estructura Repetitiva desde:


Se usa cuando se sabe el nmero 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>

v = vi

<acciones>
v=v+1

V<=vf

si

Fin desde

Accion
es

no

TEORIA DE LENGUAJE C
Lenguaje C:
El lenguaje de programacin C fue desarrollado por Brian Kemighan y
Dennis Ritchie en los Laboratorios Bell en el ao 1972. Fue liberado en un
momento cuando se desarrollaban cientos de lenguaje de programacin.
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 programacin C impone algunas reglas en la
construccin de los nombres de variable. Estos se listan a continuacin.
1.) Los nombres de variables siempre deben empezar con una letra. Esto incluye al
carcter _.
2.) Un nombre de variable puede estar formado por una secuencia de letras del
alfabeto y/o dgitos de 0 al 9 y/o el carcter _ (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.
Ejemplo:intnum;

El uso de los caracteres de cadena de formato:


Cadena de Formato
%d
%i
%o
%x, %X
%u
%c
%f, %e, %E, %g, %G
%s

Propsito
int (notacin decimal con signo)
int (notacin decimal con signo, octal o hexadecimal).
int (natacin decimal sin signo).
int (notacin hexadecimal sin signo)
int (notacin decimal sin signo).
char
doubl
Cadena de caracteres

El uso de secuencias de caracteres de escape:


Secuencia de escape
\a
\b
\f
\n
\r
\t
\v
\\
\?
\
\
\ooo
\xhh

Propsito
Carcter de alerta (timbre)
Retroceso (Backspace)
Formafeed
Nueva lnea
Retorno de carro
Tabulador Horizontal
Tabulador vertical
Diagonal inversa
Signo de interrogacin
Comilla simple
Comilla doble
Numero octal
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 travs de la funcin scanfde C.

Existen muchas funciones incorporadas como la funcin printf, que estn


disponibles a los usuarios programadores de lenguaje C a travs de la librera
estndar de E/S.
Librera estndar.#include<stdio.h>
Esta sentencia es esencial en el momento de compilacin del programa. Una
de las funciones que pertenece a esta librera es printf.
De las funciones propias de la librera stdio.h existe una que permite obtener
la entrada de un usuario, esta es la funcin scanf.Esta funcin se puede usar de la
siguiente manera.
Ejemplo:
scanf (%d, &num);

Cuando esta funcin se ejecuta, se espera que el usuario ingrese un entero


vlido. Una vez que el valor se obtiene del usuario, ste se almacena en la variable
entera llamada num.
Tipos de datos bsicos en C:
Tipo de dato
Int
Float
Doubl

Char

Descripcin
Entero
Numero
de
flotante
Numero
de
flotante o de
precisin
Carcter simple

Requerimientos tpicos de
memoria
2 bytes
punto 4 bytes
punto 8 bytes
doble
1 byte

Operadores Aritmticos:
+, -, *, / y %.
Expresiones y operadores lgicos y relacionales:
Las expresiones relacionales son aquellas que se forman con una
combinacin de identificadores, constates y expresiones aritmticas.

Operadores relacionales:
< Menor que

<= Menor o igual que


> Mayor que
>= Mayor o igual que

Operadores de igualdad:
== Igual a
!= No igual a

Expresiones lgicas:
&& Y (and)
| | O (or)
! NO (NOT)

Estructuras de control, de decisin:

El control, de decisin abarca desde verificar condiciones muy simples hasta


estructuras muy complejas.
Construccin if else:

La forma general de la sentencia if else se da a continuacin.


if (condicin){
Sentencia1;
.
Sentencia2;
}
else{
sentencia1;

Sentencian;
}

La estructura switch case:

switch (variable){
case valor1: sentencias;
break;
case valor2: sentencias;
break;

casevalorn: sentencias;
break;
default: sentencias;
break;
}

Estructuras de control Repetitivas:


Son estructuras que permiten repetir una porcin del algoritmo que requiere
repeticin.

Construccin Iterativa while:


La variable de control del bucle se inicializa.
while (prueba la condicin usando la variable de control) {
Ejecutar sentencias;
.
.
Modificar la variable de control del bucle.
}
Construccin Iterativa for:
for (inicializacin del contador; condicin de prueba; actualizacin del contador) {
Ejecutar todas las sentencias dentro de las llaves;
}
for (k = 1; k <= N; k++)

Inicializacin

Condicin

Estructura de la sentencia do - while:

Incremento

do {
sentencia 1;
sentencia2;
}while (la condicin es verdadera);

Practica de ejercicios

Estructuras secuenciales
1.) Determine el promedio de 3 nmeros reales
2.) 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 rectngulo, calcular el rea y el permetro del
mismo, Las formulas a utilizar son: rea= base * altura y permetro = 2 * (base +
altura).
4.) Obtener la edad de una persona en meses, si se ingresa su edad en aos y meses.
Por ejemplo, si se ingresa 3 aos 4 meses debe mostrar 40 meses.
5.) Dada una cantidad de hombres y de mujeres, calcular el porcentaje de cada
gnero dentro del grupo.
6.) Hacer un algoritmo que permita ingresar dos nmeros enteros y calcule las 4
operaciones bsicas (suma, resta, multiplicacin y divisin). Adems calcular la
potencia. El algoritmo debe mostrar los nmeros y los resultados.
7.) Dado un tiempo en minutos, calcular los das, horas y minutos que le
corresponden.
8.) Un instructor prepara tres modelos de exmenes para tres salones en un curso de
programacin. El instructor sabe que tarda 5 min en el modelo del saln A, 8
min en el modelo del saln B y 6 min en el modelo del saln C. Dada las
cantidades de estudiantes en cada saln, Cuntas horas y minutos tardara el
instructor en revisar los exmenes de todos los salones.
9.) Calculando tres opciones sobre cuadrados y crculos 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=3600seg..

Estructuras de control de decisin y selectivas:

1.) Dados sus lados (a, b, c), determinar si un triangulo es: equiltero, issceles o
escaleno.
2.) A un trabajador le pagan segn 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 artculo determinado, del que se adquieren una o varias unidades.
El IVA es del 15% y si el monto bruto (precio veta ms IVA) es mayor de 50
pesetas se debe realizar un descuento del 5% sobre el monto total.
6.) Una aseguradora de vehculos tiene los siguientes porcentajes de prima
dependiendo de los aos de antigedad del vehculo. Los vehculos de 1 ao
pagan el 5% de su valor, de 2 aos pagan el 8% de su valor, de tres aos el 10%,
de 4 aos el 12% y de 5 aos o mas pagan el 15%. Elabore un programa que
solicite el valor del vehculo y los aos de antigedad y muestre por pantalla el
valor de la prima.
7.) Elabore un programa que imprima el mayor de dos nmeros enteros
introducidos por el usuario.
8.) Dado un nmero entero positivo determine si es par o no.
9.) Dado un nmero del 1 al 7 indique a que da de la semana corresponde.
10.) Construya un programa tal, que dado como dato el sueldo de un trabajador,
calcule su aumento segn 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:
Da: 21
Mes: 09
Ao: 2006
Fecha correcta!
Da: 09

Mes: 2006
Ao: 2006
Fecha incorrecta!
No todos los meses tienen 31 das.
12.) Escribir un programa que tome la fecha actual y la fecha de nacimiento de
una persona en la forma da y aos (enteros) como entrada. Cada entero estar
separado por /, el programa debe validar ambas fechas y determinar la edad de
la persona en aos.
13.) Suponga que usted esta encargado del centro de computacin de la empresa
EL BIEN, y se le ha pedido monto que adeuda el cliente mas moroso que
tiene la empresa, as como el inters a pagar en el presente mes, sabiendo que: si
el atraso es de 30 a 60 das inclusive, el inters a cobrar es de 2% inclusive, si el
atraso esta entre 60 a 90 das inclusive, el inters a cobrar ser del 5 %, si el
atraso es de 91 a 120 das inclusive, el inters a cobrar ser de 7% y si el atraso
es mayor a 120 das el inters 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 das 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 da
segn las siguientes polticas: si el comprador tiene ms de 5 aos adquiriendo
malla en rollo tendr un descuento del 8% en esta malla. Si es comprador de
malla plana por ms de 6 aos tendr un descuento del 6% en esa malla. El
costo de la malla plana es de 400 dlares por metro y de la malla de rollo es de
250 dlares por metro. Elabore un programa en C que capture los metros a
comprar por tipo de malla para un cliente, adems del tiempo en aos 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 pizzera se tienen 3 tamaos de pizzas; grande, mediana y pequea
de precios 20 bsf, 30 bsf y 80 bsf respectivamente todas con 2 ingredientes,
adems 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.
*Championes = 5 bsf
*Anchoas = 4 bsf
*Jamn = 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 nmero del mes y la informacin de si el


ao es bisiesto, imprima por pantalla el nmero de das 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 mltiplo
de 2 y de 5.
19.) El costo de las llamadas telefnicas internacionales, depende de la zona
geogrfica en la que se encuentre el pas destino, y del nmero 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
12
15
18
19
23
25
29

ZONA
Amrica del norte
Amrica Central
Amrica del sur
Europa
Asia
frica
Oceana

PRECIO
2
2.2
4.5
3.5
6
6
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 geogrfica a la que
se llamo,nummin es una variable entera. Que expresa la duracin (en minutos de la
llamada).

Estructuras Repetitivas:
1.) Construya un algoritmo que reciba como entradavarios montos de depsito y
despliegue la suma de ellos. Considere que un valor negativo, significa que no
hay ms datos y no debe ser considerado como dato valido.
2.) Construya un algoritmo que reciba como entrada una secuencia de valores
numricos y genere como salida la suma de los valores pares y la multiplicacin
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 nmero entero determinar la suma de sus dgitos.
4.) Dado N notas de un estudiante calcular:
a.) Cuantas notas tiene desaprobadas.
b.) Cuantas aprobadas
c.) El promedio de notas
d.) El promedio de notas aprobadas y desaprobadas

5.) Solicite 10 nmeros enteros al usuario e imprima su promedio.


6.) Realizar un programa en lenguaje C que sume los nmeros 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
informacin e imprima el nombre, sueldo actual y sueldo nuevo de acuerdo a lo
siguiente.
Salario Actual
% Aumento
Menor o igual a 900
20
Entre 900 y 1300 inclusive
10
Entre 1300 y 1800 inclusive
05
Mayor a 1800
00

8.) Escribir un programa que tome como entrada un numero entero positivo N, y
formar dos nmeros como sigue:
X se forma con los dgitos que sean nmeros pares en el mismo orden de izquierda a
derecha, tal como son presentados.
Y se forma con los dgitos que sean nmeros 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 nmero diferente a los previamente sealados. 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 mltiplo de un numero de 10 en 10:
11.) Realizar un programa de calculadora bsica que repita operaciones
aritmticas cuando lo desee.
12.) Elaborar el control de una empresa:Una compaa productora de aceite,
ha decidido mecanizar el control de las ventas de sus empleados. La compaa
produce tres tipos de aceites: Aceite tipo 1 (de primera) cuyo valor por litro es
25 dlares, aceite tipo 2 (de segunda) con precio de 20 dlares por litro y aceite
tipo 3 (de tercera) con costo de 15 dlares por litro. Se desea realizar un reporte
que incluya: cdigo vendedor, por tipo de aceite cantidad vendida, monto en
dlares 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 saln 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
A
B
C
D

Sueldo
0 10000
10001 30000|
30001 60000
> 60000

% Aumento
8
6
4
2

Construya un programa que reciba como entrada el sueldo actual de cada uno de
los trabajadores y calcule el nuevo sueldo. Adems, el algoritmo deber indicar
cuanto mas gasta la empresa por concepto de sueldos, despus del aumento.
15.) Se requiere elaborar en C que calcule el costo del vehculo en el
concesionario MMCR para 3 clientes (debe mostrarse por pantalla el costo de
cada vehculo), en estas fechas en concesionario ofrece a esos 3 clientes
descuentos fabulosos en el costo del vehculo, si los clientes deciden instalar o
adquirir en el concesionario MMRC: sistema de seguridad, papel ahumado,
compra de la pliza de seguro y por cada accesorios recibirn los siguientes
descuentos sobre el costo del vehculo.
0,15% para sistemas de seguridad (debe ser >1, sin importar cantidad)
1 % para el seguro.
0,1 % papel ahumado (todo el vehculo, sino no aplica)
0,01 % por cada accesorio (totalDesAcc=cantAcc * 0,01)
Monto por cada cliente:
Siendo el monto inicial del vehculo 47000
Monto costo final del vehculo: 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 homogneos,
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 posicin 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 posicin 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 travs de
los ndices.

Definicin 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
i: entero
i=2
sueldo[i] =23.5

Operaciones con vectores:


Se va a usar la declaracin de vector de la siguiente manera:
ventas: arreglo[10] de entero

Grficamente este vector puede representarse como:


1

Asignar un dato a una posicin del arreglo

10

Consiste en asignar un valor dado a una posicin del arreglo dada por un ndice.
La sintaxis de esta operacin es:
<nom_arreglo> [ndice] = valor
Ejemplo: asignar el 4000 a la posicin 5 del vector.
ventas [5] = 4000

Lectura y escritura de datos:

Consiste en usar una posicin 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 ao y almacenarlas en un vector.

Desde i = 1 hasta 12
Escribir Introduzca las ventas del mesi
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 representacin lgica 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 dimensin 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 representacin de las ventas mensuales de 3 aos ser:
ventas: arreglo [3,12] de real
tamao = 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
1
2
3

10

11

120

ventas [3, 2] = 120


Ejemplo:
Inicializar la matriz de ventas mensuales para 5 aos:
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

12

Los arreglos son un almacn de d mltiples elementos de datos. Las dos formas en
las cuales los arreglos se pueden usar son:

Ilustracin de un Arreglo unidimensional:


15
24
20
10
65
7

Ilustracin de un arreglos bidimensional:


15

20

24

66

90

88

34

Un vector no es ms que un arreglo unidimensional. Por otro lado un arreglo


bidimensional se denomina matriz en matemticas.

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 travs de asignacin:
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 arreglobidimensional:

La forma general de declaracin de un arreglo bidimensional se da a continuacin:


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

Resolver problemas con arreglos bidimensionales:


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:

inta[100][100];
char texto[25][80];
floatnum[10][18];

Ejercicios de arreglos unidimensionales:

Вам также может понравиться