Anda di halaman 1dari 8

Algortmica I Ciclo 2014-2 Tema01 Ing. G. A. Salinas A.

Pgina 1 de 8
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Facultad de Ingeniera Sistemas e Informtica
Curso: ALGORITMCA I
Prof. G. A. Salinas A

1. ALGORITMICA
1.1 Introduccin
El objetivo del currso es resolver problemas de tipo algoritmico aplicando el razonamiento basado en la
logica lo cual requiere de una analisis profundo y sistematico del problema para alcanzar la solucion.
La finalidad es ensenar a pensar, analizar y resolver porblemas mediante la abstraccion. Abstraccion
es simplemente, dado un problema de la realidad, determinar o identificar los elementos o datos que
intervienen en esa realidad que nos permitan resolver el problema.
Todo lo anterior esta basado en los cuatro pilares de la educacion que son el saber conocer, saber hacer,
saber ser y saber convivir lo que significa respectivanmente adquirir contenidos concepttuales como
instrumentos de comprension, contenidos procedimentales, contenidos actitudinales personales op
competencias especificas y contenidos actitudinales sociales que permite participar y cooperar con los
demas.

1.2 Problemas y los algoritmos
Desde sus inicios el hombre ha efectuado una serie de pasos, procedimientos o acciones que le han
permitido resolver un problema o alcanzar un resultado. Diariamente en nuestra vida realizamos una
serie de pasos y procedimientos para calzar un par de zapatos, para vestirse, para cambiar un
neumtico al automvil los cuales nos permiten alcanzar un resultado, pues continuamente estamos
realizando una serie de pasos y acciones en realidad estamos aplicando un ALGORITMO para
resolver un problema.

Problema. Para resolver un problema lo primero que debe hacerse es un anlisis, luego se
construye el algoritmo y finalmente se verifica si el algoritmo resuelve el problema, si no se alcanza
un feliz termino debe continuarse otra vez desde el anlisis. Vase el esquema:










Algoritmo. Es un conjunto de pasos, procedimientos o acciones que nos permite resolver un
problema o alcanzar un resultado. Los algoritmos constan de tres partes:
Datos de Entrada. Representa la operacin que permite el ingreso de datos del problema, esto
es, la rutina de LECTURA de los datos.
Proceso de Datos. Representa la operacin o conjunto de operaciones para obtener la solucin
del problema, esto es, la rutina del PROCESO de calculo.
Salida de Datos. Representa la operacin o conjunto de operaciones que permiten mostrar o
comunicar los resultados, esto es, la rutina de ESCRITURA.









PROBLEMA
ANALISIS DISEO
ALGORITMO
VERIFICACION
ALGORITMO
ENTRADA DE
DATOS
PROCESO DE
DATOS
SALIDA DE
DATOS
Algortmica I Ciclo 2014-2 Tema01 Ing. G. A. Salinas A. Pgina 2 de 8



Los algoritmos deben tener las siguientes caractersticas:
Precisin. Los pasos a seguir por el algoritmo deben ser precisados claramente.
Determinismo. Para un mismo conjunto de datos de ENTRADA, el algoritmo debe dar los
mismos resultados.
Finitud. Independiente de la complejidad, los pasos del algoritmo deben ser de longitud
FINITA.

1.3 Conceptos Bsicos
Para escribir un algoritmo primero debemos saber algunos conceptos que se emplean en l, por
ejemplo debemos saber identificar y definir variables o constantes, con el tipo de dato utilizado, si se
trata de expresiones aritmticas, lgicas y los operadores que utilizan, por ltimo la asignacin
1.3.1 Tipos de Datos
Los datos a procesar pueden ser Simples o Estructurados
Simples. La principal caracterstica es que ocupan una sola celda de memoria, esto
es, una variable simple hace referencia a un solo valor a la vez. Por ejemplo:
CARACTERES, ENTEROS, REALES y BOLANOS y ENUMERADOS, vase
figura 1.4.1a. Los tipos de datos simples pueden Numricos, Alfanumricos y
Booleanos, veamos:
o Datos Numricos. Aqu se encuentran los ENTEROS y los REALES estos
nmeros pueden estar precedidos del signo (+) o (-) y no tienen parte decimal.
ENTEROS: 12, -12, 123, 566, 999, 9,
REALES: 0.18, 12.34, -34.55, 9.9999, 3.141516

o Datos Alfanumricos. Aqu encontramos los tipos CARCTER, son datos
cuyo contenido pueden ser letras del abecedario (ABC ..,YZ abc ...yz), los dgitos (0,
1, 2, ..., 9) o los smbolos de puntuacin o especiales (, #, $, %, *, -, _, , ?, ...) y que
van encerrados entre comillas simples. Debemos presente aunque los datos sean
nmeros no podemos utilizarlos para operaciones aritmticas.
A, z, _, &, 8, O, F, m, , x, W

o Datos Lgicos. Aqu encontramos a los booleanos, son datos que solo
pueden tomar dos valores VERDADERO (true) y FALSO (false)

Estructurados. Los datos estructurados se caracterizan porque con un solo nombre
(identificador) se hace referencia a un grupo de casillas de memoria , vase figura 1.4.1b.
Un dato estructurado tiene varios componentes y que dicho componente puede un dato
simple o un dato estructurado. Por ejemplo: Arreglos, Cadenas de caracteres y Registros.
o Los datos tipo cadena de caracteres contienen un conjunto de datos
alfanumricos. La longitud depende del lenguaje de programacin. Generalmente se
designa dichas cadenas entre comillas dobles.
IGV, Nombre_Alu, 9999-9965, MariaLaO, MX-99#








1.3.2 Identificadores constantes y variables
Los datos a procesar ya sea simples o estructurados deben ser declarados y definidos y por
tanto almacenarse en celdas de memoria con un nombre que permite su identificacin para su
tratamiento.
Identificador
3.14151
PI
5
X Identificador
5 1 3 7 4
VectorA
Figura 1.4.1a Figura 1.4.1b
Algortmica I Ciclo 2014-2 Tema01 Ing. G. A. Salinas A. Pgina 3 de 8
Identificadores. Se llaman as al nombre que se dan a las celdas de memoria. Un
identificador se construye de acuerdo a las siguientes reglas (pueden variar dependiendo
del lenguaje):
o El primer carcter que forma un identificador debe ser una letra: (ABC... YZ,
abc... yz).
o Los dems caracteres pueden letras (ABC... YZ, abc... yz), dgitos (123...89)
o el carcter especial _ (underscore)
o La longitud del identificador puede ser desde 1 carcter hasta 7 caracteres en
la mayora de lenguajes, hasta 27 en los lenguajes Pascal y C e ilimitado en Java.
Ejemplos:
Suma Acumula M_19 Tema_01 X
Constantes. Son datos que no cambian durante la ejecucin de un programa. Para
declararlas o definirlas utilizaremos un nombre de constante que lgicamente es un
identificador y por tanto debe cumplir las reglas para un identificador ha definido
anteriormente. Existen tantos tipos de constantes como tipos de datos existan. Por
ejemplo: Enteros, reales, carcter, cadena de caracteres, booleanos, etc.





Variables. Son datos que puede cambiar su valor durante la ejecucin de un
programa. Igual como en el caso anterior para nombrar utilizaremos un identificador y que
pueden ser tantos tipos de variables como tipos de datos existan.







1.3.3 Operadores Aritmticos
Las operaciones aritmticas se realizan con los operadores aritmticos y los operandos que
pueden ser nmeros, constantes o variables, el resultado de esta operacin ser un nmero.

Operador
Aritmtico
O. Aritmtico
en C/C++
Prioridad
Jerarqua
Operacion Ejemplo Resultado
** pow(x, y) Mayor Potencia 4**2 16
* * Multiplicacin 5.25 * 5 26.25
/ / Divisin 5/2 2.25
DIV NE (no existe) Divisin Entera 7 DIV 2 3.0
MOD % Modulo 8 MOD 3 2
+ + Suma 2.25 + 3.5 5.75
- - Menor Resta 5 - 9 - 4

Las reglas para resolver una expresin aritmtica de acuerdo las de acuerdo a la prioridad de
los operadores es la siguiente:
o Si una expresin contiene subexpresiones entre parntesis stas se evalan primero,
respetando la prioridad de cada operador aritmtico en cada sub expresin. Si hubiera
anidamiento de sub expresiones aritmticas la operacin se iniciara con la sub expresin
anidada mas interna.
o Las operadores aritmticas se aplican teniendo en cuenta la prioridad de los
operadores y de izquierda a derecha.

1.3.4 Expresiones Lgicos
Las expresiones lgicas o booleanas, estn constituidas por nmeros, constantes o variables y
operadores lgicos o relacionales. El valor que pueden estas expresiones es de VERDADERO
5
numEnt
6.75
numReal
Error20
msge
0.18
iGV
Hola
saludo
0
X

nomAlu
0
rstdo
0
vtas
0
suma
Algortmica I Ciclo 2014-2 Tema01 Ing. G. A. Salinas A. Pgina 4 de 8
o FALSO. Se utilizan generalmente en las estructuras de control selectivas y repetitivas,
dependiendo del valor del resultado de la evaluacin se ejecuta una determina accin.
Operadores Relacionales. Son operadores que permiten comparar dos operandos.
Los operandos pueden ser nmeros, constantes o variables. Si se tuviera expresiones con
operadores relacionales el resultado de la evaluacin siempre ser VERDADERO o
FALSO.


Operador
Relacional
O. Relacional
en C/C++
Operacin Ejemplo Resultado
= == Igual que Hola = ola FALSO
<> != Diferente a X <> Y VERDADERO
< < Menor que 2 < 10 VERDADERO
<= <= Menor igual que 4 <= 5 VERDADERO
> > Mayor que 6 > 14 FALSO
>= >= Mayor igual que 7 >= 11 FALSO




Operadores Lgicos. Son operadores que nos permiten formular expresiones
complejas a partir de condiciones simples.


Operador
Lgico
O. Lgico
en C/C++
Prioridad Expresin
Lgica
Significado
NO ! Mayor NO P No P
No es cierto que p
Es falso que p
Y && P Y Q P Q
P y P
O | | Menor P O Q P Q
P o Q



Operadores
Pseudocodigo
Operdadores
en C/C++
Prioridad
( ) ( ) Mayor
** pow(x, y)
*, /, DIV, MOD *, /, NE, %
=, <>, <, <=, >, >=, =, !=, <, <=, >, >=
NO !
Y &&
O | | Menor



1.3.5 La Asignacin
La asignacin se utiliza para asignar valores o expresiones a una variable, tambin se dice que
es el modo de almacenar valores en una variable. Recuerde que al declarar una variable
estamos separando una celda o espacio de memoria por eso el termino almacenar. Su
formato o sintaxis:

Nombre_variable expresin
Donde:
Expresin puede ser un nmero, constante o variable

Algortmica I Ciclo 2014-2 Tema01 Ing. G. A. Salinas A. Pgina 5 de 8







1.4 Entrada y Salida de Datos o Informacin
Los procesos o clculos que realizan las computadoras requieren necesariamente de datos de
ENTRADA y que luego se convertirn en resultados o datos de SALIDA. Las operaciones de
ENTRADA permiten leer determinados datos o valores y asignarlos a determinadas variables
Los datos de ENTRADA se introducen a travs de los dispositivos de entrada (teclado, discos, etc.).y
es la operacin de LECTURA. Su formato o sintaxis es el siguiente:
LEER(Lista de parmetros de entrada)
Ejemplo:
LEER(A) //Se lee un valor y se asigna a la variable A
LEER(B, C) //Se lee dos valores y son asignados a B y C respectivamente

Los datos de SALIDA se operan a travs de los dispositivos de SALIDA (pantalla, impresora, etc.) y
es la operacin de ESCRITURA. Su formato o sintaxis es el siguiente:
ESCRIBIR(Lista de parmetros de entrada)
Ejemplo:
A 2
A A + 10
ESCRIBIR (A) // Se escribe el valor de 12
A 5
B 83
ESCRIBIR(A, B) // Se escriben los valores 5 y 83

La funcion scanf ( ) (lectura)
La funcin scanf ( ) lee en las variables a las apuntan los argumentos que siguen a los especificadores de
formato. Los especificadores de formato se emparejan por orden de izquierda a derecha. El nmero de
especificadores y de argumentos debe ser el mismo. Sintaxis:




scanf (%e
1
%e
2
... %e
i
... %e
N
..., &v
1
, &v
2
, ... &v
i
, .... &v
N
);








printf (%e
1
%e
2
... %e
i
... %e
N
..., v
1
, v
2
, ... v
i
, .... v
N
);



La funcin printf ( ) (escritura)
La funcin printf ( ) devuelve el numero de caracteres escritos, esto es, escribe el contenido de las celdas de
memoria identificadas con vi.
Especificador de
Formato
Significado
Lee/escribe :
Lectura
Scanf( )
Escritura
Printf( )
%c Un carcter scanf(%c, &car) printf(%c, car)
%d Un entero scanf(%d, &Ent) printf(%d, Ent)
La Asignacin es destructiva
A 5
A 99
A 2
Al ejecutarse, A ser 2 los valores
5 y 99 han desaparecido o
destruidos

La Asignacin se hace en dos
pasos:
B A + 99
Primero se evala el lado derecho
con A = 2 y el resultado 101 se
asigna a B, en la celda de memoria
llamada B est el valor 101

La Asignacin es destructiva
A A < 5
X A Y (9 > = 5)

Al evaluar las variables A y X
toman el valor de VERDADERO,

Especificadores de formato
Especificadores de formato
Direccin identificador v
i
Identificador de la celda de memoria v
i
donde se
almacena el valor ledo
Se escribe los contenidos de las variables v
i
Algortmica I Ciclo 2014-2 Tema01 Ing. G. A. Salinas A. Pgina 6 de 8
%f Un nmero en punto flotante scanf(%f, &Real) printf(%f, Real)
%x Un nmero hexadecimal scanf(%x, &Hex) printf(%x, Hex)
%p Un apuntador scanf(%p, &Ap) printf(%p, Ap)






Entrada (Lectura)

cin >>v
1
>>v
2
>> ...>>v
i
,>> .... >>v
N
;



Salida (Escritura)
cout << v
1
<< v
2
<< ... <<v
i
<< .... <<v
N;




Elementos del Lenguaje C.

Un programa en C es una secuencia de caracteres que se agrupan en componentes lxicos (tokens) que
comprenden el vocabulario bsico del lenguaje. Estos componentes son las palabras reservadas, los
identificadores, constantes, operadores y signos de puntuacin

CARATERES.
Los caracteres que se pueden utilizar para construir elementos del lenguaje son:
A b c ...z A B C ... Z 0 1 2 3 ...9
+ - * / () {} [] <> @ % $ & = . , | \

COMENTARIOS
// Comentario de lnea
/* comentario
* de
* varias
* lneas
*/
IDENTIFICADORES


PALABRAS RESERVADAS













Operador de Entrada
Operador de Salida
Operador de
Entrada
Flujo predefinido
Algortmica I Ciclo 2014-2 Tema01 Ing. G. A. Salinas A. Pgina 7 de 8





Estructura de un Programa en C.
#include<...>

#define ...

//Prototipos de funciones

//declaraciones globales

int main()
{
//Variables locales
//cuerpo de la funcin main
...
system(pause);
return(0);
}
void F1()
{
//Variables locales
//Cuerpo de la funcin
}
char F2()
{
//Variables locales
//Cuerpo de la funcin
return( C);
}
int F3()
{
//Variables locales
//Cuerpo de la funcin
return(i);
}
float F4()
{
//Variables locales
//Cuerpo de la funcin
return(F);
}

.....

int FN()
{
//Variables locales
//Cuerpo de la funcin
return( N);
}






Archivos de cabecera
Declaracin de macros
Funcin principal main ( )
Implementacin de las
funciones prototipo
Algortmica I Ciclo 2014-2 Tema01 Ing. G. A. Salinas A. Pgina 8 de 8
BIBLIOGRAFA.

JOYANES AGUILAR, Luis
2003 FUNDAMENTOS DE PROGRAMACIN. Algoritmos, estructuras de datos y objetos. McGraw
HILL. Madrid

JOYANES AGUILAR, Luis y ZAHONERO MARTINEZ, Ignacio
2005 PROGRAMACIN EN C Metodologa, Algoritmos y Estructuras de Datos. McGraw HILL.
Madrid

CAIRO BATTISTUTTI, Osvaldo
1995 METODOLOGIA DE LA PROGRAMACIN. Algoritmos, diagramas de flujo y programas.
Alfaomega Grupo Editor S.A. Mxico, D. F. Tomo 1

Anda mungkin juga menyukai