Está en la página 1de 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:
PROBLEMA

DISEO
ALGORITMO

ANALISIS

VERIFICACION

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.

ALGORITMO

ENTRADA DE
DATOS

Algortmica I

Ciclo 2014-2

PROCESO DE
DATOS

Tema01

Ing. G. A. Salinas A.

SALIDA DE
DATOS

Pgina 1 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

Identificador

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

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#

PI
3.14151

Identificador

VectorA
5

Figura 1.4.1a

Figura 1.4.1b

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.

Algortmica I

Ciclo 2014-2

Tema01

Ing. G. A. Salinas A.

Pgina 2 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.

numEnt

numReal

6.75

msge

iGV

saludo

Error20

0.18

Hola

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.

nomAlu

rstdo

vtas

suma

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
**
*
/
DIV
MOD
+
-

O. Aritmtico
en C/C++
pow(x, y)
*
/
NE (no existe)
%
+
-

Prioridad
Jerarqua
Mayor

Menor

Operacion
Potencia
Multiplicacin
Divisin
Divisin Entera
Modulo
Suma
Resta

Ejemplo
4**2
5.25 * 5
5/2
7 DIV 2
8 MOD 3
2.25 + 3.5
5-9

Resultado
16
26.25
2.25
3.0
2
5.75
-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

Algortmica I

Ciclo 2014-2

Tema01

Ing. G. A. Salinas A.

Pgina 3 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
Igual que
Diferente a
Menor que
Menor igual que
Mayor que
Mayor igual que

Ejemplo

Resultado

Hola = ola
X <> Y
2 < 10
4 <= 5
6 > 14
7 >= 11

FALSO
VERDADERO
VERDADERO
VERDADERO
FALSO
FALSO

Operadores Lgicos. Son operadores que nos permiten formular expresiones


complejas a partir de condiciones simples.

Operador
Lgico
NO

O. Lgico
en C/C++
!

&&

||

Operadores
Pseudocodigo
()
**
*, /, DIV, MOD
=, <>, <, <=, >, >=,
NO
Y
O

Prioridad
Mayor

Expresin
Lgica
NO P

P Y Q
Menor

P O Q

Significado
No P
No es cierto que p
Es falso que p
P Q
PyP
P Q
P o Q

Operdadores
en C/C++
()
pow(x, y)
*, /, NE, %
=, !=, <, <=, >, >=
!
&&
||

Prioridad
Mayor

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 4 de 8

La Asignacin es destructiva
A5
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
AA<5
X A Y (9 > = 5)
Al evaluar las variables A y X
toman el valor de VERDADERO,

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:
A2
A A + 10
ESCRIBIR (A) // Se escribe el valor de 12
A5
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 (%e1 %e2 ... %ei ... %eN..., &v1, &v2, ... &vi, .... &vN);

Direccin identificador vi
Especificadores
de formato
Especificadores
de formato

Identificador de la celda de memoria vi donde se


almacena el valor ledo

printf (%e1 %e2 ... %ei ... %eN..., v1, v2, ... vi, .... vN);
Se escribe los contenidos de las variables vi
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
Significado
Lectura
Escritura
Formato
Lee/escribe :
Scanf( )
Printf( )
Un carcter
scanf(%c, &car)
printf(%c, car)
%c
Un entero
scanf(%d, &Ent)
printf(%d, Ent)
%d

Algortmica I

Ciclo 2014-2

Tema01

Ing. G. A. Salinas A.

Pgina 5 de 8

Un nmero en punto flotante


Un nmero hexadecimal
Un apuntador

%f
%x
%p

Entrada (Lectura)

scanf(%f, &Real)
scanf(%x, &Hex)
scanf(%p, &Ap)

printf(%f, Real)
printf(%x, Hex)
printf(%p, Ap)

Operador de Entrada

cin >>v1 >>v2>> ...>>vi,>> .... >>vN;


Operador
Flujo predefinido
de
Entrada

Operador de Salida

Salida (Escritura)
cout << v1<< v2<< ... <<vi<< .... <<vN;

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

Algortmica I

Ciclo 2014-2

Tema01

Ing. G. A. Salinas A.

Pgina 6 de 8

Archivos de cabecera
Estructura de un Programa en C.
#include<...>
#define ...
Declaracin de macros
//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);
}

Funcin principal main ( )

Implementacin de las
funciones prototipo

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

Algortmica I

Ciclo 2014-2

Tema01

Ing. G. A. Salinas A.

Pgina 7 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

Algortmica I

Ciclo 2014-2

Tema01

Ing. G. A. Salinas A.

Pgina 8 de 8

También podría gustarte