Sunteți pe pagina 1din 14

Introducción a la Programación

INTRODUCCIÓN A LA PROGRAMACION

CAPITULO 1.
CONCEPTOS BÁSICOS.
1. Introducción.
Se pueden utilizar muchos lenguajes para programar una computadora. El más básico es el
lenguaje de maquina una colección de instrucciones muy detallada que controla los circuitos y
envió de señales de la maquina. Este es el dialecto natural de la maquina. Muy pocos
programas se escriben actualmente en lenguaje de maquina por dos razones importantes:
primero, porque el lenguaje de maquina es muy incomodo para trabajar y segundo por que la
mayoría de las maquinas se pide programar en diversos tipos de lenguajes que son lenguajes
de alto nivel, cuyas instrucciones son más compatibles con los lenguajes y la forma de pensar
humanos como los es el lenguaje C que además es de propósito general.
Debido a que los programas diseñados en este lenguaje se pueden ejecutar en cualquier
maquina, casi sin modificaciones. Por tanto el uso del lenguaje de alto nivel ofrece tres ventajas
importantes: sencillez, uniformidad y portabilidad.

2. DEFINICIONES:
1. Software (Programas): Las operaciones que debe realizar el hardware son
especificadas por una lista de instrucciones, llamados programas o software. El
software se divide en dos grandes grupos:
2. Software del sistema: Es el conjunto de programas indispensables para que la
máquina funcione, ejemplo: el sistema operativo, editores de texto, compiladores e
intérpretes y los programas de utilidad (utilitarios).
3. Software de aplicación: Son programas que realizan tareas concretas, tales como,
nóminas, contabilidad, análisis estadísticos, etc. También se le conoce como
"paquetes".
4. Lenguaje de programación: Sistema de símbolos y reglas que permite la construcción
de programas con los que la computadora puede operar así como resolver problemas
de manera eficaz. Estos contienen un conjunto de instrucciones que nos permiten
realizar operaciones de entrada / salida, calculo, manipulación de textos, lógica /
comparación y almacenamiento / recuperación.

Lenguajes de programación:
Los lenguajes de programación se clasifican en:

Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente entendibles por la
computadora y no necesitan traducción posterior para que la CPU pueda comprender y
ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la
unidad de memoria más pequeña el bit (dígito binario 0 ó 1).

Oswaldo Achury Pag 1/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Introducción a la Programación

Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en


códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones
simbólicas.

Lenguaje de Alto Nivel: Son aquellos en los que las instrucciones o sentencias a la
computadora son escritas con palabras similares a los lenguajes humanos (inglés) que facilita
la escritura y comprensión para el programador. Este lenguaje es independiente de la
estructura del computador (Hardware), es decir son transportables. Los programas hechos en
este lenguaje se les conoce como programa fuente y se requiere de un traductor (programa)
llamado compilador para que el programa fuente se transforme a código máquina; a este
programa transformado se le conoce como programa objeto; al proceso de traducción se le
conoce como compilación; luego es requerido de un linkado o enlace para que el programa sea
ejecutable.

Algoritmo. La palabra algoritmo se deriva de la traducción al latín de la palabra árabe


alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre
manipulación de números y ecuaciones en el siglo IX.
La solución a cualquier problema de cómputo involucra la ejecución de una serie de acciones
en orden especifico. Un procedimiento para resolver un problema en términos de:
a) Las acciones a ejecutarse y b) el orden en el cual estas acciones deben ejecutarse se llama
algoritmo.
Un ejemplo de un algoritmo para llegar a la escuela
a) Salir de la cama
b) Quitarse la pijamas
c) Darse un baño
d) Vestirse
e) Desayunar
f) Arreglarse
g) Tomar los útiles
h) Utilizar el transporte ( autobús, carro , bicicleta, etc)

Programa.
Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de
acuerdo con los datos que se estén procesando.
Es un algoritmo desarrollado para ser utilizado por la computadora.
Expresión de un algoritmo en un lenguaje preciso que puede llegar a entender una
máquina de cómputo.

3. DIAGRAMAS DE FLUJO
Es una representación gráfica de un algoritmo. Los símbolos utilizados han sido
normalizados por el Instituto Norteamericano de Normalización (ANSI) y las mas
frecuentemente empleados son:

Oswaldo Achury Pag 2/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Introducción a la Programación

SIMBOLO DESCRIPCION
Indica el inicio y el final de nuestro diagrama de
flujo.

Indica la entrada y salida de datos.

Símbolo de proceso y nos indica la asignación de


un valor en la memoria y/o la ejecución de una
operación aritmética.
Símbolo de decisión indica la realización de una
comparación de valores.

Repetitiva Desde o Ciclo

Conector

Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización
(ANSI).
. Todo diagrama debe tener un inicio y un fin.
. Se deben se usar solamente líneas de flujo horizontales y/o verticales.
. Se debe evitar el cruce de líneas utilizando los conectores.
. Se deben usar conectores solo cuando sea necesario.
. No deben quedar líneas de flujo sIn conectar.
. Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de
izquierda a derecha.
. Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de
muchas palabras.
. Evitar la terminología de un lenguaje de programación o maquina.
. Utilizar comentarios ya sea al margen o mediante el símbolo grafico comentarios para que
este sea entendible por cualquier persona que lo consulte.
. Si el diagrama abarca mas de una hoja es conveniente enumerarlo e identificar de donde
viene y a donde se dirige.

Pseudocódigo
Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se
emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En
esencia, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.
Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a
un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.
El pseudocódigo se concibió para superar las dos principales desventajas del Diagrama de
Flujo: el diagrama de flujo es lento de crear y difícil de modificar sin un nuevo redibujo. Por otra
parte el pseudocódigo es mas fácil de utilizar ya que es similar al lenguaje natural.

Oswaldo Achury Pag 3/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Introducción a la Programación

El pseudocódigo requiere de ciertos símbolos que ya tienen significado preciso y establecido a


los que se les conoce como palabras clave. Es necesario que exista una palabra clave para la
selección y otra para la iteración condicional, así como para las instrucciones adicionales y
otras estructuras de control.

4 FASES PARA LA PROGRAMACION POR COMPUTADOR

Este proceso es la creación de un programa y su correspondiente ejecución aunque requieren


de una serie de pasos siguientes:

1. Análisis del problema


Podríamos resumir a responderse a las tres siguientes preguntas:
a. ¿Qué entradas se requieren? Tipo y cantidad.
b. ¿Qué salida se desea? Tipo y cantidad.
c. ¿Qué método o proceso se empleará para obtener la salida deseada?.
En esta etapa prácticamente determinamos el QUE es lo que hace el programa a diseñar.

2. Diseño del Algoritmo


En esta etapa se determina el COMO hace el programa la tarea solicitada.
El diseño del algoritmo es independiente del lenguaje de programación en el que se va a
codificar posteriormente.
Para el diseño de un algoritmo tenemos que utilizar los resultados del análisis del problema
y realizar con ello una estructura modular (diseño modular) que consiste en un conjunto de
módulos. Es decir la solución de un problema complejo se realiza dividiendo el problema
en subproblemas y estos subproblemas en otros de nivel más bajo hasta conseguir
soluciones unitarias.
Cada solución unitaria o subprograma o subproblema se le conoce como MODULO y tiene
un punto de entrada y una salida.
Cualquier programa bien diseñado consta de un programa principal (módulo de nivel más
alto) que llama a subprogramas (módulos de nivel más bajo). Todo este diseño se le
conoce como TOP-DOWN o diseño descendente y la programación en este diseño se le
conoce como programación modular.
Por otra parte, la programación modular nos conduce a la programación estructurada que
significa escribir un programa de acuerdo a las siguientes reglas:
- El programa tiene un diseño modular.
- Los módulos son diseñados de modo descendente.
- Cada módulo se codifica utilizando las tres estructuras de control básicas:
secuencia, selección y repetición.
Para diseñar un algoritmo se requiere de herramientas, las cuales hay varias; para nuestro
estudio solo estudiaremos 2 de ellas:
Diagramas de flujo (Flowchart) y pseudocódigo. Ud. puede usar cualquiera de ellas en
forma regular. Por su importancia y extensión lo veremos posteriormente.

3. Codificación de un Programa
Es la escritura en un lenguaje de programación de la representación del algoritmo
desarrollado en la etapa anterior, en cierto modo la codificación es un proceso mecánico
Oswaldo Achury Pag 4/14
Ingeniero de Sistemas, U.E.M.C.L.L.
Introducción a la Programación

porque el algoritmo ya está hecho y solo queda la transformación a un lenguaje requerido


obteniéndose así el programa fuente.

4. Compilación y ejecución
Hecho el programa fuente debe ser traducido a lenguaje máquina con el compilador, en
este proceso si hay errores del programa se procede a su corrección para luego obtener
así un programa objeto, si a este programa se hace una fase de montaje o Link, se
transforma en un programa ejecutable

5. Verificación y depuración de un programa.


En esta etapa el programa se ejecuta con una amplia variedad de datos de entrada
llamados datos de test o prueba que determina si el programa tiene errores ("bugs").
Si se encuentra errores entonces hay que depurar y corregir.
Los errores frecuentes a conseguir son:
a. errores de compilación
- de sintaxis, de escritura, etc.
b. errores de ejecución
- división por cero, de overflow, etc.
c. errores lógicos
- de lógica interna, de secuencia, etc.
6. Documentación y mantenimiento
La documentación de un programa puede ser interno y externa.
La interna es la que contiene el programa en líneas de comentario.
La externa incluye el análisis, diagramas de flujo y/o pseudocódigos, manuales de usuario
con instrucciones para ejecutar el programa y para interpretar los resultados.
La documentación es vital cuando se desea corregir posibles errores futuros o se quiere
cambiar o modificar el programa. A estos cambios se le denominan mantenimiento del
programa.
Después de cada cambio la documentación debe ser actualizada para facilitar cambios
posteriores.

Oswaldo Achury Pag 5/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Tipos de Datos y operadores

CAPITULO 2.
LOS DATOS Y LAS OPERACIONES BASICAS.
1. IDENTIFICADOR.
Un identificador es una serie de caracteres formados por letras, dígitos y el carácter subrayado
( _ ) que no inicie con dígito, asi mismo es el nombre que damos a todo lo que manipulamos
dentro de un programa (variables, constantes, funciones, etc). Por ejemplo variables,
constantes, funciones, tipos definidos por el usuario etc.

2.TIPOS DE DATOS.
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal
como „b‟, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de
valores que puede tomar una variable.

Carácter identifica el contenido de la variable que se declare como carácter. Su longitud es de


1 byte.
Entero se refiere a valores de tipo entero. Ocupa 2 bytes.
Real indica que la variable recibe datos de tipo real con aproximadamente 6 dígitos de
precisión. Su longitud en bytes es de 4.
Doble define variables que aceptan datos de tipo real con 12 dígitos de precisión. Cada
variable ocupa 8 bytes de memoria.

3. VARIABLES.
Una variable es un identificador que puede tomar diferentes valores dependiendo del tipo que
esta se declare.
Una variable es un identificador que puede cambiar de valor durante la ejecución de un
programa.
Una variable es una posición de memoria donde se puede almacenar una valor para uso de
un programa.

7. O P E R A D O R E S
Un operador es un símbolo que indica al compilador que realice manipulaciones lógicas o

Oswaldo Achury Pag 6/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Tipos de Datos y operadores

matemáticas específicas.

7.1 Operadores Aritméticos


Pseudocódigo Nombre del Operador
+ suma.
- resta.
* multiplicación
/ división
Modulo Módulo o resto de División entera
Cuando se aplica el símbolo / a un entero o a un carácter, cualquier residuo se trunca. Por
ejemplo 5/3 será 1 en división entera.
El símbolo menos hace el efecto de multiplicar su único operando por-1 es decir, cualquier
número precedido por un signo menos cambia de signo.

7.2. Incremento y decremento

x=x+1 aumenta el valor de x en 1


x=x-1 decrementa el valor de x en 1

7.3 Prioridad de los operadores


1.- paréntesis
2.- elevar a potencias
3.- multiplicación y división
4.- suma y resta

7.4 Operadores Relaciónales


Pseudocódigo Nombre del Operador
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
< > o = Diferente
= Igual

7.5 Operadores Lógicos:

Estos operadores se utilizan para establecer relaciones entre valores lógicos.


Estos valores pueden ser resultado de una expresión relacional.

Oswaldo Achury Pag 7/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Tipos de Datos y operadores

Operadores Lógicos
And Y
Or O
Not Negación
Operador And
Operando1 Operador Operando2 Resultado
V AND V V
V AND F F
F AND V F
F AND F F

Operando1 Operador Operando2 Resultado


V OR V V
V OR F V
F OR V V
F OR F F

Operador Not
Operando Resultado
V F
F V

7.6 PALABRAS RESERVADAS.


Son palabras que tienen un significado especial para el lenguaje y no se pueden utilizar
como identificadores.

Oswaldo Achury Pag 8/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Ejemplos y Ejercicios

CAPITULO 3.

EJEMPLOS & EJERCICIOS.

 Calcular e imprimir el resultado de la suma de 2 números cualesquiera

1) Análisis del problema:


Nos piden sumar dos números (sin importar si son naturales, enteros, reales o
irreales) por lo tanto no existe ninguna restricción numérica. El resultado de dicha
suma se debe imprimir o mostrar en pantalla. Para el caso de nuestro DFD
debemos recordar que cuando manejamos variables (valores no definidos)
siempre debemos definir las condiciones iniciales del programa, en este caso a, b
y c, donde a y b almacenaran los valores ingresados y c guardara el resultado de
dicha suma.

2) Diseño del algoritmo

INICIO
Recibir numero 1 y guardarlo en a
Recibir numero 2 y guardarlo en b
C=a+b
Mostrar c
FIN

3) Diagrama de Flujo de datos

INICIO

a, b, c

Ingrese ->a

Ingrese ->b

C= a + b

FIN

Oswaldo Achury Pag 9/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Ejemplos y Ejercicios

 Imprimir si un numero es positivo o negativo

1) Análisis del problema:


En este caso se debe definir si un numero cualquiera es positivo o negativo, para
ello debemos utilizar un comparador lógico (mayor que o menor que) que nos
permita definir el valor del numero, para ello nuestra referencia (recordando la
definición de positivo en matemáticas) es el valor 0. para el diagrama de flujo de
datos necesitamos una variable que almacene el numero y sobre el símbolo de
“condición” se imprimirá si es o no positivo.

2) Diseño del algoritmo

INICIO
Recibir numero 1 y guardarlo en num1
Si num1 es > 0
Imprimir “num1” es positivo
En caso contrario
Imprimir “num1” es negativo
FIN

3) Diagrama de Flujo de datos

INICIO

num1

Ingrese #
->num1

No Si
“num1 es num1 >0 “num1 es
negativo” positivo”

FIN
nu
m1

Oswaldo Achury Pag 10/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Ejemplos y Ejercicios

 Hacer un programa que lee dos números y calcula e imprime su suma,


resta, producto y división.
1) Análisis del problema:
El programa debe calcular la suma, resta, producto y división de dos números
cualesquiera, por lo tanto para obtener esos números debemos guardarlos en
variables las que llamaremos y, z. Hay una restricción para la división, el divisor no
puede ser igual a cero, para este caso se debe evaluar a través de una condición
que la variable que será el divisor sea diferente a 0. Para el diagrama de flujo de
datos definiremos tres variables y, z y res, esta última guardara los resultados de
las operaciones.

2) Diseño del algoritmo

INICIO
Recibir numero 1 y guardarlo en y
Recibir numero 2 y guardarlo en z
Res= y + z
Imprimir “suma” res
Res= y – z
Imprimir “resta” res
Res= y * z
Imprimir “Producto” res
Si z es = a 0
Imprimir “no se puede dividir, división por 0”
En caso contrario
Res= y / z
Imprimir “división” res
FIN

3) Diagrama de Flujo de datos

1
INICIO
res =y - z 2
y, z, res
“Resta es:” res No Si
res =y / z z=0 “no se puede
Ingrese # ->y dividir,
res =y * z división por
0”
Ingrese # ->z “División
“Producto es:” es “ res
res
res =y + z
2
“Suma es:” res
FIN
1 nu
m1
Oswaldo Achury Pag 11/14
Ingeniero de Sistemas, U.E.M.C.L.L.
Ejemplos y Ejercicios

 Hacer un programa que halle e imprima los 50 primeros números pares

1) Análisis del problema:


Para hallar los 50 primeros números pares debemos partir de lo siguiente: 1- el
concepto de par se define cualquier número que sea múltiplo de 2, 2- nuestro
programa parte del numero 2, 3- debemos utilizar un “ciclo” que a nivel de
algoritmo puede ser “ haga … hasta… “ o “ para … hasta … . La situación para el
DFD se debe incorporar el concepto “contador” el cual llevara
el control hasta que se logre los 50 primeros números pares y la figura
con la que representaremos el ciclo de nuestro programa.

2) Diseño del algoritmo

INICIO
Variable par = 2
Variable i = 1
Para i = 1 hasta i = 50
Imprimir par
Par = par + 2
i = i +1
FIN

3) Diagrama de Flujo de datos

INICIO

par, i

i = 1 hasta
i=i+1 i = 50 FIN
nu
par
par= par + 2
m1

 Calcular e imprimir el Área del círculo y la longitud de la circunferencia.

1) Análisis del problema:

La única entrada del problema es el radio y puede tomar cualquier valor dentro del
rango de números reales.

Oswaldo Achury Pag 12/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Ejemplos y Ejercicios

Las salidas serán dos variables: la superficie del círculo y longitud de la


circunferencia, estos serán los resultados finales y serán también de tipo real
porque provienen de constantes que pertenecen a los números reales. Luego
diremos que:

2) Diseño del algoritmo:

Para el diseño del algoritmo lo que se debe hacer en primer lugar es la


descomposición del problema en subproblemas (diseño descendente) TOP-
DOWN y refinarlo (stepwise refinement). Por lo tanto:

1. Entrada de datos RADIO que es ingresado por el usuario.


2. Cálculo de superficie tenemos una fórmula que es:
ÁREA=3.141592 * RADIO2
3. Cálculo de longitud para longitud tenemos la siguiente formula:
L =2 * (3.141592)*RADIO
4. SALIDA de resultados Escribir: RADIO, AREA ,L

INICIO
Variable pi = 3.141592
Ingresar el radio y guardarlo en RADIO
AREA = pi * RADIO ^2
L = 2 * pi * RADIO
Imprimir AREA, RADIO, L
FIN
3) Diagrama de Flujo de datos

INICIO
RADIO, AREA,
pi =3.141592

Ingrese el radio->RADIO

AREA = pi * RADIO * RADIO

L = 2 * pi * RADIO

RADIO, AREA, L

FIN
nu
m1

Oswaldo Achury Pag 13/14


Ingeniero de Sistemas, U.E.M.C.L.L.
Ejemplos y Ejercicios

Ejercicios: Hacer el algoritmo de:


1. Programa que calcule e imprima la suma de los N primeros números
naturales.
2. Programa que genere la lista de los N primeros números primos.
3. Programa que obtenga e imprima la lista de los divisores de un número N
entero positivo.
4. Programa que calcule el máximo común divisor de dos números enteros
positivos por el algoritmo de Euclides.
5. Programa que obtenga e imprima la lista de caracteres del código ASCII
correspondiente a los números desde 32 al 126.
6. Programa que obtenga el producto de dos números enteros positivos
mediante sumas sucesivas.
7. Programa que obtenga el cociente y el resto de dos números enteros
positivos mediante restas.
8. Programa que evalúe un polinomio de grado N. Los datos de entrada son
el valor de la variable y de los coeficientes.
9. Programa que calcule e imprima los números perfectos menores que 1000
(un número es perfecto si la suma de sus divisores excepto el mismo es
igual al propio número).
10. Programa que determine si dos números enteros positivos son amigos (
Dos números son amigos si la suma de los divisores del primero excepto el
mismo es igual al segmento y viceversa).
11. Programa que imprime la tabla de multiplicar de un número entero positivo
12. Programa que ingresen 2 números enteros positivo M y N y calcula e
imprime los múltiplos de N, inferiores a M, que sean capicúas.

Oswaldo Achury Pag 14/14


Ingeniero de Sistemas, U.E.M.C.L.L.