Vous êtes sur la page 1sur 38

Programacin de computadoras

Investigaciones y estudios recientes proponen diversos conjuntos de habilidades que la educacin debe fomentar para que los estudiantes puedan tener xito en el mundo digital y globalizado en el que van a vivir

Un problema se puede definir como una situacin en la cual se trata de alcanzar una meta y para lograrlo se deben hallar unos medios y unas estrategias. La mayora de problemas tienen algunas cosas en comn: un estado inicial; una meta; un conjunto de recursos y un dominio. En la programacin, la estrategia para resolver problemas es el DESARROLLO DE ALGORITMOS.

En el mbito de la computacin, los Algoritmos son una herramienta que permite describir claramente un conjunto finito de instrucciones, ordenadas secuencialmente y libres de ambigedad, que debe llevar a cabo un computador para lograr un resultado previsible.

Los Algoritmos se puede expresar de muchas maneras, pero se tratarn solo dos formas: Seudocdigo y Diagrama de Flujo. En Seudocdigo la secuencia de instrucciones se representa por medio de palabras en forma de frases o proposiciones, En Diagrama de Flujo se representa por medio de grficos.

Los diagramas se deben dibujar de arriba haca abajo y de izquierda a derecha; Los smbolos de Inicio y Final deben aparecer solo una vez; La direccin del flujo se debe representar por medio de flechas Todas las lneas de flujo deben llegar a un smbolo o a otra lnea; Una lnea de flujo recta nunca debe cruzar a otra. Cuando se crucen, una de ellas debe ir arqueada en el cruce. Se deben inicializar las variables que se utilicen o permitir la asignacin de valores mediante consulta al usuario.

La programacin es un proceso por el cual se escribe mediante un lenguaje de programacin una serie de instrucciones (programa informtico) para que la computadora realice una tarea determinada.

Los programas de ordenador no son entonces ms que mtodos para resolver problemas. Por ello, para escribir un programa, lo primero es saber resolver el problema a tratar.

Entrada

Proceso

Salida

Anlisis del problema


Diseo del algoritmo Implementacin del algoritmo

Prueba y depuracin

Anlisis del problema


Acotar y especificar el problema con total precisin Definir los datos iniciales o de partida Definir que datos o resultados debe proporcionar el algoritmo

Diseo del Algoritmo


Existen diversas maneras de disear un algoritmo:
Diseo descendente: Consiste en descomponer un problema en subproblemas ms sencillos Refinamiento: se refiere a la conversin del primer esbozo/versin del algoritmo en una versin ms detallada y completa Representacin grfica: uso de diagramas de flujo, pseudocdigo diagramas de NassiSchneiderman (N-S)

Implementacin del Algoritmo


Consiste en la codificacin del algoritmo en un programa. Esta codificacin se deber realizar utilizando un determinado lenguaje de programacin

Prueba y depuracin
Una vez realizado el programa se deber ejecutar para comprobar que realmente hace lo que se pretenda, es decir, que no existan errores de codificacin ni errores en el algoritmo.

Definicin del problema


Calcular los porcentajes de hombres y mujeres en un grupo de N deportistas

1. Anlisis del problema


Datos a considerar: Sexo de la persona (S) Nmero de personas del sexo masculino (CM) Nmero de personas del sexo femenino (CF) Total de deportistas (N) Porcentaje de hombres (PM) Porcentaje de mujeres (PF)

Continuamos con el anlisis del problema


Datos de entrada:

Total de deportistas (N) Sexo de la persona (S)

Datos de salida:
Porcentaje de hombres (PM) Porcentaje de mujeres (PF)

Procesos:
Contar la cantidad de personas del sexo masculino (CM = CM + 1) Contar la cantidad de personas del sexo femenino (CF = CF + 1) Calcular el porcentaje de hombres en el grupo (PM = CM/N*100) Calcular el porcentaje de mujeres en el grupo (PF = CF/N*100)

Diseo del algoritmo:


1. 2. 3. 4. 5. 6. Inicio Inicializar en cero el total de personas del sexo masculino: CM 0 Inicializar en cero el total de personas del sexo femenino: CF 0 Inicializar en cero el total de personas procesadas: TP 0 Leer total de deportistas (N) MIENTRAS TP < N 6.1 Leer sexo de la persona (S) 6.2 SI S =M, entonces CM CM + 1 6.3 SI S = F, entonces CF CF + 1 6.4 Incrementar en 1 el contador: TP TP + 1 FIN-MIENTRAS Calcular porcentaje de hombres en el grupo: PM CM/N*100 Calcular porcentaje de mujeres en el grupo: PF CF/N*100 Escribir Porcentaje de hombres en el grupo: , PM Escribir Porcentaje de mujeres en el grupo: , PF Fin

7. 8. 9. 10. 11.

Qu es un lenguaje?
Conjunto de smbolos y palabras (vocabulario o lxico) y conjunto de reglas (sintaxis y semntica) que permiten agrupar los smbolos para formar las frases del lenguaje.

De programacin?
Que sirve para especificar algoritmos sobre un ordenador. Un programa se escribe como una secuencia de frases del lenguaje.

Lenguaje de programacin = Lxico + Sintaxis + Semntica

Conjunto de smbolos que se pueden usar en un lenguaje. Estos smbolos o elementos bsicos del lenguaje, podrn ser de los siguientes:
Identificadores: nombres dados a ciertos elementos de programacin (nombres de variables, tipos, mdulos, etc.). Constantes: datos que no cambiarn su valor a lo largo del programa. Operadores: smbolos que representarn operaciones entre variables y constantes. Instrucciones: smbolos especiales que representarn estructuras de procesamiento, y de definicin de elementos de programacin. Comentarios: texto que se usar para documentar los programas

Consta de unas definiciones, denominadas reglas sintcticas o producciones que especifican la secuencia de smbolos que forman una frase del lenguaje.

Estas reglas dicen si una frase est bien escrita o no.

Define el significado de las construcciones sintcticas del lenguaje y de las expresiones y tipos de datos utilizadas.

Ejemplo:
if (a>b) max := a else max := b; El significado corresponde a la construccin algortmica Si entonces sino Adems la expresin despus de If debe tener un resultado lgico (verdad o falso.)

Lenguajes de bajo nivel:

Son lenguajes totalmente dependientes de la mquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas Es difcil y costoso de programar. Dentro de este grupo se encuentran:
El lenguaje maquina: Consiste en la combinacin de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. El lenguaje ensamblador: es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y nmeros llamadas mnemotcnicos.

Ejemplo: Suma de 3 + 5 en un procesador 8086 (tambin Pentium, Pentium II, )


ENSAMBLADOR CDIGO MQUINA (HEX)

mov ax, 0003 add ax, 0005

B8 03 00 05 05 00

Lenguajes de alto nivel:


Constituyen los lenguajes de programacin ms utilizados. Son lenguajes independientes de la computadora. Un programa escrito en lenguaje de alto nivel puede ser ejecutado en cualquier computadora, siempre que sta disponga del compilador del lenguaje en cuestin. Los programas se escriben y comprenden ms fcil, dada la aproximacin de estos lenguajes con el lenguaje natural. Ejemplos de estos lenguajes son: Pascal, Fortran, C, C++, Java, Ada, Lisp y Prolog.

Ejemplo: Suma de 3 + 5 en C++

x=3+5

Traductores de lenguaje

Intrpretes

Compiladores

Un traductor de lenguaje es un programa que traduce a cdigo de mquina un programa fuente escrito en un lenguaje de alto nivel.

Intrpretes
Un intrprete es un traductor que recibe como entrada un programa fuente, lo traduce y lo ejecuta.

Un intrprete traduce y ejecuta una instruccin en cdigo fuente, a la vez. Los programas interpretados generalmente son ms lentos en ejecucin que los programas compilados.

Programa fuente

Intrprete

Traduccin y ejecucin lnea a lnea

Compiladores
Un compilador traduce un programa fuente escrito en lenguaje de alto nivel al lenguaje de mquina de la computadora. El programa traducido a lenguaje de mquina es almacenado como cdigo objeto.

Programa fuente

Compilador

Programa objeto

Operador

Significado Mayor que Menor que Igual que Mayor o igual que

Cada lenguaje de programacin tiene su propio conjunto de operadores. La jerarqua de los operadores es igual al lgebra, aunque puede alterarse con el uso de parntesis.

Relacionales

> < = >=

<=
&Y

Menor o igual que


Conjuncin (y)

Lgicos

|O
~ NO + * / ^

Disyuncin (o)
Negacin (no) Suma Resta Multiplicacin Divisin Potenciacin

% DIV

Mdulo residuo

Un algoritmo est compuesto por instrucciones de diferentes tipos, organizadas secuencialmente, en forma de estructuras de control.
If Then Else Switch Case

Condicional

Estructuras de Control

Repetitiva

Bucle For Bucle While

Condicional
Son las que incluyen alternativas de seleccin en base al resultado de una operacin booleana, como por ejemplo, una comparacin (A=B). Segn la expresin sea cierta o falsa, se ejecutar un trozo de cdigo u otro.

Representacin del Condicional If


Diagrama de Flujo Pseudocdigo
SI <CONDICIN> ENTONCES

no Condicin
SINO

ACCIN .

si Accin
FIN_SI

Representacin del Condicional Case


Diagrama de Flujo no Pseudocdigo
CASE <CONDICIN> V1: a1

Condicin
1
a1

2
a2 a3

3
a4

V2: a2
V3: a3 V4: a4 ELSE OTRAS

END_CASE

Repetitiva
Consisten en un mtodo que permite repetir un trozo de cdigo varias veces (BUCLES o CICLOS). Hay bsicamente dos tipos:
Bucle FOR: consiste en una sentencia que engloba un grupo de instrucciones y tiene una variable cuyo valor se va modificando en cada vuelta. Bucle WHILE: consiste en un bucle en el que el cdigo se repite hasta que se cumpla alguna condicin booleana (es decir, una expresin que d como resultado verdadero o falso).

Representacin del Repetitivo For


Diagrama de Flujo Pseudocdigo

PARA (exp1; exp2; exp3) A1 A2 FIN PARA

Representacin del Condicional While


Diagrama de Flujo Pseudocdigo
MIENTRAS <CONDICIN> HAGA A1

A2
FIN MIENTRAS

Bucle For

Bucle While

http://www.eduteka.org/modulos.php?catx=9&idSubX=270

Programacin de computadores en edad escolar

http:/ /www. juarbo. com/pseudocodigo-de-programacion/

Fundamentos de programacin / Tcnicas bsicas de programacin

http://www.eduteka.org/AlgoritmosProgramacion.php

Algoritmos y programacin

http://www.wikilearning.com/monografia/fundamentos_de_program acion

Fundamentos de programacin

Vous aimerez peut-être aussi