Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LOGICADEALGORITMOS
LOGICADEALGORITMOS
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/296671928
CITATIONS READS
0 235
1 author:
Estevan Gomez
Universidad Tecnolgica Equinoccial (UTE)
5 PUBLICATIONS 1 CITATION
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Create new project "Hi friends ; I need review your work because I am making a research about it" View
project
All content following this page was uploaded by Estevan Gomez on 03 March 2016.
L A
C J
ISBN: 978-9942-21-974-9
Enero 2016
Quito Ecuador
LOGICA DE ALGORITMOS
Introduccin
El Mundo de la Programacin es basto e incluye muchas connotaciones desde lo
meramente trivial hasta lo ms complejo, actualmente los Algoritmos requieren o estn
ligados a la Programacin de Computadores, Aplicaciones para Dispositivos Mviles,
Redes, y sistemas de Informacin, entre las miles de aplicaciones disponibles en el Internet.
Objetivos:
El objetivo principal es que el presente libro exprese de manera clara los conceptos, el
anlisis requerido para desarrollar un algoritmo y mostrar a travs de ejemplos de
Algoritmos, su fundamentacin, conceptualizacin y creacin de manera prctica, para que
sea utilizado por : estudiantes, catedrticos y todas aquellas personas que se inician en la
programacin.
1
http://www.pysnnoticias.com/2013/04/07/mejores-aplicaciones-sistema-android-para-descargar-music-2/
1
LOGICA DE ALGORITMOS
2
LOGICA DE ALGORITMOS
Captulo No 1:
1.1. Conceptualizacin:
Para poder desarrollar algoritmos, lo primero que debemos hacer es lograr entender los
conceptos, es decir conceptualizar, segn(WordReference, 2015) la conceptualizacin se
conoce como: Elaboracin detallada y organizada de un concepto a partir de datos
concretos o reales.
1.2. Algoritmo:
Haz cambiado una llanta de tu vehculo?,Haz preparado una torta de huevo?, Ok entonces
ya podemos empezar
2
http://es.wikipedia.org/wiki/Algoritmo
3
LOGICA DE ALGORITMOS
Podemos decir que Algoritmo es una serie de pasos sucesivos, con el objetivo de dar
solucin a un problema, y cuya caracterstica es tener un inicio y un fin.
Inicio Fin
Algoritmo
1.2.2. Ejemplos:
4
LOGICA DE ALGORITMOS
5
LOGICA DE ALGORITMOS
6
LOGICA DE ALGORITMOS
1. Levantarse
2. Baarse
3. Vestirse
4. Desayunar
5. Cepillarse los dientes
6. Salir de casa
7. Tomar el autobs
8. Llegar a la Universidad
9. Buscar el aula
10. Ubicarse en un asiento
1.-Desvestirse
2.-Ajustar la temperatura del agua
3.-Mojar todo el cuerpo
4.-Jabonarse el cuerpo y colocarse shampoo
5.-Lavar tu rostro
6.- Lavar tu cuerpo
7.-Enjuagar el Jabn
8.- Secarse el cuerpo con una toalla
9.- Fin
3
https://www.google.com.ec/imgres?imgurl=http://pintarimagenes.org/wp-content/uploads/2015/02/ni%2525C3%2525B1os-camino-a-
la-escuela.png&imgrefurl=http://pintarimagenes.org/dibujos-de-ninos-camino-a-la-escuela-para-
pintar/&h=450&w=600&tbnid=lkyCSkp1MeRulM:&docid=xY8XMUPBkVgBJM&ei=kaqTVvSCB8mze8mNqLAH&tbm=isch&ved=0
ahUKEwi0j5Or66HKAhXJ2R4KHckGCnYQMwhdKCMwIw&biw=1024&bih=623
7
LOGICA DE ALGORITMOS
1.3.2. Pseudocdigo
El pseudocdigo (falso lenguaje, el prefijo pseudo significa falso) es una descripcin de
alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas
convenciones sintcticas propias de lenguajes de programacin, como asignaciones, ciclos
y condicionales, aunque no est regido por ningn estndar. Es utilizado para describir
algoritmos en libros y publicaciones cientficas, y como producto intermedio durante el
desarrollo de un algoritmo, como los Diagramas de flujo, aunque presentan una ventaja
importante sobre estos, y es que los algoritmos descritos en pseudocdigo requieren menos
espacio para representar instrucciones complejas.
El pseudocdigo est pensado para facilitar a las personas el entendimiento de un
algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una
implementacin. Programadores diferentes suelen utilizar convenciones distintas, que
pueden estar basadas en la sintaxis de lenguajes de programacin concretos. Sin embargo,
el pseudocdigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno
de programacin especfico, y es a la vez suficientemente estructurado para que su
implementacin se pueda hacer directamente a partir de l.
Ejemplo:
Disear un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y
media aritmtica.
inicio
leer (a, b, c, d)
producto <-- (a * b * c * d)
suma <-- (a + b + c + d)
media <-- (a + b + c + d) / 4
escribir (producto, suma, media)
fin
4
https://www.google.com.ec/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwizjPCB0qDKAhXDlB
4KHX8UCYEQjRwIBw&url=https%3A%2F%2F1.800.gay%3A443%2Fhttp%2Fgrupos.emagister.com%2Fdebate%2Fpara_sil_codol%2F2375-
756635&psig=AFQjCNGcEYeZGhFdS4B0wTppaeR_-lX43g&ust=1452563229648390
8
LOGICA DE ALGORITMOS
Estructura Secuencial
9
LOGICA DE ALGORITMOS
10
LOGICA DE ALGORITMOS
Los diagramas de flujo son usados para representar algoritmos pequeos, ya que abarcan mucho
espacio y su construccin es laboriosa. Por su facilidad de lectura son usados como introduccin a
los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas ajenas a la
computacin.
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural,
pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en
lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de flujo
evita muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms
estructuradas para representar algoritmos; no obstante, se mantienen independientes de un
lenguaje de programacin especfico.
5
http://www.iso.org/iso/home.html
11
LOGICA DE ALGORITMOS
Cinta
Magntica
Entrada/Salid
a
Disco Mag
Procesamiento
Pantalla
Toma de
decisiones
Conector Datos
Almacenados
12
LOGICA DE ALGORITMOS
Concepto Clave:
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje
natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros
El pseudocdigo es una expresin paso a paso de una solucin.
13
LOGICA DE ALGORITMOS
EJEMPLO 2 :
EJEMPLO 3:
Diagrama de flujo que expresa un algoritmo para calcular la raz cuadrada de un nmero
14
LOGICA DE ALGORITMOS
Diagrama de flujo sencillo con los pasos a seguir si una lmpara no funciona.
En SysML el diagrama de actividades ha sido extendido para indicar flujos entre pasos que mueven
elementos fsicos (e.g., gasolina) o energa (e.g., presin). Los cambios adicionales permiten al
diagrama soportar mejor flujos de comportamiento y datos continuos.
Estos diagramas utilizan smbolos con significados definidos que representan los pasos del algoritmo, y
representan el flujo de ejecucin mediante flechas que conectan los puntos de inicio y de fin de proceso.
6
https://www.google.com.ec/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwjYjrimu6DKAhXG7B
4KHaVrDHYQjRwIBw&url=https%3A%2F%2F1.800.gay%3A443%2Fhttp%2Fwordpress.danieltubau.com%2Fel-algoritmo-de-polifemo%2Falgoritmo-lampara-
svg%2F&psig=AFQjCNF1pRph2epro4TkMF_A6r6MVn-OIw&ust=1452557172651242
15
LOGICA DE ALGORITMOS
Establecer el alcance del proceso a describir. De esta manera quedar fijado el comienzo y el
final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la
entrada al proceso siguiente.
Identificar y listar las principales actividades/subprocesos que estn incluidos en el proceso a
describir y su orden cronolgico.
Si el nivel de detalle definido incluye actividades menores, listarlas tambin.
Identificar y listar los puntos de decisin.
Construir el diagrama respetando la secuencia cronolgica y asignando los correspondientes
smbolos.
Asignar un ttulo al diagrama y verifica
16
LOGICA DE ALGORITMOS
EJERCICIOS RESUELTOS
Ejercicio No 1: Desarrolle un algoritmo que permita leer dos valores distintos, determinar cul de los
dos valores es el mayor y escribirlo
1. Inicio
2. Inicializar variables: A = 0, B = 0
3. Solicitar la introduccin de dos
valores distintos
4. Leer los dos valores
5. Asignarlos a las variables A y B
6. Si A = B Entonces vuelve a 3
porque los valores deben ser
distintos
7. Si A>B Entonces
Escribir A, Es el mayor
8. De lo contrario: Escribir B, Es
el mayor
9. Fin_Si
10. Fin
17
LOGICA DE ALGORITMOS
1. Inicio
2. Inicializar variables: CP = 0,CD = 0
3. Leer los dos valores
5. Asignarlos a las variables CD y CP
6. Si CP> CDEntonces
7. CAMBIO= CD-CP
8. Escribir CAMBIO
9. De lo contrario: Escribir , No alcanz
10. Fin_Si
11. Fin
Ejercicio 3: Hacer el diagrama de flujo para sumar dos nmeros ledos por teclado y escribir el
resultado.
Ejercicio 4:Hacer un diagrama de flujo que permita leer 2 nmeros diferentes y nos diga cul es el
mayor de los 2 nmeros.
18
LOGICA DE ALGORITMOS
Escribir "C es el
mayor"
FinSi
FinSi
Ejercicio 6:Lee los tres lados de un triangulo rectangulo, determina si corresponden (por Pitargoras) y
en caso afirmativo , calcula el area
Pseudocdigo Diagrama de Flujo
Escribir "Ingrese el lado 1:"
Leer l1
Escribir "Ingrese el lado 2:"
Leer l2
Escribir "Ingrese el lado 3:"
Leer l3
// encontrar la hipotenusa (mayor lado)
Si l1>l2 Entonces
cat1<-l2
Si l1>l3 Entonces
hip<-l1
cat2<-l3
Sino
hip<-l3
cat2<-l1
FinSi
Sino
cat1<-l1
Si l2>l3 Entonces
hip<-l2
cat2<-l3
Sino
hip<-l3
cat2<-l2
FinSi
FinSi
19
LOGICA DE ALGORITMOS
Inicio
Variables edad, peso.
Imprimir "Escribir los datos (Edad, Peso):"
Leer Edad, Leer Peso.
Visualizar "Tu peso es: ", peso, " y tu edad es: ", edad.
Fin.
2.- Escribir un Pseudocdigo que calcule el rea de un tringulo recibiendo como entrada
el valor de base y altura.
Inicio
Variables Altura, Base, Area.
Imprimir "Introduce la base y la altura: "
Leer base y altura.
Area= (base*altura)/2.
Imprimir "El area es: ", Area
Fin.
Inicio
Constantes Pi= 3.1416
Variables Radio, area = real
Imprime "Introduce el radio: "
Leer radio.
area= radio*radio*Pi
Imprimir "El rea del circulo es: ", area.
Fin.
4.- Escribir Pseudocodigo que dados 2 valores de entrada imprima siempre la divisin del
mayor entre el menor.
Inicio
Variables num1, num2=entero.
Variables R=real.
Imprimir "Introduce los nmeros:"
Leer num1, Leer num2.
Si a>b entonces
R= a/b
Sino
R= b/a
Finsi
Imprimir "La divisin es =", R;
20
LOGICA DE ALGORITMOS
5.- Escribir Pseudocdigo que lea de entrada 3 nmeros y que indique cual es el mayor de
ellos.
Inicio
Variables a, b,c = enteros.
Imprimir "Introduce los datos a comparar: "
Leer a,b,c
Si a<b y a<c entonces
Imprime "El mayor es: ", a
Sino
Si b>a y b>c entonces
Imprime "El mayor es: ",b
sino
Imprime "El mayor es: ", c
Fin.
6.- Escribir un Pseudocdigo que lea 3 nmeros los cuales significan una fecha (da, mes,
ao). Comprobar que sea vlida la fecha, si no es vlido que imprima un mensaje de error,
y si es vlida imprimir el mes con su nombre.
Inicio
Variables dia, mes, ao =entero.
21
LOGICA DE ALGORITMOS
Inicio
variables edad=entero, sexo=caracter.
repetir
Imprimir "Introduce Tu edad:"
Leer edad.
Hasta que (edad >0)
Hacer
Imprimir "Introduce tu sexo (M/H):"
leer sexo
sino
Imprimir "Eres Mujer y no puedes votar"
Sino
22
LOGICA DE ALGORITMOS
sino
Fin.
8.- Realice un Pseudocdigo que calcule la nmina salarial neto, de unos obreros cuyo
trabajo se paga en horas. El clculo se realiza de la siguiente forma:
- Los impuestos a deducir de los trabajadores varian, segun el sueldo mensual si el sueldo
es menos a $20,000.00 el sueldo es libre de impuesto y si es al contrario se cobrar un 20%
de impuesto.
Inicio
Sino
Dif_horas= Horas - 35
tarifa_extra=(tarifa * 1.5)
Sueldo=(35*tarifa)+ salario_extra.
Sueldo_mes = sueldo * 4
Impuesto=0
23
LOGICA DE ALGORITMOS
Imprimir "Tu sueldo al mes es: ", sueldo_mes,"Valor de Impuesto: ", Impuesto, " El salario
Neto es: ",Salario_total.
sino
Fin.
9.- Escribir un Pseudocdigo que encuentre y despliegue los nmeros primos entre uno y
cien. Un nmero primo es divisible entre el mismo y la unidad por lo tanto un numero
primo no puede ser par excepto el dos (2).
Inicio
Variables primo, cont, div, res.
Primo = 1.
Hacer mientras primo<=100
Div =0.
Cont =1.
si res = 0 entonces
Fin si
si div<=2 entonces
imprimir primo
Fin si.
24
LOGICA DE ALGORITMOS
Primo = primo + 1.
Fin.
Inicio
Variables N,Fact,aux.
Leer N
aux= n-1.
fact=n
Hacer
fact=fact * aux.
Fin.
Inicio
Variables i,k,r.
r:=i*k.
k=k+1.
25
LOGICA DE ALGORITMOS
i=i+1.
Fin.
EJERCICIOS TIPO 2
1.-Algoritmo que lea nmeros enteros hasta teclear 0, y nos muestre el mximo, el mnimo
y la media de todos ellos. Piensa como debemos inicializar las variables.
Proceso ejercicio_17
Leer num
minimo<-num
maximo<-num
suma<-0
si (num>maximo) Entonces
maximo<-num
FinSi
si (num<minimo) Entonces
minimo<-num
FinSi
suma<-suma+num
contador<-contador+1
leer num
FinMientras
media<-suma/(contador)
26
LOGICA DE ALGORITMOS
FinProceso
2.-Dada una secuencia de nmeros ledos por teclado, que acabe con un 1, por ejemplo:
5,3,0,2,4,4,0,0,2,3,6,0,,-1; Realizar el algoritmo que calcule la media aritmtica.
Suponemos que el usuario no insertara numero negativos.
Proceso ejercici
Escribir ingrese
Leer num
suma<-0
contador<-1
suma<-suma+num
contador<-contador+1
Leer num
FinMientras
Escribir suma/(contador-1)
FinProceso
i<-1
sumapar=0
sumaimp=0
27
LOGICA DE ALGORITMOS
sumapar<-sumapar+i
Sino
sumaimp<-sumaimp+i
Fin Si
i=i+1
Fin Mientras
FinProceso
4.- Una tienda ofrece un descuento del 15% sobre el total de la compra durante el mes de
octubre. Dado un mes y un importe, calcular cul es la cantidad que se debe cobrar al
cliente.
Proceso ejercicio
Leer importe
Leer mes
Si (mes=octubre) Entonces
total<-importe*0.85
Sino
28
LOGICA DE ALGORITMOS
total<-importe
FinSi
Escribir total
FinProceso
5.- Dados 10 nmeros enteros que se ingresan por teclado, calcular cuntos de ellos son
pares, cunto suman ellos y el promedio de los impares
i=1
leer n
suma=suma+n
sumapar<-sumapar+n
Sino
sumaimp<-sumaimp+n
Fin Si
i=i+1
Fin Mientras
FinProceso
6.- Crea una aplicacin que nos pida un da de la semana y que nos diga si es un dia laboral
o no. Usa un switch para ello.
29
LOGICA DE ALGORITMOS
Leer dia
lunes:
martes:
miercoles:
jueves:
viernes:
sabado:
Mostrar no es un LABORAL
domingo:
Mostrar no es un LABORAL
De Otro Modo:
Fin Segun
FinProceso
7.- Muestra los nmeros del 1 al 100 (ambos incluidos) divisibles entre 2 y 3. Utiliza el
bucle que desees.
30
LOGICA DE ALGORITMOS
Sino
si i mod 2 =0 Entonces
Sino
FinSi
FinSi
Fin Si
Fin Para
FinProceso
Leer text
l<-Subcadena(text,i,i)
Si l=a Entonces
c=c+1
Sino
31
LOGICA DE ALGORITMOS
c1=c1+1
Sino
si l=i Entonces
c2=c2+1
Sino
si l=o Entonces
c3=c3+1
Sino
si l=u Entonces
c4=c4+1
FinSi
FinSi
FinSi
FinSi
Fin Si
Fin Para
FinProceso
32
LOGICA DE ALGORITMOS
Repetir
Leer nom1
Leer np
Si np<=1 Entonces
Leer npr
si npr<=5 Entonces
Leer nt
si nt<=4 Entonces
re=np+npr+nt
Sino
FinSi
Sino
33
LOGICA DE ALGORITMOS
FinSi
Sino
Fin Si
FinProceso
10.-Calcula el Cuadrado y el Cubo de los 5 primeros nmeros enteros que siguen a uno
ingresado por teclado.
Proceso prog09
//9. Calcula el Cuadrado y el Cubo de los 5 primerosnmeros enteros que siguen a uno
ingresado por teclado
Leer nu
doble=i*i
triple=i*i*i
Fin Para
FinProceso
34
LOGICA DE ALGORITMOS
Proceso prog10
Leer n
res=n*2
div=res/4
FinProceso
mostrar los nmeros del 1 al 12 con los lazos para, repetir y mientras
Proceso prog08
i=i+1
Mostrar i
Fin Mientras
Repetir
a=a+1
Mostrar a
35
LOGICA DE ALGORITMOS
Mostrar q
Fin Para
FinProceso
Proceso prog06
Leer num1
1:
Escribir multiplicacion
Leer a
Mostrar a,*,i,=,i*a
Fin Para
2:
Escribir suma
Leer q
36
LOGICA DE ALGORITMOS
Mostrar q,+,i,=,i+q
Fin Para
3:
Escribir resta
Leer as
Mostrar as,-,i,=,as-i
Fin Para
4:
Escribir division
Leer asd
Mostrar asd,/,i,=,asd/i
Fin Para
De Otro Modo:
12.- Se desea validar una clave que sea 123456 hasta en tres oportunidades.
Proceso prog07
Repetir
i=i+1
37
LOGICA DE ALGORITMOS
FinProceso
Proceso prog01
n1=0
n2=0
s=0
Leer n1
Leer n2
s=n1+n2
Si s=24 Entonces
Sino
Mostrar no es igual a 24
Fin Si
FinProceso
Proceso prog02
38
LOGICA DE ALGORITMOS
Leer n
Mostrar n, es mltiplo de 3
Sino
Mostrar n, no es mltiplo de 3
Fin Si
FinProceso
Proceso prog02
Leer n
Mostrar n, es par
Sino
Mostrar n, es impar
Fin Si
FinProceso
Proceso prog03
39
LOGICA DE ALGORITMOS
Leer t
Fin Para
FinProceso
1.3.12. Implementacin
Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los
algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito
elctrico o un aparato mecnico y elctrico. Algunos algoritmos inclusive se disean
especialmente para implementarse usando lpiz y papel. El algortitmo de
multiplicacin tradicional, elalgoritmo de Euclides, la criba de Erstones y muchas formas
de resolver la raz cuadrada son slo algunos ejemplos.
1.3.13. Variables
Son elementos que toman valores especficos de un tipo de datos concreto. La declaracin
de una variable puede realizarse comenzando con var. Principalmente, existen dos maneras
de otorgar valores iniciales a variables:
Mediante una sentencia de asignacin.
Mediante un procedimiento de entrada de datos (por ejemplo: 'read').
Ejemplo:
...
i:=1;
read(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
40
LOGICA DE ALGORITMOS
41
LOGICA DE ALGORITMOS
Figura 1
Los procesos que se repiten varias veces en un programa necesitan en muchas ocasiones
contar el nmero de repeticiones habidas. Una forma de hacerlo es utilizar una variable
llamada contador, cuyo valor se incrementa o decrementa en una cantidad constante en
cada repeticin que se produzca.
42
LOGICA DE ALGORITMOS
Figura 2
Figura 3
43
LOGICA DE ALGORITMOS
Una estructura repetitiva es aquella que marca la reiteracin de una serie de acciones
basndose en un bucle. De acuerdo con lo anterior, esta estructura debe constar de tres
partes bsicas:
Tomando el caso anterior, donde para obtener la suma de una serie de nmeros, hemos
utilizado la estrategia siguiente: tras leer cada nmero lo aadimos a una variable SUMA
que contenga las sucesivas sumas parciales (SUMA se hace igual a cero al inicio).
Observemos que el algoritmo correspondiente deber utilizar sucesivamente instrucciones
tales como:
leer nmero
si N < 0 entonces
escribir SUMA
si-no
SUMA <- SUMA+nmero
fin-si
que se pueden repetir muchas veces; stas constituyen el cuerpo del bucle.
Una vez se ha decidido el cuerpo del bucle, se plantea la cuestin de cuntas veces se debe
repetir. De hecho conocemos ya la necesidad de contar con una condicin para detener el
bucle. En el Ejemplo 8, se pide al usuario el nmero N de nmeros que desea sumar, esto
es, el nmero de iteraciones del bucle.
Usamos un contador de iteraciones, TOTAL, que se inicializa a N y a continuacin se
decrementa en uno cada vez que el bucle se repite; para ello introducimos una accin ms
al cuerpo del bucle: TOTAL <- TOTAL -1. Tambin podramos inicializar la variable
TOTAL en 0 o en 1, e ir incrementndolo en uno, en cada iteracin, hasta llegar al nmero
deseado N.
Ejemplo:
44
LOGICA DE ALGORITMOS
donde i es un contador que cuenta desde un valor inicial (1) hasta el valor final (N) con los
incrementos que se consideren (de uno en uno en este caso). Esta es la llamada estructura
Desde (for), que es la ms simple desde el punto de vista de la condicin de salida, ya
que viene predeterminada por el cdigo. Su utilidad reside en el hecho de que, en muchas
ocasiones, se conoce de antemano el nmero de iteraciones. Esta estructura ejecuta las
acciones del cuerpo del bucle, un nmero especificado de veces y de modo automtico
controla el nmero de iteraciones. Su formato en pseudocdigo es:
desde v=vi hasta vf hacer
<acciones>
.
.
fin_desde
v: variable ndice
vi, vf: valores inicial y final de la variable
La variable ndice o de control normalmente ser de tipo entero y es normal emplear como
identificador, las letras I,J,K como herencia de los ndices y subndices utilizados en clculo
cientfico. El incremento de la variable ndice es 1 en cada iteracin si no se indica
expresamente lo contrario. Si debemos expresar incrementos distintos de +1 el formato de
la estructura es:
45
LOGICA DE ALGORITMOS
46
LOGICA DE ALGORITMOS
do
<accion o bloque>
while (condicion);
inicio
contador <- 1
repetir
leer nmero
contador <- contador+1
hasta_que contador > 30
escribir nmeros ledos: 30
fin
Este bucle se repite hasta que el valor de variable contador exceda a 30, lo que suceder
despus de 30 ejecuciones del mismo. Ntese que si en vez de 30 pusiramos 0, el cuerpo
del bucle se ejecutar siempre al menos una vez.
Concepto Clave:
Las estructuras de carcter repetitivo permiten realizar la ejecucin de grupos de
instrucciones varias veces.
La diferencia principal entre la sentencia repetir hasta y mientras es que la repetir
hasta se realizar al menos una vez , en tanto la mientras se realizara cero mas
veces
47
LOGICA DE ALGORITMOS
Ejemplo:
A) B)
v <- vi v <- vi
mientras v < = vf hacer mientras v > = vf hacer
<acciones> <acciones>
v <- v + incremento v <- v - decremento
fin_mientras fin_mientras
Concepto Clave:
Las tres estructuras repetitivas son susceptibles de intercambio entre ellas, as por
ejemplo es posible, sustituir una estructura desde, por una mientras; con incrementos
positivos o negativos de la variable ndice. En efecto, la estructura desde con incremento
positivo es equivalente a la estructura mientras marcada con la A), y la estructura desde
con incremento negativo es equivalente a la estructura mientras marcada con la B).
Ejemplo
Calcular los factoriales de n nmeros ledos por el teclado.
El problema consiste en realizar una primera estructura repetitiva de n iteraciones del
algoritmo de clculo del factorial, que a su vez se efecta con una segunda estructura
repetitiva.
inicio
leer n {lectura de la cantidad de nmeros}
desde i = 1 hasta n hacer
leer NUMERO
48
LOGICA DE ALGORITMOS
49
LOGICA DE ALGORITMOS
1.- Escribir un Pseudocdigo de un programa que permita leer la edad y peso de una persona y
posteriormente imprimirla.
Inicio
Visualizar "Tu peso es: ", peso, " y tu edad es: ", edad.
Fin.
2.- Escribir un Pseudocdigo que calcule el rea de un tringulo recibiendo como entrada el valor de
base y altura.
Inicio
Area= (base*altura)/2.
Fin.
Inicio
50
LOGICA DE ALGORITMOS
Leer radio.
area= radio*radio*Pi
Fin.
4.- Escribir Pseudocodigo que dados 2 valores de entrada imprima siempre la divisin del mayor entre
el menor.
Inicio
Variables R=real.
Si a>b entonces
R= a/b
Sino
R= b/a
Finsi
5.- Escribir Pseudocdigo que lea de entrada 3 nmeros y que indique cual es el mayor de ellos.
Inicio
Leer a,b,c
51
LOGICA DE ALGORITMOS
Sino
sino
Fin.
6.- Escribir un Pseudocdigo que lea 3 nmeros los cuales significan una fecha (da, mes, ao).
Comprobar que sea vlida la fecha, si no es vlido que imprima un mensaje de error, y si es vlida
imprimir el mes con su nombre.
Inicio
Leer dia
leer mes
leer ao.
Sino
52
LOGICA DE ALGORITMOS
sino
Si mes=2 entonces
sino
Sino
Si mes=4 entonces
Si mes=6 entonces
Si mes=9 entonces
53
LOGICA DE ALGORITMOS
Si mes=11 entonces
Fin.
7.- Escribir un Pseudocodigo que pida la edad y el sexo y dependiendo si es hombre o mujer y si puede
votar o no.
Inicio
repetir
Leer edad.
Hacer
leer sexo
sino
Sino
54
LOGICA DE ALGORITMOS
sino
Fin.
8.- Realice un Pseudocdigo que calcule la nmina salarial neto, de unos obreros cuyo trabajo se paga
en horas. El clculo se realiza de la siguiente forma:
- Los impuestos a deducir de los trabajadores varian, segun el sueldo mensual si el sueldo es menos a
$20,000.00 el sueldo es libre de impuesto y si es al contrario se cobrar un 20% de impuesto.
Inicio
Leer Horas.
Sino
Dif_horas= Horas - 35
tarifa_extra=(tarifa * 1.5)
Sueldo=(35*tarifa)+ salario_extra.
Sueldo_mes = sueldo * 4
55
LOGICA DE ALGORITMOS
Impuesto=0
Imprimir "Tu sueldo al mes es: ", sueldo_mes,"Valor de Impuesto: ", Impuesto, " El salario Neto es:
",Salario_total.
sino
Fin.
11.- Escribir un Pseudocdigo que encuentre y despliegue los nmeros primos entre uno y cien. Un
nmero primo es divisible entre el mismo y la unidad por lo tanto un numero primo no puede ser par
excepto el dos (2).
Inicio
Primo = 1.
Div =0.
Cont =1.
si res = 0 entonces
Fin si
56
LOGICA DE ALGORITMOS
si div<=2 entonces
imprimir primo
Fin si.
Primo = primo + 1.
Fin.
Inicio
Variables N,Fact,aux.
Leer N
aux= n-1.
fact=n
Hacer
fact=fact * aux.
Fin.
Inicio
57
LOGICA DE ALGORITMOS
Variables i,k,r.
r:=i*k.
k=k+1.
i=i+1.
Fin.
58
LOGICA DE ALGORITMOS
Captulo No 2:
2. Programas y Programacin
2.1. PROGRAMAR LAS TAREAS COTIDIANAS:
Quieres que el televisor te despierte a las 3 am? Entonces progrmalo para que se encienda
automticamente.
Vas a salir de viaje y no tendrs acceso a tu email, entonces programa tu email para decir
que no estas disponible?
Figura 5
59
LOGICA DE ALGORITMOS
El Lenguaje C fue diseado por Dennies Ritchie en 1970, en los laboratorios Bell de Estados
Unidos.
2.1.3. Compiladores
9
7
https://www.google.com.ec/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=&url=https%3A%2F%2F1.800.gay%3A443%2Fhttp%2Fwww.co
digo.pe%2Fcolumnistas%2Fcodigo-fuente%2Fel-codigo-fuente-de-la-publicidad%2F&psig=AFQjCNHAoz1lzp9Bqk1OL-QwFrj-
Zh_unQ&ust=1452565805886948
Figura
8 7
http://definicion.de/programa-fuente/
9
http://2.bp.blogspot.com/-IDAgRNEuofg/Tm7TQysV9EI/AAAAAAAAABU/uEBNoEMbW_M/s1600/compilador.jpg
60
LOGICA DE ALGORITMOS
Figura 811
Captulo No 3: Lenguaje C
3.1. LENGUAJE C
El Lenguaje C fue diseado por Dennies Ritchie en 1970, en los laboratorios Bell de
Estados Unidos.
10
http://entornosdedesarrollo.blogspot.com/2011/11/codigo-fuente-codigo-objeto-y-codigo.html
11
https://www.google.com.ec/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwjmlZq_9KHKAhXH
1R4KHcM6A5sQjRwIBw&url=https%3A%2F%2F1.800.gay%3A443%2Fhttps%2Fes.wikipedia.org%2Fwiki%2FC%25C3%25B3digo_objeto&psig=AFQjCNFaVtvVC
MHLYuSDPOqA0BFiL5DZJg&ust=1452606888429380
61
LOGICA DE ALGORITMOS
Figura 912
#define
ejemplo:
#include <stdio.h>
#include <math.h>
#inlcude <stlib.h>
12
http://www.monografias.com/trabajos33/programacion-lenguaje-c/Image5733.gif
62
LOGICA DE ALGORITMOS
.1. Declaraciones de Variables: cabe destacar, que esto se hace seguido de los
#include y los #define.
main()
sentencias
la funcin main() va al inicio, luego abrimos llaves y dentro de ellas van las declaraciones
de variables, las sentencias de lectura , clculos, asignaciones e impresiones, y con la ltima
llave ( } ), le indicamos el final del programa.
Ejemplo:
#include <stdio.h>
#include <conio.h>
main()
printf("Radio=\n");
63
LOGICA DE ALGORITMOS
area=3.14159*radio*radio;
getch();
return 0;
Explicacin:
Declaramos, como valores reales, las variables radio y area (de esto se hablar ms
adelante). Luego, con la instruccin printf(), mostramos en pantalla el mensaje (Radio=) y
scanf se encarga de leer el valor digitado por el usuario. Posteriormente area, es igual al la
multiplicacin de pi (3.14159), el radio al cuadrado. Se muestra en pantalla ese resultado,
luego el programa espera que se presiones cualquier tecla (getch() ) y no retorna ningn
valor (return 0).
Ejemplo:
(Correctos)
c2
_c2
(Incorrectos)
2c
64
LOGICA DE ALGORITMOS
No es lo mismo una minscula que una mayscula, ya que c distingue de entre ellas.
Ejemplo: BETA Beta beta BeTa
Estas palabras no pueden ser utilizadas para identificar variables, constantes, funciones etc
3.5. Identificadores:
En todo programa que estemos diseando en C (o en cualquier otro lenguaje de
programacin); es necesario insertar ciertos comentarios en el cdigo, para que en
posteriores modificaciones y cuando se realice el mantenimiento, podamos recordar cosas
importantes ya que, en los comentarios, podemos incluir aspectos importantes del
programas, explicaciones del funcionamiento de las sentencias, etc.
/*este es un comentario en C */
de nuestro Programa */
Comentarios
Permite que, el pre-procesador, incluya funciones proporcionadas por el fabricante, a
nuestro programa. Ejemplo:
stdio.h */
65
LOGICA DE ALGORITMOS
Las variables pueden cambiar de valor, durante la ejecucin del programa, por eso es que se
llaman variables. Y las constantes como su nombre lo indica, son valores que permanecen
constantes durante toda la ejecucin del programa, un ejemplo de ello, es el valor de (pi)
que equivale a 3.14159....
Concepto Clave:
En C las maysculas y las minsculas se tratan como distintas
(Tomado del Manual "Aprenda Lenguaje ANSI C como si estuviera en Primero" Escuela
superior de Ingenieros Industriales. Universidad de Navarra. Febrero de 1998).
Ejemplo:
#define N 100
66
LOGICA DE ALGORITMOS
1.#define B 45
Esta directiva (#define) va, inmediatamente despus de los #include. Se escribe la directiva,
se deja un espacio y se escribe el identificador de la constante, otro espacio y su valor.
2. la directiva #define
/ ! % ^ & * () - + {} [] \ ; : <> .
NOTA: el lector no debe confundirse, las directivas: #include, #define. Main(), no llevan
punto y coma, porque no son sentencias.
Concepto Clave:
Regla de Oro: Se debe considerar el uso de (;) al final de cada instruccin en C.
La causa por la cual nuestro programa puede darnos muchos errores de sintaxis, cuando
se omite, al final de cada sentencia un punto y coma (;). Ya que con ello le indicamos al
compilador que ha finalizado una sentencia.
Recordemos el ejemplo 1.1, y vea que al final de cada sentencia lleva su correspondiente
punto y coma:
#include <stdio.h>
#include <conio.h>
main()
printf("Radio=\n");
67
LOGICA DE ALGORITMOS
area=3.14159*radio*radio;
getch();
return 0;
4. Todas las Instrucciones o sentencias del programa terminan con un punto y coma (;)
Esta consideracin toma mayor auge, cuando veamos las instrucciones anidadas en
condiciones, ciclos, etc.
Ejemplo:
{
...
printf("Hola\n\b");
...
}
7.Esto es posible, porque con el punto y coma, le estamos indicando al compilador el fin de
una sentencia o instruccin.
Ejemplo:
b = c + d; d = 2*k;
68
LOGICA DE ALGORITMOS
13
13
(Class, 2004)
69
LOGICA DE ALGORITMOS
Formato:
Tipo_de_dato nombre_de_la_variable;
Ejemplos:
*Declare una variable de tipo entero y otra de tipo real, una con el nombre de x y otra con
el identificador y:
int x;
float y;
70
LOGICA DE ALGORITMOS
*Declare una variable de tipo entero llamada moon, e inicialcela con un valor de 20
*Declare una variable de tipo real, llamada Pi, e inicialcela con una valor de 3.1415
float pi=3.1415;
char car = M;
char nombre[7]=Manuel;
Explicacin:
En el apartado anterior, se explic, que C, no tiene el tipo de dato llamado string, o mejor
conocido como cadenas de texto, pero nosotros podemos hacer uso de ellas, por medio de
un arreglo, (de lo cual hablaremos con ms detalle, posteriormente); pero para declarar este
tipo de datos colocamos el tipo de datos, es decir la palabra reservada char luego el nombre,
e inmediatamente abrimos, entre corchetes, va el nmero de letras, que contendr dicha
variable. Es muy importante que al momento de declarar el tamao, sea un nmero mayor,
al verdadero nmero de letras; por ejemplo, la palabra Manuel, solo tiene 6 letras, pero
debemos declararlo para 7 letras Por qu?.
en realidad, hay 7 espacios, pero la cuenta llega hasta 6, por que c, toma la primera posicin
como la posicin cero, y para indicar el final de la cadena lo hace con un espacio en blanco.
71
LOGICA DE ALGORITMOS
Su formato es el siguiente:
donde const, es una palabra reservada, para indicarle al compilador que se esta declarando
una constante.
Ejemplo:
Ejemplo:
#define N 150
#define PI 3.1416
#define P 50
72
LOGICA DE ALGORITMOS
#include <stdio.h>
Las Funciones de E / S ms simples son getchar() que lee un carcter del teclado, espera un
retorno de carro (), es decir un enter y el eco aparece. Es decir la tecla presionada.
Algunas variaciones:
Veamos un ejemplo:
Programa que espera que se presiona una tecla, la muestra en pantalla, y adems muestra el
carcter siguiente:
Ejemplo 3.1:
#include <stdio.h>
#include <conio.h>
main()
char car;
73
LOGICA DE ALGORITMOS
car=getchar();
putchar(car+1);
getch();
return 0;
Ejemplo 3.2:
#include <stdio.h>
#include <conio.h>
main()
return 0;
*gets(): Lee una cadena de carcter introducido por el teclado. Se puede introducir
caracteres hasta que se de un retorno de carro, (enter); el cual no es parte de la cadena; en
su lugar se coloca un terminador nulo \0.
74
LOGICA DE ALGORITMOS
Ejemplo:
#include <stdio.h>
#include <conio.h>
main()
char nombre[40];
puts("digite su nombre:");
gets(nombre);
puts("BIENVENIDO:");
puts(nombre);
getch();
return 0;
Se utiliza para imprimir en pantalla cadenas de texto solas, o mandar a pantalla el valor de
alguna variable, o constante, o una combinacin de las anteriores. Su formato es el
siguiente:
75
LOGICA DE ALGORITMOS
Cadena de control: contiene cdigos de formato que se asocian con los tipos de datos
contenidos en las variables.
Cdigo Formato
%d Un entero
%i Un entero
%c Una caracter
%s Una cadena
%f Un real
%ld Entero largo
%u Decimal sin signo
%lf Doble posicin
%h Entero corto
%o Octal
%x Hexadecimal
%e Notacin Cientfica
%p Puntero
%% Imprime Porcentaje
Ejemplo:
Int suma=10;
Explicacin:
Declaramos primero la variable como entero, con un valor de 10, luego la funcin printf, el
mensaje va entre comillas dobles, luego en el lugar que queremos que aparezca el valor,
colocamos el formato de la variable, cerramos comillas, luego una coma y el nombre de la
variable. Es importante recalcar, que en la posicin que coloquemos el formato es donde
aparecer el valor de la variable en este caso, 10.
Ejemplo:
Char nombre[7]=Manuel;
76
LOGICA DE ALGORITMOS
Ejemplo:
char z=D;
float v=10.2563;
Tambin podemos hacer algunos arreglos, al formato de salida, por ejemplo, si deseamos
imprimir un nmero real justificado a la izquierda podemos colocar:
printf(%-f, z);
Carcter de Explicacin
Escape
Ejemplos:
77
LOGICA DE ALGORITMOS
2) int x=15;
printf(El Valor de la variable es %d\n\n, x);
Ejemplo:
Disee un programa que guarde y muestre la nota del examen final de 3 alumnos
#include <stdio.h>
#include <conio.h>
main()
scanf("%s", nom1);
scanf("%f", &n1);
scanf("%s", nom2);
scanf("%f", &n2);
78
LOGICA DE ALGORITMOS
scanf("%f", &n3);
getch();
return 0;
Explicacin:
#include <stdio.h>
#include< conio.h>
Con la cual le indicamos al compilador, que de su librera aada a nuestro programa las funciones
estndar de entrada y salida; as como las entradas y salidas por consola (stadio.h y conio.h,
respectivamente).
Luego declaramos la variables, que contendrn las notas como reales (o de punto flotante:
Ya que, las notas pueden ser decimales, por ejemplo 9.6, 8.5; etc.
Luego declaramos las variables, que contendrn las notas, caba aclarar que al momento de las
declaraciones las podemos hacer en el orden que deseemos, pueden ser primeros los tipo char y
luego los float, o viceversa, pero teniendo el cuidado que las variables que contendrn las nombres
lleven la longitud mxima entre corchetes, para nuestro caso, 10. ( [10] ).
A continuacin, va la funcin scanf, primero y entre comillas el tipo de dato que va a leer:
scanf("%s", nom1);
como puede notarse, va a leer la cadena de texto que contendr la variable nom1. cabe aclarar,
que cuando se van a leer cadenas de texto, no es necesario colocar la direccin (&), lo cual no
sucede con los otros tipos de datos:
79
LOGICA DE ALGORITMOS
Despus de haber ledo los datos, espera a que se presiones cualquier tecla para finalizar la
ejecucin del programa.
Un operador, es un smbolo que indica al compilador que se lleve a cabo ciertas manipulaciones
matemticas o lgicas.
Operadores Aritmticos
Operador Propsito
+ Suma
- Resta
* Multiplicacin
/ Divisin
% Resto de la divisin entera
Los operandos sobre los que actan los operadores aritmticos deben ser valores Numricos, es
decir datos enteros, punto flotante o de carcter (Int, float y char, respectivamente).
Una aclaracin especial, merece el operador %, que indica el resto de la divisin entera.
Vemoslo con un ejemplo:
Operador Significado
< Menor que
<= Menor o igual que
80
LOGICA DE ALGORITMOS
3.20. EXPRESIONES
(Tomado de Aprenda ANSII C como si estuviera en Primero, Universidad de Navarra.
1998).
Ya han aparecido algunos ejemplos del lenguaje C en las secciones precedentes. Una
Expresin es una combinacin de variables y/o constantes, y operadores. La expresin es
equivalente al resultado que proporciona al aplicar sus operadores a sus operandos. Por
ejemplo 1 + 5 es una expresin formada por dos operandos (1 y 5)y el operador (el +); esta
expresin es equivalente al valor 6, por lo cual quiere decir que all donde esta expresin
aparece en el programa, en el momento de la ejecucin es evaluada y sustituida por su
resultado. Una expresin puede estar formada por otras expresiones ms sencillas, y puede
contener parntesis de varios niveles agrupando distintos trminos. En C, existen diferentes
tipos de expresiones. El cual depende del tipo de operadores que se estn utilizando. Por
ejemplo: Expresiones lgicas, aritmticas, etc
Se debe hacer hincapi en que, si existen algunas expresiones encerradas entre parntesis,
estas se evalan primero. Ejemplo:
9*(8+5)
primero sumamos 8+5, cuyo resultado es 13, y este lo multiplicamos por nueve, con lo que
la expresin anterior, da cmo resultado: 117.
Si existen expresiones en parntesis anidadas, es decir, que uno se encuentra dentro de otros
parntesis, se evalan los ms internos. Ejemplo:
2*((20/(12-2))+5)
se evala la operacin 12-2, que da como resultado 10, luego se divide 20, entre el
resultado anterior, es decir 10. el resultado es 2, y a este nmero se le suma 5, obteniendo 7.
ahora se multiplica por dos, para determinar as que la expresin anterior es igual a 14.
81
LOGICA DE ALGORITMOS
Ejemplo 3.3
Disee un programa que calcula el cuadrado y el cubo de tres nmeros introducidos por el
usuario.
#include <stdio.h>
#include <conio.h>
main()
clrscr();
scanf("%d", &x);
scanf("%d", &y);
scanf("%d", &z);
x1=x*x;
x2=x*x*x;
y1=y*y;
y2=y*y*y;
z1=z*z;
z2=z*z*z;
82
LOGICA DE ALGORITMOS
printf("**Numero****Cuadrado*****Cubo****\n");
printf("*********************************\n");
getch();
return 0;
Ejemplo:
Una empresa necesita conocer el sueldo neto a pagar a un empleado. Teniendo como
entrada el salario produzca una salida de sueldo neto. Los descuentos a aplicar son: ISSS
5%, AFP 7% y Renta 10%, estos descuentos son sobre el salario, y es sueldo neto es la
diferencia entre el salario y el total de las retenciones:
#include <stdio.h>
#include <conio.h>
main()
char nombre[50];
clrscr();
scanf("%s", nombre);
scanf("%f", &sueldo);
83
LOGICA DE ALGORITMOS
isss=sueldo*0.05;
renta=sueldo*0.10;
sn=sueldo-(afp+isss+renta);
getch();
return 0;
Ejemplo:
Disee un programa que calcule el promedio y la suma de tres nmeros ingresados por el
usuario:
#include <stdio.h>
#include <conio.h>
main()
clrscr();
scanf("%f", &x);
scanf("%f", &y);
scanf("%f", &z);
84
LOGICA DE ALGORITMOS
prom=sum/3;
printf("*****************************************\n");
printf("*****************************************\n");
getch();
return 0;
Pero en la vida diaria muchas veces debemos elegir entre un camino y otro para llegar a
nuestro destino. Lo mismo pasa en programacin, al realizar alguna actividad, nuestro
programa debe ser capaz de elegir uno u otro camino, a seguir dependiendo del valor de
alguna condicin evaluada.
Para ello C, dispone de tres tipos de 3 tipos de estructuras selectivas, la cuales son:
Su sintaxis es la siguiente:
If(condicin) Accin;
O tambin:
85
LOGICA DE ALGORITMOS
If(Condicin)
Accin;
Donde:
Ejemplo:
En una tienda se venden artculos de primera necesidad, a los cuales se les aplica un
descuento del 20%, de la compra total, si esta es igual o mayor a $50. Disee un programa
en C, que a partir del importe total de la compra muestre lo que debe pagar el cliente.
#include <stdio.h>
#include <conio.h>
main()
{
float compra;
clrscr();
scanf("%f", &compra);
if(compra>=50)
compra=compra*0.8;
getch();
86
LOGICA DE ALGORITMOS
if(Condicin)
Accin 1;
else
Accin 2;
Se debe tener en cuenta la condicin puede ser compuesta, es decir haciendo uso de los
operadores && y || ( Y lgico y No lgico), adems que cuando tenemos ms de una
sentencia por ejecutar ya sea del lado del cierto o del falso, estas van dentro de llaves.
Ejemplo:
#include <stdio.h>
#include <conio.h>
main()
{
int num;
printf("Ingrese el nmero:\n");
scanf("%d", &num);
if(num%2==0)
printf("ES PAR\n\n");
87
LOGICA DE ALGORITMOS
printf("ES IMPAR\n\n");
getch();
return 0;
Figura 1014
88
LOGICA DE ALGORITMOS
3.26. EJEMPLOS
Ejemplo:
#include <stdio.h>
#include <conio.h>
main()
{
float nota;
printf("Digite la nota, porfavor:\n");
scanf("%f", ¬a);
if(nota >= 9.0)
printf("EXCELENTE\n\n");
else
if(nota >= 8.0)
printf("MUY BUENO\n\n");
else
if(nota >= 7.0)
printf("BUENO\n\n");
else
if(nota >=6.0)
printf("REGULAR\n\n");
else
printf("NECESITA MEJORAR\n\n");
89
LOGICA DE ALGORITMOS
return 0;
Este ejemplo, muestra que C, permite hacer anidamientos, es decir, una seleccin dentro de
otra, ya sea del lado del cierto, o del falso o de ambos.
Ejemplo:
#include <stdio.h>
#include <conio.h>
main()
{
int n;
clrscr();
printf("El Nmero es:\n");
scanf("%d",& n);
switch(n)
{
case 0: puts("Cero");
break;
case 1: puts("Uno");
break;
case 2: puts("Dos");
break;
case 3: puts("Tres");
break;
default: puts("Dato No valido");
break;
}
getch();
return 0;
}
void main ()
90
LOGICA DE ALGORITMOS
2. Escribir un programa que lea un nmero entero, lo multiplique por dos y a continuacin
lo escriba por pantalla.
3. Escribir un programa que solicite la cantidad de artculos disponibles en un comercio y
su precio. El programa debe mostrar el valor de las existencias del comercio.
4. Escribir un programa que calcule la mitad, el cuadrado y el cubo de un nmero real
solicitado al usuario. Se puede utilizar la funcin pow(a,b) que calcula a b
. Esta funcin est incluida en la librera math.h.
5. Escribir un programa que solicite dos valores enteros al usuario e intercambie el
contenido de las dos variables ledas.
6. Escribir un programa que lea dos nmeros enteros A y B, y obtenga los valores A
dividido por B y su resto.
7. Escribir un programa que solicite la longitud y anchura de una habitacin y muestre su
superficie.
8. Calculo del rea de un crculo (A= r2). Pedir el radio del crculo al usuario.
9. Escribir un programa que convierta un nmero de segundos en su equivalente en das, horas,
minutos ysegundos. Debe visualizarse dd - hh:mm:ss.
10. Cul es la salida por pantalla de cada uno de stos programa?
void main ()
{
int a, b, c, d=6, e;
a = b = 3;
c = a*b+d;
e = (c + 5) / 4-3;
e+=5;
printf("Los resultados son %d y %d ", c, e);
}
void main ()
{
int a, b, c, d=6, e;
a = 3;
b = a - d / 3;
a *=b;
c = a + d / a - 3 / a * b;
e = c + 8 / 4-b;
e+=5;
printf("Los resultados son %d y %d ", c, e);
}
91
LOGICA DE ALGORITMOS
12. Disee un programa en C, que lea y muestre en pantalla el valor de tres variables de tipo
Entero.
#include <stdio.h>
#include <conio.h>
main()
{
int num;
printf("Ingrese el nmero:\n");
scanf("%d", &num);
if(num%2==0)
printf("ES PAR\n\n");
else
printf("ES IMPAR\n\n");
getch();
return 0;
Ejercicio:
92
LOGICA DE ALGORITMOS
#include <stdio.h>
#include <conio.h>
main()
float nota;
scanf("%f", ¬a);
printf("EXCELENTE\n\n");
else
printf("MUY BUENO\n\n");
else
printf("BUENO\n\n");
else
if(nota >=6.0)
printf("REGULAR\n\n");
else
93
LOGICA DE ALGORITMOS
getch();
return 0;
Ejercicio:
Si son varones, y su estatura es mayor a 1.60, y su peso es mayor o igual a 150 lb,
su dosis, sern: 20% de la estatura y 80% de su peso. De lo contrario, la dosis ser
la siguiente: 30% de la estatura y 70% de su peso.
#include <stdio.h>
#include <conio.h>
main()
{
float peso, estatura, dosis;
char sexo;
printf("Introduzca el sexo del alumno(a)<H/M>:\n");
scanf("%c", &sexo);
printf("Peso:\n");
scanf("%f", &peso);
printf("La estatura es de:\n");
scanf("%f", &estatura);
if(sexo=='H' || sexo=='h')
{
if(estatura>1.60 && peso >=150)
{
dosis=(0.20*estatura)+(0.8*peso);
printf("La dosis de este alumno ser : %.2f gramos\n\n", dosis);
}
else
{
dosis=(0.3*estatura)+(0.7*peso);
printf("La dosis de este alumno sera %.2f gramos\n\n", dosis);
94
LOGICA DE ALGORITMOS
}
else
{
if(estatura>1.50 && peso >=130)
{
dosis=(0.25*estatura)+(0.75*peso);
printf("La dosis de esta alumna debe ser de %.2f gramos\n\n", dosis);
}
else
{
dosis=(0.35*estatura)+(0.65*peso);
printf("La dosis de esta alumna debe ser de %.2f gramos\n\n", dosis);
}
}
getch();
return 0;
Captulo No 4:
4.1. CICLOS
Para repetir varias veces un proceso determinado haremos uso de los ciclos repetitivos, a
los cuales se les conoce con el nombre de estructura repetitiva, estructura iterativa, lazo o
bucle.
95
LOGICA DE ALGORITMOS
Acumulador:
Es una variable, que , como su nombre lo indica se encarga de acumular valores. Esto se
vuelve muy til, por ejemplo, cuando queremos encontrar la suma de los nmeros del 0 al
9, en el acumulador, vamos guardando los valores de dichas cifras. Puede ser tanto real
como entera. Su valor inicial, en la mayora de los casos es cero.
Contador:
Es una variable de tipo entero, que nos ayuda, en el programa a contabilizar el nmero de
ejecuciones de una misma accin, de un grupo de alumnos etc. Un acumulador tiene tres
valores distintos:
Valor Final: despus de la ejecucin del ciclo, el valor del contador, ser distinto a su
valor inicial, este puede ser mayo o menor que el mismo, todo depende si fue una cuenta
creciente o decreciente.
NOTA: el lector no debe confundirse entre las variables tipo acumulador y tipo contador,
estas se diferencian unas de otras en que: los contadores, su valor de cambio es una
constante, ya que aumenta y disminuyen en el mismo valor, mientras que los acumuladores
su valor de cambio no es constante. Un acumulador necesariamente lo inicializamos con
cero (o al menos en la mayora de los casos). Un contador puede iniciar con cualquier valor.
Bandera:
Las variables tipo bandera son aquellas que slo admiten dos valores: cierto o falso, true o
false, hombre o mujer... etc
while(condicin)
96
LOGICA DE ALGORITMOS
Accin;
Hay que tener mucho cuidado, cuando trabajamos con ciclos, ya que podemos caer en un
ciclo infinito, es decir que nunca se sale de l. Lo cual no es un error de sintaxis sino de
lgica. Por lo cual en las acciones debemos siempre colocar algo que haga que se
modifique el resultado de la condicin, lo cual puede ser una bandera, un contador o un
acumulador.
Ejemplo :
#include <stdio.h>
#include <conio.h>
main()
getch();
return 0;
97
LOGICA DE ALGORITMOS
accion;
Donde:
Ejemplo 4.4:
#include <stdio.h>
#include <conio.h>
main()
int i;
printf("%d\t", i);
getch();
return 0;
98
LOGICA DE ALGORITMOS
99
LOGICA DE ALGORITMOS
Se desea conocer el promedio de los nmeros mayores que cero, en una serie de nmeros
ingresados por el usuario. De los cuales no se sabe la cantidad, haciendo uso de una
bandera, disee un programa en el cual el usuario ingrese los nmeros que desee.
#include <stdio.h>
#include <conio.h>
main()
float prom;
while(ban==1)
scanf("%d", &n);
if(n>0)
{
i=i+1;
sum+=n;
}
scanf("%d", &ban);
}
prom=sum/i;
100
LOGICA DE ALGORITMOS
printf("************************************************************\n");
printf("*** El Promedio de los numeros mayores que cero es: %.2f ***\n", prom);
printf("************************************************************\n");
getch();
return 0;
Ejercicio:
En un saln se tienen las notas de 14, alumnos; de los cuales se desea saber cual fue el
promedio de todas las notas, cual fue la nota mayor y la nota menor. As como la cantidad
de aprobados en el curso (Para Aprobar la asignatura se requiere de una nota mayor o igual
a 6.0)
#include <stdio.h>
#include <conio.h>
main()
{
printf("Ingrese la Nota del alumno %d:\n", i);
scanf("%f", ¬a);
{
printf("ERROR, la nota debe estar entre 0 y 10\n");
scanf("%f", ¬a);
101
LOGICA DE ALGORITMOS
if(nota>=6.00)
j=j+1;
if(nota>mayor)
mayor=nota;
if(nota<menor)
menor=nota;
i=i+1;
suma=suma+nota;
}
prom=suma/14;
getch();
return 0;
Ejercicio:
Disee un programa en C, que calcule las compras totales, realizadas por un grupo de 20 amas de
casa. Luego con esa informacin obtenga la media.
#include <stdio.h>
#include <conio.h>
main()
{
int i;
float compra, desvia, prom, varinza, sum=0;
for(i=1; i<=10; i++)
{
printf("Ingrese la cantidad que gast la ama de casa %d:\n", i);
scanf("%f",& compra);
while(compra<0)
102
LOGICA DE ALGORITMOS
Formato :
do {
sentencia;
} while(<expL>);
La diferencia fundamental, entre el ciclo while y do...while, es que en este ultimo, las
sentencias se realizarn por lo menos una vez, en cambio, con while, solo se cumplirn
mientras se cumpla la condicin, lo cual puede ser nunca.
Ejemplo :
103
LOGICA DE ALGORITMOS
Captulo No 5: Funciones
5.1. Funciones en C
La modularizacin, es una tcnica usada por los programadores para hacer sus cdigos ms
cortos, ya que consiste en reducir un gran problema complejo, en pequeos problemitas ms
sencillos, concentrndose en la solucin por separado, de cada uno de ellos.
En C, se conocen como funciones aquellos trozos de cdigos utilizados para dividir un programa
con el objetivo que, cada bloque realice una tarea determinada.
En las funciones juegan un papel muy importe las variables, ya que como se ha dicho estas
pueden ser locales o globales.
Variables Globales: Estas se crean durante toda la ejecucin del programa, y son globales, ya
que pueden ser llamadas, ledas, modificadas, etc; desde cualquier funcin. Se definen antes del
main().
Variables Locales: Estas, pueden ser utilizadas nicamente en la funcin que hayan sido
declaradas.
104
LOGICA DE ALGORITMOS
donde:
Tipo_de_datos: Es el tipo de dato que devolver esa funcin, que puede ser real, entera,
o tipo void(es decir que no devolver ningn valor).
Nombre_de_la_funcion: Es el identificador que le damos a nuestra funcin, la cual debe
cumplir las reglas que definimos en un principio para los identificadores.
Tipo y nombre de argumentos: son los parmetros que recibe la funcin. Los
argumentos de una funcin no son ms que variables locales que reciben un valor. Este
valor se lo enviamos al hacer la llamada a la funcin. Pueden existir funciones que no
reciban argumentos.
Acciones: Constituye el conjunto de acciones, de sentencias que cumplir la funcin,
cuando sea ejecutada. Entre ellas estn:
1. Asignaciones
2. Lecturas
3. Impresiones
4. Clculos, etc
Una funcin, termina con la llave de cerrar, pero antes de esta llave, debemos colocarle la
instruccin return, con la cual devolver un valor especfico. Es necesario recalcar que si la funcin
no devuelve ningn valor, es decir, es tipo void, no tiene que ir la sentencia return, ya que de lo
contrario, nos dar un error.
Los subprogramas se comunican con el programa principal, que es el que contiene a las funciones,
mediante parmetros, que estos pueden ser: Parmetros Formales y Parmetros Actuales.
Cuando se da la comunicacin los parmetros actuales son utilizados en lugar de los parmetros
formales
Tambin conocido como parmetros valor. Los valores se proporcionan en el orden de clculos de
entrada.
105
LOGICA DE ALGORITMOS
Los parmetros formales-Locales de una funcin reciben como inicilaes los valores de los
parmetros actuales y con ellos se ejecutan las acciones descritas en el subprograma.
Ejemplo:
A=5;
B=7;
Proc1(X, Y, Z)
Explicacin:
Un viejo adagio dice: Separa y vencers, lo cual se acopla perfectamente cuando tenemos un
programa que es bastante grande; podemos separarlos en pequeos subprogramas (funciones), y
concentrarnos en la solucin por separados de cada uno de ellos y as resolver un gran problemas,
en unos cuantos problemitas ms pequeos.
Si un programa, est constituido por ms de una funcin, las llamadas a la misma, pueden
realizarse desde cualquier parte del programa, y la definicin de ellas debe ser independiente unas
de otras.
Por lo tanto sera un grave error el tratar de definir una funcin dentro de otra.
Una funcin puede ser llamada desde cualquier parte del programa no slo una vez, y cuando es
llamada, empieza a ejecutar las acciones que estn escritas en cdigo.
Para mayor comodidad del lector vamos a ver varios ejemplos, del uso de funciones y a medida
que vayamos avanzando se volvern ms complejos.
106
LOGICA DE ALGORITMOS
4. Funciones combinadas
Ejemplo: Disee un programa que dados dos nmeros enteros determine la suma y cual de ellos
es mayor, usando dos funciones diferentes.
#include <stdio.h>
#include <conio.h>
void mayor (int a, int b); /*Tipo de dato, nombre de la funcin y el tipo y nombre de los
argumentos*/
main()
int a, b;
scanf("%d", &a);
scanf("%d", &b);
getch();
return 0;
107
LOGICA DE ALGORITMOS
sum=a+b;
if(a==b)
printf("Son iguales\n\n");
else
if(a>b)
else
Definicin de la Funcin
La funcin ha sido declarada, ha sido llamada y por lo tanto deber haber sido definida. Lo cual
consta de dos partes, las cuales son:
Que como su nombre lo indica, es la primera lnea de la definicin de la funcin y con ella le
indicamos al compilador que est en presencia de una funcin. Su formato es el siguiente:
108
LOGICA DE ALGORITMOS
Se inicia con una llave {, y en ella, se pueden realizar asignaciones, clculos, impresiones, as
como la declaracin de las variables locales. Puede estar constituidas por estructuras
secuenciales, selectivas, iterativas, anidamientos, se pueden llamar otras funciones, etc; finaliza
con }. Puede devolver uno o ningn valor.
Ejemplo
Disee un Programa en C, que Dado un nmero entero y mayor que cero, Determine si es o no un
nmero Primo. Ojo, los nmeros primos slo son divisibles por el mismo y por la unidad (1).
#include <stdio.h>
#include <conio.h>
main()
clrscr();
while(ban==1)
scanf("%d", &numero);
while(numero<0)
scanf("%d", &numero);
primo(numero);
scanf("%d", &ban);
109
LOGICA DE ALGORITMOS
getch();
return 0;
if(numero%div==0)
primo=0;
return 0;
else
primo=1;
if(primo!=0)
Antes de usar una funcin C debe tener conocimiento acerca del tipo de dato que regresara y el
tipo de los parmetros que la funcin espera.
110
LOGICA DE ALGORITMOS
Lo anterior es hecho, dependiendo del alcance de la funcin. Bsicamente si una funcin ha sido
definida antes de que sea usada (o llamada), entonces se puede usar la funcin sin problemas.
Es una prctica usual y conveniente escribir el prototipo de todas las funciones al principio del
programa, sin embargo esto no es estrictamente necesario.
Para declarar un prototipo de una funcin se indicara el tipo de dato que regresar la funcin, el
nombre de la funcin y entre parntesis la lista del tipo de los parmetros de acuerdo al orden que
aparecen en la definicin de la funcin. Por ejemplo:
int longcad(int n); Lo anterior declara una funcin llamada longcad que regresa un valor entero y
acepta otro valor entero como parmetro.
Ejemplo 5.3
Disee un programa, que dado un nmero entero y mayor que cero, muestre su factorial. (El
factorial de 5 es 120; 5x4x3x2x1=120)
#include <stdio.h>
#include <conio.h>
main()
clrscr();
while(ban==1)
111
LOGICA DE ALGORITMOS
scanf("%d",& num);
while(num<0)
scanf("%d",& num);
scanf("%d",& ban);
getch();
return 0;
int sum=1, i;
sum=sum*i;
return (sum);
Explicacin:
112
LOGICA DE ALGORITMOS
Pero, que sucede cuando se est trabajando, con valores bastante grandes, al utilizar solamente el
int, se producir un error lgico; ya que como valor de retorno podra ser un cero o una cifra
negativa. Por tanto debemos usar el tipo de dato long int.
Ejemplo:
Disee un programa, que dada una cifra entera y mayor que cero, sea elevada a una potencia
introducida por el usuario, la cual. (Ejemplo: 5^2=25).
#include <stdio.h>
#include <conio.h>
main()
clrscr();
scanf("%d", &base);
while (base<0)
scanf("%d", &base);
scanf("%d", &exponente);
getch();
return 0;
113
LOGICA DE ALGORITMOS
x=base*base;
sum=sum+x;
return (sum);
Este mtodo es un poco complejo y puede realizarse de manera ms fcil, haciendo uso de las
funciones predefinidas en C, de las cuales hablaremos a continuacin.
Antes que nada, trataremos las funciones predefinidas en C. Ya que C, posee ciertas funciones
que nos ayudan hacer nuestros programas ms fciles y utilizar menos cdigo.
El lenguaje c, cuenta con una serie de funciones de bibliotecas que realizan operaciones y clculos
de uso frecuente.
Para acceder a una funcin, se realiza mediante el nombre seguido de los argumentos que le
servirn a la funcin a realizar la tarea especfica.
Nombre(arg1, arg2,...argn);
Nombre(arg1, arg2,...argn);
*Funciones Matemticas
Para acceder a ellas, se debe colocar la directiva #include <math.h> en el encabezado del
programa.
114
LOGICA DE ALGORITMOS
int
atuf(s) Double Convierte la cadena a una cantidad de doble precisin
atoi(s) int Convierte cadenas a un entero
atol(s) long Convierte cadenas a un entero largo
Hay muchas otras funciones, pero para ahondar ms, debes saber cul es la versin de C,
instalada en tu mquina y as verificar cules funcionan correctamente; pero por lo general, estas
funciones son muy estndar para la mayora de compiladores.
A continuacin, pasaremos a desarrollar una serie de ejercicios, en los cuales haremos uso de la
funciones predefinidas en c, as como la modularizacin, es decir; el uso de funciones definidas por
el usuario.
Ejemplo 5.5
1. a+b
2. |a-b|
115
LOGICA DE ALGORITMOS
#include <conio.h>
#include <math.h>
main()
float a, b;
clrscr();
printf("\t\tBIENVENIDO\n\n");
scanf("%f", &a);
scanf("%f", &b);
getch();
return 0;
float x;
double y;
x=a+b;
116
LOGICA DE ALGORITMOS
return (y);
float x;
double y;
x=a-b;
y=fabs(x);
return (y);
double x;
x=pow(a,b);
return (x);
Supongo que, este ejemplo no requiere mayor explicacin. Pero me gustara que el lector,
comprenda la gran cantidad de usos que podemos darle, a aquellas funciones matemticas, junto
con las funciones definidas por el usuario, esta es una gran ayuda, ya que se imaginan la
cantidad de cdigo que deberamos colocar, para determinar cosas tan elementales como el valor
absoluto?; con estas funciones matemticas, C, nos ahorra mucho trabajo y cdigo
117
LOGICA DE ALGORITMOS
Captulo No 6: Arreglos
En lugar de declarar las variables individuales, como Number0, nmero1, ..., y number99, se
declara una variable de matriz tales como nmeros y nmeros de uso [0], nmeros [1], y, nmeros
... [99] para representar variables individuales. Un elemento especfico de un array se accede por
un ndice.
Esto se llama una matriz unidimensional. El arraySize debe ser un entero constante mayor que
cero y el tipo puede ser cualquier tipo de datos C vlida. Por ejemplo, para declarar una matriz de
10 elementos llamado equilibrio de tipo double, utilice esta declaracin:
double balance[10];
Ahora balance es matriz avariable que es suficiente para contener hasta 10 nmeros dobles .:
118
LOGICA DE ALGORITMOS
El nmero de valores entre llaves {} no puede ser mayor que el nmero de elementos que
declaramos para la matriz entre corchetes [].
Si omite el tamao de la matriz, se crea una matriz lo suficientemente grande para contener la
inicializacin. Por lo tanto, si usted escribe:
balance[4] = 50.0;
La declaracin anterior asigna nmero de elemento quinto en la matriz con un valor de 50,0. Todas
las matrices tienen 0 como el ndice de su primer elemento que tambin se llama ndice de base y
ltimo ndice de un array ser el tamao total de la matriz menos 1. A continuacin se presenta la
representacin grfica de la misma matriz ya comentamos anteriormente
#include <stdio.h>
int main ()
int i,j;
119
LOGICA DE ALGORITMOS
return 0;
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
120
LOGICA DE ALGORITMOS
Concepto Descripcin
Pasando matrices a funciones Puede pasar a la funcin un puntero a una matriz especificando el
nombre de la matriz sin un ndice.
Volver matriz desde una funcin C permite una funcin para devolver una matriz.
Puntero a una matriz Puede generar un puntero al primer elemento de una matriz
simplemente especificando el nombre de la matriz, sin ningn ndice
double x[80];
int factores[30];
char codSexo[20];
Los nombres deben cumplir con las normas para los identificadores. La primera lnea indica
que se hanreservado 80 posiciones para nmeros doble precisin. Estas posiciones son
contiguas. Es importanterecalcar que en C, a diferencia de otros lenguajes, el primer elemento
es x[0], el segundo es x[1], eltercero es x[2], y as sucesivamente; el ltimo elemento es x[79].
En x hay espacio reservado para 80 elementos, pero esto no obliga a trabajar con los 80; el
programapuede utilizar menos de 80 elementos.C no controla si los subndices estn fuera del
rango previsto; esto es responsabilidad del programador.
Por ejemplo, si en algn momento el programa debe utilizar x[90], lo usa sin importar si los
resultadosson catastrficos.
121
LOGICA DE ALGORITMOS
int main(void)
double v[30];
...
...
//------------------------------------------------
// cuerpo de la funcion
...
//------------------------------------------------
int main(void)
double v[30];
...
...
122
LOGICA DE ALGORITMOS
//------------------------------------------------
// cuerpo de la funcion
...
El programa del siguiente ejemplo lee el tamao de un vector, lee los elementos del vector, los
escribe yhalla el promedio. Para esto utiliza funciones. Observe la manera como un arreglo se
pasa como parmetro.
// Arreglos unidimensionales
//------------------------------------------------
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
//------------------------------------------------
//================================================
int main()
double v[40];
int n;
123
LOGICA DE ALGORITMOS
if( n > 40 ){
exit(1);
lectX(v, n, v);
printf(" v : \n");
escrX(v, n);
return 0;
//================================================
int i;
scanf("%lf", &x[i] );
//------------------------------------------------
124
LOGICA DE ALGORITMOS
int i;
printf("%15.8lf", x[i]);
//------------------------------------------------
int i;
double s = 0.0;
if( n <= 0 ){
return 0.0;
return s/n;
La funcin lectX tiene tres parmetros: el arreglo, el nmero de elementos y una letra. Esta
letra sirvepara el pequeo aviso que sale antes de la lectura de cada elemento. En el ejemplo,
cuando se llama lafuncin, el tercer parmetro es v; entonces en la ejecucin aparecern los
avisos:
125
LOGICA DE ALGORITMOS
v(2) =
...
Observe que en el printf de la funcin lectX aparece i+1; entonces para el usuario el vector
empiezaen 1 y acaba en n. Internamente empieza en 0 y acaba en n 1.
Cuando un arreglo unidimensional es parmetro de una funcin, no importa que el arreglo haya
sidodeclarado de 1000 elementos y se trabaje con 20 o que haya sido declarado de 10 y se
trabaje con 10. Lafuncin es de uso general siempre y cuando se controle que no va a ser
llamada para usarla con subndices mayores que los previstos. En la siguiente seccin se trata
el tema de los arreglos bidimensionales. All,el paso de parmetros no permite que la funcin
sea completamente general
//------------------------------------------------
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
//------------------------------------------------
//================================================
int main()
int n;
126
LOGICA DE ALGORITMOS
printf(" n = ");
vFactPrim[i]);
printf("\n");
return 0;
//================================================
// Si n es primo, devuelve n.
int i;
if( n < 2 ){
return 0;
127
LOGICA DE ALGORITMOS
//================================================
// factores primos de n
int d, indic;
if( n < 2 ){
return 0;
nf = 0;
do{
return 0;
d = primerDiv(n);
fp[nf] = d;
nf++;
128
LOGICA DE ALGORITMOS
return 1;
double a[3][4];
int pos[10][40];
char list[25][25];
double c[20][30][10];
Los sitios para los elementos de a estn contiguos en el orden fila por fila, o sea, a[0][0],
a[0][1],
a[0][2], a[0][3], a[1][0], a[1][1], a[1][2], a[1][3], a[2][0], a[2][1], a[2][2], a[2][3].
En el siguiente ejemplo, el programa sirve para leer matrices, escribirlas y calcular el producto.
Lohace mediante la utilizacin de funciones que tienen como parmetros arreglos
bidimensionales.
// Arreglos bidimensionales
//------------------------------------------------
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
129
LOGICA DE ALGORITMOS
//================================================
int main()
int m, n, p, q;
// ni negativos
// ni negativos
if( n != p ){
130
LOGICA DE ALGORITMOS
exit(1);
lectA0(a, m, n, A);
printf(" A : \n");
escrA0(a, m, n);
lectA0(b, n, q, B);
printf(" B : \n");
escrA0(b, n, q);
printf(" C : \n");
escrA0(c, m, q);
return 0;
//================================================
int i, j;
scanf("%lf", &a[i][j] );
131
LOGICA DE ALGORITMOS
//------------------------------------------------
int i, j;
printf("%15.8lf", a[i][j]);
if((j+1)%nEltosLin == 0 || j==n-1)printf("\n");
//------------------------------------------------
// devuelve 0 si no se puede
int i, j, k;
132
LOGICA DE ALGORITMOS
s = 0.0;
c[i][j] = s;
return 1;
char nombre[n];
En el caso especial de los arrays de caracteres, podemos utilizar varias formas deinicializacin:
133
LOGICA DE ALGORITMOS
cadena[i];
Por ejemplo:
La biblioteca string tiene una gran cantidad de funciones prcticas para trabajar con
cadenas de caracteres. Para utilizarlas debemos de incluir el fichero que define los
#include <string.h>
134
LOGICA DE ALGORITMOS
Por ejemplo, para mostrar en pantalla un array de caracteres podemos hacerlo dentro deun
bucle, desde el primer caracter (indice 0) hasta el ltimo carcter (lo que nos
printf("%c",cadena[i]);
Existe una mejor manera de mostrar en pantalla una cadena, y es utilizando el carcterde
conversin %s:
printf("%s",cadena);
El tipo Carcter en C El nombre del tipo carcter en C es char. Este tipo ocupa un byte (ocho
bits) de extensin, y puede interpretarse con y sin signo. La tabla de tipos de datos de carcter
en C es como sigue:
#include<stdio.h>
char letra;
135
LOGICA DE ALGORITMOS
letra = 'A';
letra,letra);
letraconsigno = -65;
letraconsigno,letraconsigno);
letrasinsigno = 165;
letrasinsigno,letrasinsigno);
return 0;
Ejemplo
#include<stdio.h>
136
LOGICA DE ALGORITMOS
void main(void)
gets(resto);
puts(resto);
Es interesante recordar que todo lo que "sobra", esto es, lo que est ms all del primer
espacio en blanco, queda almacenado y disponible para la siguiente sentencia de lectura. La
funcin gets() captura todo lo restante, y despus se imprime mediante puts(). Hay que ser
precavidos a la hora de "dejar" restos en el tampn. Lo mejor es eliminar posibles restos antes
de pasar a la lectura siguiente, empleandofflush(stdin) o bien fpurge(stdin).
137
LOGICA DE ALGORITMOS
Bibliografa
Quereda, J. M. (2000). Introduccin a la programacin con Pascal. Universitat Jaume.
WordReference. (11 de 01 de 2015). Word Reference. Obtenido de Word Reference:
http://www.wordreference.com/definicion/conceptualizaci%C3%B3n
http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml
http://es.wikipedia.org/wiki/Algoritmo
http://www.areatecnologia.com/informatica/ejemplos-de-diagramas-de-flujo.html
http://www.uhu.es/04004/material/El_Entorno_DevC.pdf
138