You are on page 1of 7

Apuntes de la clase de Programacin

MSc. Jos Colbes

Fecha: 1 de febrero de 2013

Bibliografa:
"THE C PROGRAMING LANGUAGE" Kernighan y Ritchie - Prentice-Hall, Segunda Edicin.
FUNDAMENTOS DE PROGRAMACIN: ALGORITMOS, ESTRUCTURAS DE DATOS Y
OBJETOS" Luis Joyanes Aguilar - McGraw-Hill Cuarta Edicin
CMO PROGRAMAR EN C/C++ Y JAVA Deitel Prentice-Hall Cuarta Edicin.
Algoritmos, programas y lenguajes de programacin
Algoritmo: (del griego y latn, dixit algorithmus y este a su vez del matemtico persa Al-Juarismi,
siglo IX). Enunci paso a paso las reglas para ejecutar las operaciones bsicas en matemticas.
Algoritmo: Conjunto de pasos para resolver un problema. Un algoritmo es un procedimiento
computacional bien definido que toma un conjunto de valores como entrada y produce un
conjunto de valores como salida.
Caractersticas de un algoritmo
Preciso: indicar el orden de realizacin en cada paso.
Definido: si se sigue dos veces, obtiene el mismo resultado cada vez (dudoso)
Finito: tiene un fin. Tiene un nmero determinado de pasos.
Ejemplos de algoritmos de la vida cotidiana
Suma de dos nmeros enteros
Recetas de cocina
Cambiar la rueda de un auto
- Aflojar los tornillos de la rueda pinchada
- Levantar el auto hasta que la rueda pueda girar libremente
- Quitar los tornillos y la rueda pinchada
- Colocar la rueda de repuesto y los tornillos
- Bajar el auto
- Apretar los tornillos
Formas de expresin de un algoritmo
Lenguaje natural
Ejemplo: verificar si un nmero X es primo.
El algoritmo ms sencillo que puede utilizarse para saber si un nmero X es primo es el siguiente:
se divide X entre 2,3,4,5,...,X-1. Si X es divisible por alguno de ellos, no es un nmero primo.
Frmulas
Ejemplo: Hallar las races de
(

Diagramas de flujo

Pseudocdigo
Ejemplo: Suma de dos nmeros
Entrada: a,b nmeros
Salida: s, la suma de a y b
inicio
leer (a,b)
s=a+b
escribir (s)
fin
Programa
#include<stdio.h>
#include<conio.h>
void main()
{
int a, b, s;
printf("Ingrese el primer nmero ");
scanf("%d",&a);
printf("\n\nIngrese el segundo numero ");
scanf("%d",&b);
s=a+b;
printf("\n\nEl resultado de la adicion es: %d",s);
getch();
}
Lenguajes de programacin

Lenguaje de mquina: dependiente del procesador, usa 0 y 1.


Lenguajes de bajo nivel: ensamblador. Difcil de aprender y dependiente de la mquina.
Lenguajes de alto nivel: C, C++, C#, Java, Pascal, Visual Basic, Fortran, otros. Se asemeja
ms al razonamiento humano.

Contadores y acumuladores
CON CON + 1
ACU ACU + X
Diseo de programas
Programacin modular (lgica fcil de seguir)
Programacin estructurada (escritura fcil de comprender)
Reglas de la programacin estructurada
El programa tiene un diseo modular
Los mdulos son diseados de modo descendente.
Cada mdulo se codifica utilizando las tres estructuras de control bsicas.
Obs: en la programacin estructurada no se utiliza la sentencia GOTO.
Estructuras de control en la programacin estructurada
Secuenciales
Selectivas
Repetitivas
El trmino control de flujo (o flujo de control) se refiere al orden en que se ejecutan las sentencias
del programa. A menos que se especifique expresamente, el flujo normal de control de todos los
programas es el secuencial. Este trmino significa que las sentencias se ejecutan en secuencia, una
despus de otra, en el orden en que se sitan dentro del programa.

Accin 1

Accin 2

Accin N
Las estructuras de seleccin, repeticin e invocacin permiten que el flujo secuencial del programa
sea modificado en un modo preciso y definido con anterioridad.
Estructuras selectivas
Si (if)
Segn-sea (switch case)

Sentencia SI (Simple Doble Anidamiento)


Diagrama de Flujo
si ( condicion )
{
Instruccin 1
Instruccin 2

sino
Instruccin 3

Acciones

Condicin

Ejemplo
Determinar si un nmero es par o impar
Anidamiento Ejemplo: Mostrar la calificacin de un alumno a partir del puntaje obtenido en el
examen.
inicio
cls()
imprimir ("Ingrese la nota del alumno: ")
leer (pnt)
si (pnt >= 90)
{
cal = 5
sino si (pnt >= 80)
cal = 4
sino si (pnt >= 70)
cal = 3
sino si (pnt >= 60)
cal = 2
sino
cal = 1
}
imprimir(cal)
fin
Estructuras repetitivas
Hay una gran variedad de situaciones que requieren que una o varias
instrucciones se repitan varias veces, ya sean clculos u otro tipo de
instrucciones. Las estructuras repetitivas abren la posibilidad de realizar una
secuencia de instrucciones ms de una vez. Las ms conocidas son:

Mientras (while)
Repetir (do-while)
Para (for)

Acciones

Conceptos de bucle (lazo) e iteracin


Un bucle, es una seccin de cdigo que se repite. Es decir cuando se termina de ejecutar la ltima
instruccin del conjunto, el flujo de control retorna a la primera sentencia y comienza una nueva
repeticin de las sentencias que forman esa seccin de cdigo. Se denomina iteracin al hecho de
repetir la ejecucin de una secuencia de acciones, la iteracin se asocia a un nmero entero que
indica el nmero de veces que se repite un trozo de cdigo.
Mientras Sintaxis
mientras(condicion)
{
instrucciones
}
Repetir Sintaxis
repetir
{
instrucciones
} hasta(condicin)
Para (o Desde) Sintaxis
para var_control = valor_inicio hasta valor_fin [increment o paso]
{
instrucciones
}

Ejercicios
1. Escribir un algoritmo que obtenga el permetro y rea de un rectngulo, dados la base y la
altura del mismo.
2. Se desea obtener el salario de un trabajador conociendo la cantidad de horas trabajadas,
el salario por hora y la tasa de impuesto (%) que se aplica como deduccin.
3. Desarrollar un algoritmo que permita leer dos valores distintos, determinar cual de los dos
valores es el mayor y escribirlo.
4. Desarrollar un algoritmo que permita leer tres valores y almacenarlos en las variables A, B
y C, respectivamente. El algoritmo debe imprimir el mayor de los valores.
5. Desarrollar un algoritmo que realice la sumatoria de los nmeros enteros comprendidos
entre el 1 y el 10, es decir, 1 + 2 + 3 + . + 10.
6. Describir un algoritmo que permita intercambiar los valores de las variables A y B, a travs
de una variable AUX.
7. Supongamos que se proporciona una secuencia de N nmeros, tales como:

Mediante el contador CON, contar e imprimir el nmero de ceros de la secuencia.


8. Escribir un algoritmo que calcule el promedio de N nmeros.
9. Dado un nmero natural , desarrolle un algoritmo que calcule la sumatoria y el promedio
de los nmeros menores a y que sean mltiplos de 3.

10. Realizar la divisin entre 2 nmeros naturales ( y ) por restas sucesivas, y mostrar el
cociente y el resto de la divisin.
11. Desarrolle un algoritmo que permita determinar a partir de un nmero de das (ingresado
por pantalla), los aos, meses, semanas y das que constituyen el nmero de das
proporcionado.
12. Ingresar nmeros por teclado hasta obtener uno que sea positivo e imprimirlo.
13. Calcular el factorial de un nmero N.
Estructuras de datos
Hasta ahora slo hemos trabajado con variables simples, que nicamente pueden almacenar un
dato. Por ejemplo, al trabajar con listas de nmeros (calificaciones de alumnos de una misma
clase, trabajadores de una empresa, serie de nmeros enteros, etc.), su manejo con variables
simples puede ser un poco imprctico, adems de no considerar el almacenamiento de las
entradas.
Pregunta 1: Cmo podramos ordenar nmeros utilizando variables simples?
Pregunta 2: Cmo saber la cantidad de alumnos con notas mayor al promedio de la clase?
Para salvar estas situaciones, la mayora de los lenguajes de programacin incluyen caractersticas
de estructuras de datos. Una estructura de datos es una coleccin de datos que pueden ser
caracterizados por su organizacin y las operaciones que se definen en ella.
Las estructuras de datos bsicas que soportan la mayora de los lenguajes son los arreglos (arrays)
(siendo el vector un arreglo de una dimensin, y la matriz uno de dos dimensiones). Se dividen en:

Estticas (tamao definido de antemano): arreglos, registros, cadenas


Dinmicas (no tiene limitaciones de tamao): listas (pilas/colas), listas enlazadas, rboles,
grafos.

Un arreglo es una secuencia de posiciones de la memoria central a las que se puede acceder
directamente, que contiene datos del mismo tipo y pueden ser seleccionados individualmente
mediante el uso de subndices.
Podemos considerar al vector como un conjunto de variables simples con datos del mismo tipo.
Ejemplo de vector: Notas de una clase
Nota 1

Nota 2

Nota 3

Nota

Nota

El vector nota tiene subndices o ndices de sus elementos (1, 2, , , , ) que indican la posicin
de un elemento particular dentro del arreglo. Por ejemplo, si se desea modificar el tercer
elemento de un vector de tipo numrico:

nota[3] = 80
Nombre del vector

Posicin del elemento

Matrices

La matriz puede verse como un vector de vectores. Por ello, se necesita especificar dos subndices
para poder identificar cada uno de sus elementos.

Columna
Nombre de la matriz

Fila

You might also like