Sunteți pe pagina 1din 49

Tcnicas de Programacin I

SIS-110

Captulo I
Introduccin a la Programacin
y razonamiento lgico
Ing. Wilfredo Terrazas Quispe
Objetivo

El objetivo fundamental de este captulo es otorgar a


los estudiantes de esta asignatura un material que
cubra los aspectos esenciales del maravilloso mundo
de la programacin.

En este captulo se estudiarn los fundamentos de lo


que es programacin, la herramienta fundamental de
conseguir dichos programas que es la computadora,
asimismo un concepto importante de lo que es la
algoritmia como ciencia y arte de disear algoritmos
para la resolucin de problemas de todo tipo.

Fundamentos de Programacin
1. Introduccin
Qu, son las tcnicas de programacin?
Las tcnicas de programacin es el medio por el cual se escoge de
que forma se creara la secuencia de ordenes lgicas que cumplir
un determinado programa que ser creado.
Es la forma como se desarrollara la ejecucin de un determinado
software y el conjunto de datos que entraran y los resultados que
se mostraran.
Las tcnicas de programacin son variados, y entre las tcnicas se
centran en programacin modular y programacin
estructurada, sin embargo pueden existir otras importantes.

Tambin se dice que las tcnicas de programacin es la


capacidad de resolver problemas a travs de la automatizacin de
procesos computacionales.
Fundamentos de Programacin
Qu, es la computadora?
Mquina electrnica capaz de almacenar informacin y
tratarla automticamente mediante operaciones matemticas
y lgicas controladas por programas informticos.

Tiene la capacidad de procesar gran cantidad de informacin


en tiempos bastante cortos.

Fundamentos de Programacin
Tipos de Computadoras:

Fundamentos de Programacin
Arquitectura de una Computadora.-

Bsicamente se puede decir que


se divide en HARDWARE y
SOFTWARE

Fundamentos de Programacin
Qu son los programas?

Los programas o software es un conjunto de instrucciones


ordenadas para ejecutarse en un computadora de forma rpida y
precisa.

El proceso de escribir un programa se denomina programacin, y


el conjunto de instrucciones que se utilizan para escribir se
denomina lenguaje de programacin.

Fundamentos de Programacin
Qu, es un lenguaje de Programacin?
Sirve para escribir programas y permite la comunicacin entre el
usuario (programador), y la computadora.

Existen tres tipos de lenguajes de programacin:


Lenguaje Maquina: Basada en el lenguaje binario
(programacin Binaria), es difcil de programar y dependiente
de la maquina.
Lenguaje de Bajo Nivel: Usa smbolos nemotcnicos, y
necesita ser traducido al lenguaje de maquina y sigue siendo
dependiente. Un lenguaje caracterstico es el lenguaje
Ensamblador (Assembler).
Lenguaje de Alto Nivel: Cercano al lenguaje natural, el tiempo
de programacin es relativamente corto e independiente de la
maquina.
Fundamentos de Programacin
Evolucin de los lenguajes de programacin:

Fundamentos de Programacin
Evolucin de los lenguajes de programacin:

Fundamentos de Programacin
Traductores de los lenguajes de programacin:
Son programas que traducen los cdigos fuente (Instrucciones
del programa, en un lenguaje de alto nivel), a un cdigo maquina
(binario).

Un traductor es un programa que recibe como entrada cdigo


escrito en un cierto lenguaje y produce como salida cdigo en otro
lenguaje (cdigo maquina).

Los traductores se dividen en:

Compiladores: Traduce el cdigo fuente a programa objeto


(ejecutable cdigo maquina), es de ejecucin rpida.

Interpretes: Traduccin y ejecucin secuencial (lnea a lnea),


produce un ejecucin un tanto lenta.
Fundamentos de Programacin
Traductores de los lenguajes de programacin:
Compiladores:
Un compilador es un programa que permite traducir el cdigo
fuente de un programa en lenguaje de alto nivel, a otro lenguaje de
nivel inferior (tpicamente lenguaje mquina) o a un lenguaje mas
sencillo que la computadora puede comprender mas o menos
directamente. De esta manera un programador puede disear un
programa en un lenguaje mucho ms cercano a como piensa un
ser humano.

Cdigo fuente Cdigo Maquina

Fundamentos de Programacin
Traductores de los lenguajes de programacin:
Intrpretes:
Es un programa que traduce un lenguaje de alto nivel al lenguaje
de mquina de una computadora. El programa siempre permanece
en su forma original (programa fuente) y traduce cuando est en la
fase de ejecucin instruccin por instruccin.
Un ejemplo de lenguaje interpretado es el HTML.

texto comn
texto negrita

Interprete

El software de los exploradores


tienen incluido el Interprete.

Fundamentos de Programacin
Ciclo de vida de un software.-

La construccin de un software por ms pequeo que sea,


involucra las siguientes fases:
Requerimiento: Enunciado del problema a resolver.
Anlisis: Es el Qu?, y es entender el problema (entrada
proceso - salida).
Diseo: Es el Cmo?, (Resolver el problema, algoritmo
diseo de interface de usuario).
Construccin: Es el hacerlo (codificacin - programacin)
Pruebas: Es verificar su funcionalidad.
Instalacin (Despliegue): Es el instalar o distribuir el programa

Fundamentos de Programacin
Ciclo de vida de un software.-

Fundamentos de Programacin
Algoritmo Qu es?.-

Un algoritmo es una sucesin de pasos precisos definidos,


ordenados y finitos que llevan a la solucin de un problema
planteado.

Preciso: Indicar el orden de realizacin en cada paso.

Definido: Repetir el mismo paso N veces y obtener el mismo


resultado.

Finito: Tiene un lmite en la cantidad de pasos definidos en el


algoritmo.

Fundamentos de Programacin
Algoritmo.-

La solucin de un algoritmo debe describir tres partes:

Entrada: Datos que se necesitan para poder ejecutarse.


Proceso: Acciones y clculo a realizar.
Salida: Resultado esperado.

Fundamentos de Programacin
Caractersticas de un Algoritmo.-
Las siguientes caractersticas son las que deben cumplir los
algoritmos.
El algoritmo debe resolver el problema para el que fue
creado: No se acepta algoritmos que no resuelvan el problema
planteado.
Los algoritmos son independientes del lenguaje de
programacin:
Los algoritmos deben ser precisos: Los resultados de los
clculos son exactos.
Los algoritmos son finitos: Deben tener un fin.
Los algoritmos deben de poder repetirse: Deben de permitir
su ejecucin las veces que sea necesario, y ante entradas
idnticas deben producir resultados iguales.
Algoritmos Modificables: Debe permitir que posteriores
modificaciones sean fciles de realizar.

Fundamentos de Programacin
Caractersticas aconsejables para los Algoritmos

Validez: Un algoritmo es valido si carece de errores.

Eficiencia: Un algoritmo es eficiente si obtiene la solucin del


problema en poco tiempo con el mnimo de recursos utilizados.

Optimo: Un algoritmo es ptimo si es el ms eficiente y no


contiene errores.

Fundamentos de Programacin
Fases en la creacin de algoritmos.-

Existen tres fases o seguir en la elaboracin de algoritmos:

Anlisis: En esta se determina cual es exactamente el


problema a resolver. Qu datos son parte de la entrada del
algoritmo y cuales debern obtenerse como datos de salida.
Diseo: Elaboracin del algoritmo haciendo uso de una de las
herramientas de algoritmos.
Prueba: Comprobacin del resultado, se observa si el algoritmo
obtiene las salidas esperadas para cada entrada realizada.

Fundamentos de Programacin
Ejemplos de Algoritmos:

Fundamentos de Programacin
Herramientas de un Algoritmo.-

Para mostrar una solucin se necesita de herramientas


conceptuales antes de la generacin de los programas, entre estas
herramientas se tiene:

DIAGRAMAS DE FLUJO

DIAGRAMA NASSI SCHNEIDERMAN

PSEUDOCDIGO

Fundamentos de Programacin
Herramientas de un Algoritmo.-

Diagrama de Flujo:

Un diagrama de flujo es una representacin grfica que utiliza


smbolos (objetos) normalizados, y expresa las sucesivas
instrucciones que se debe realizar para resolver un problema. Es
una de las herramientas ms utilizadas a la hora de definir
algoritmos para su posterior codificacin y generacin de un
programa.

Fundamentos de Programacin
Herramientas de un Algoritmo.-
Diagrama de Flujo - smbolos:

Inicio/Fin Conectores

Entrada de datos Flujos de Datos

Proceso Entrada por teclado

Imprimir datos de salida


Decisin

Sub Algoritmo Almacenamiento de datos

Fundamentos de Programacin
Herramientas de un Algoritmo.-
Diagrama de Flujo - Ejemplo:
Suma de dos nmeros
INICIO

N1, N2: Entero


Suma: Entero

Leer N1 y N2

Suma N1 + N2

Suma

FIN

Fundamentos de Programacin
Herramientas de un Algoritmo.-
Diagrama Nassi

Un diagrama Nassi-Schneiderman es una representacin grfica


de un algoritmo para programacin estructurada. Desarrollados en
1972 por Isaac Nassi y Ben Schneiderman, estos diagramas
tambin son conocidos como estructogramas debido a que
muestran las estructuras de un programa.

Siguiendo un diseo de arriba a abajo, el problema en cuestin es


reducido en subproblemas cada vez menores. Los diagramas
Nassi-Schneiderman reflejan esta descomposicin de una forma
clara y simple, usando cajas anidadas para representar
subproblemas.

Fundamentos de Programacin
Herramientas de un Algoritmo.-
Diagrama Nassi - Ejemplo

Fundamentos de Programacin
Herramientas de un Algoritmo.-
Pseudocdigo.-
Permite expresar las instrucciones en un lenguaje comn (espaol, ingles, u otro),
para facilitar la escritura como la lectura de la solucin de un programa.

Bsicamente no existe regla alguna para escribir un pseudocdigo.

Ejemplo: rea de una circunferencia

INICIO
pi=3.1416 : real
radio: real
area: real
Leer el radio
area = pi*radio*radio
mostrar area
FIN

Fundamentos de Programacin
Instrucciones.-

Las instrucciones son las acciones que debe realizar un


algoritmo para resolver un problema.

Entre estas instrucciones ms conocidas se tiene:

Instrucciones de Inicio / Fin


Instrucciones de asignacin
Instrucciones de lectura
Instrucciones de escritura
Instrucciones de decisin

Fundamentos de Programacin
Identificadores.-

Son los nombres que se asigna a las variables, constantes, funciones, objetos
entre otros y no pueden coincidir con las palabras reservadas que tiene un
determinado lenguaje de programacin, porque sera ambiguo y el compilador
no lo entendera.
Por lo general los identificadores tendran cumplir las siguientes reglas.

Deben comenzar por una letra. Evite utilizar , y tilde.


No debe coincidir con palabras con palabras reservadas del lenguaje de
programacin que se este utilizando.

Ejemplo: En el lenguaje C++

int numero; //Se permite

int float; //ERROR

Fundamentos de Programacin
Tipos de Datos.-

Los tipos de datos nos permiten representar los diferentes datos que son
necesarios a la hora de implementar un programa.

Con esto se indica a la computadora que tipos de valores se permiten a la


hora de crear el programa.

Por ejemplo, si escribimos un programa sencillo que sume, reste, multiplique


y divida (una calculadora bsica) ser necesario emplear tipos de datos
numricos que pueden ser : enteros o flotantes.

Entre los tipos de datos primitivos podemos mencionar a los:


Enteros
Reales
Carcter
Lgico

Fundamentos de Programacin
Tipos de Datos.-
Clasificacin: Tipos Numricos

Tipo de Nmero de
Descripcin Rango
Dato bytes tpico
short Entero corto 2 -32768 a 32767
-2147483648
int Entero 4
a +2147483647
-2147483648
long Entero largo 4
a +2147483647

Fundamentos de Programacin
Tipos de Datos.-
Clasificacin: Tipos Numricos

Nmero de
Tipo de Dato Descripcin Rango
bytes tpico

signed short Entero corto 2 -32768 a 32767

unsigned short Entero corto sin signo 2 0 a 65535

signed int Entero 4 -2147483648 a +2147483647

unsigned int Entero sin signo 4 0 a 4294967295

signed long Entero largo 4 -2147483648 a +2147483647

unsigned long Entero largo sin signo 4 0 a 4294967295

signed char Carcter 1 -128 a 127

unsigned char Carcter sin signo 1 0 a 255

Fundamentos de Programacin
Tipos de Datos.-
Clasificacin: Tipos Numricos

Nmero
Tipo de Dato Descripcin de bytes Rango
tpico

Positivos: 3.4E-38 a 3.4E38


Real (Nmero en
float 4 Negativos: -3.4E-38 a -
coma flotante)
3.4E38

Real Positivos: 1.7E-308 a


doble(Nmero en 1.7E308
double 8
coma flotante de Negativos: -1.7E-308 a -
doble precisin) 1.7E308

Positivos: 3.4E-4932 a
1.1E4932
long double Real doble largo 10
Negativos: -3.4E-4932 a -
1.1E4932

Fundamentos de Programacin
Tipos de Datos.-
Clasificacin: Carcter, lgico

Tipo de Nmero de
Descripcin Rango
Dato bytes tpico
char Carcter 1 -128 a 127
Carcter
wchar_t 2 0 a 65535
Unicode

Tipo Nmero
de Descripcin de bytes Rango
Dato tpico
Dato de tipo
bool 1 0, 1
lgico

Fundamentos de Programacin
Qu son las variables?.-
Representan un espacio en memoria RAM que guarda un valor que servir
para algn proceso en particular, dicho valor puede ser modificado en
cualquier momento.

Las variables tienen un identificador (nombre), y asignado el tipo de dato que


se esta utilizando.

D. Flujo - Pseudocodigo C++


N : Entero int N;
X : Real float X;
Letra : Carcter char Letra;
A : Entero int A;
A 10 A = 10;
C : Carcter char C;
C @ C = @

Fundamentos de Programacin
Qu son las constantes?.-
Representan un espacio en memoria RAM que guarda un valor que servir
para algn proceso en particular, dicho valor permanece fijo, es decir no
puede cambiar su valor en la ejecucin del algoritmo o el programa.

Las constantes al igual que en las variables tienen un identificador (nombre),


y asignado el tipo de dato que se esta utilizando.

D. Flujo - Pseudocodigo C++


PI 3,1416 : Real const float PI = 3.1416;

Fundamentos de Programacin
Operadores.-

Son los que permiten realizar los clculos entre valores fijos y
variables.

Los operadores se clasifican en :

Operadores Aritmticos.
Operadores Relacionales.
Operadores Lgicos.
Operadores de Cadena.

Fundamentos de Programacin
Operadores Aritmticos.-

Son aquellas que permiten realizar las operaciones aritmticas de


la misma manera como se lo realiza en el rea matemtica.

Operador Operador
Nombre Ejemplo Descripcin
Algoritmo C++
+ + Suma 5+6 Suma dos nmeros
- - Substraccin 7-9 Resta dos nmeros
* * Multiplicacin 6*3 Multiplica dos nmeros
/ / Divisin 6/4 Divide dos nmeros
^ Potencia 2^3 Es la potencia, en el ejemplo el resultado es 8.
Mdulo: el resto
Devuelve el resto de dividir ambos nmeros, en
Mod % despus de la 7%2
este ejemplo el resultado es 1
divisin
++ ++ Incremento. a++ Suma 1 al contenido de una variable.
-- -- Decremento. a-- Resta 1 al contenido de una variable.

Fundamentos de Programacin
Operadores Relacionales.-

Llamadas tambin operadores de comparacin, y permite evaluar


si dos valores guardan alguna relacin entre si.

Operador Operador
Descripcin
Algoritmo C++
= == " Igual a" devuelve 'Verdadero' si los operandos son iguales
<> != " No igual a" devuelve 'Verdadero' si los operandos no son
iguales
> > " Mayor que" devuelve 'Verdadero' si el operador de la
izquierda es mayor que el de la derecha.
>= >= " Mayor o igual que " devuelve 'Verdadero' si el operador de
la izquierda es mayor o igual que el de la derecha.
< < " Menor que" devuelve 'Verdadero' si el operador de la
izquierda es menor que el de la derecha.
<= <= "Menor o igual que" devuelve 'Verdadero' si el operador de la
izquierda es menor o igual que el de la derecha.

Fundamentos de Programacin
Operadores lgicos.-

Son aquellos operadores que se utilizan en combinacin con los


operadores de comparacin.

Operador Operador
Descripcin
Algoritmo C++
AND - Y && " Y " Devuelve Verdadero si ambos operadores son true.
OR - O || " O " Devuelve Verdadero si uno de los operadores es true.
"No" Devuelve Verdadero si la negacin del operando es
NOT - NO !
Verdadero.

Fundamentos de Programacin
Jerarqua de Operadores.-

La jerarqua de operadores se aplica a la hora de uso de estos en


el orden y prioridad que corresponde.

Operadores Descripcin
( ) Parntesis
^ % Potencia, y Modulo
* / Multiplicacin , Divisin
+ - Suma, Resta
== Igual
<= Menor o Igual
>= Mayor o Igual
!= No es Igual
NOT NO lgico
AND Y Lgico
OR O lgico

Fundamentos de Programacin
Expresiones.-

Las expresiones son el uso de los operadores, en valores


concretos, la cual segn sea el caso existe una combinacin de
uso de operadores, lo cual nos lleva a obtener un resultado.

Fundamentos de Programacin
Ejemplos de Expresiones.-

Matemticos:

5 * 3 = 15
8 / 3 = 2.6667
8 \ 3 = 2 (Divisin Entera)
2 + 10.5 = 12.5
52=3
3 ^ 3 = 27
6%3=0

Fundamentos de Programacin
Ejemplos de Expresiones.-

Relacionales:

5 == 3 (Falso)
3 == 3 (Verdadero)
15 < 5 (Falso)
20 >= 20 (Verdadero)
7 != 2 (Verdadero)

Fundamentos de Programacin
Ejemplos de Expresiones.-

Lgicos:
Para tener un conocimiento real al trato de estos operadores
es importante conocer las tablas lgicas de verdad.

AND V F OR V F
V V F V V V
F F F F V F

NOT
V F
F V

Fundamentos de Programacin
Ejemplos de Expresiones.-

Lgicos:
Para tener un conocimiento real al trato de estos operadores
es importante conocer las tablas lgicas de verdad.

(3<5) AND (7=7) ((2 <> 2)OR(3 < 4)) AND (3 = 1)

V V F V F

V V

Fundamentos de Programacin
Ejercicios.-

Fundamentos de Programacin
GRACIAS

Fundamentos de Programacin

S-ar putea să vă placă și