Apuntes U1
Programación Básica
El Software son los programas de aplicación y los sistemas operativos, que según las
funciones que realizan pueden ser clasificados en:
Software de Sistema
Software de Aplicación
Software de Programación
Se llama Software de Sistema o Software de Base al conjunto de programas que sirven para interactuar
con el sistema, confiriendo control sobre el hardware, además de dar soporte a otros programas.
Sistema Operativo
Controladores de Dispositivos
Programas Utilitarios
Sistema operativo
1. Suministro de interfaz al usuario: Permite al usuario comunicarse con la computadora por medio de
interfaces que se basan en comandos, interfaces que utilizan menús, e interfaces gráficas de usuario.
2. Administración de recursos: Administran los recursos del hardware como la CPU, memoria,
dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
3. Administración de archivos: Controla la creación, borrado, copiado y acceso de archivos de datos y de
programas.
4. Administración de tareas: Administra la información sobre los programas y procesos que se están
ejecutando en la computadora. Puede cambiar la prioridad entre procesos, concluirlos y comprobar el
uso de estos en la CPU, así como terminar programas.
5. Servicio de soporte: Los Servicios de Soporte de cada sistema operativo dependen de las
implementaciones añadidas a este, y pueden consistir en inclusión de utilidades nuevas, actualización
de versiones, mejoras de seguridad, controladores de nuevos periféricos, o corrección de errores de
software.
Controladores de Dispositivos
Los Controladores de Dispositivos son programas que permiten a otros programa de mayor nivel como
un sistema operativo interactuar con un dispositivo de hardware.
Programas Utilitarios
Los Programas Utilitarios realizan diversas funciones para resolver problemas específicos, además de
realizar tareas en general y de mantenimiento. Algunos se incluyen en el sistema operativo.
Software de Aplicación
El Software de Aplicación son los programas diseñados para o por los usuarios para facilitar la
realización de tareas específicas en la computadora, como pueden ser las aplicaciones ofimáticas
(procesador de texto, hoja de cálculo, programa de presentación, sistema de gestión de base de datos...),
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 2 de 27
u otros tipos de software especializados como software médico, software educativo, editores de música,
programas de contabilidad, etc.
Software de Programación
1.2 Definiciones
Algoritmo
"Un algoritmo se define como un método que se realiza paso a paso para solucionar un
problema que termina en un número finito de pasos".
Lenguaje de programación
Un Lenguaje de Programación es aquél que es utilizado para escribir programas de
computadoras que puedan ser entendidos por ellas. Estos lenguajes se clasifican en tres
grandes categorías :
Lenguaje Máquina
Lenguaje de Bajo nivel (ensamblador)
Lenguaje de Alto nivel.
Lenguaje máquina
Un lenguaje de programación de bajo nivel es el que proporciona poca o ninguna abstracción del
microprocesador de una computadora. Consecuentemente es fácil su trasladado al lenguaje máquina.
El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se
encarga de traducir un archivo fuente escrito en un lenguaje ensamblador, a un archivo objeto que
contiene código máquina, ejecutable directamente por la máquina para la que se ha generado.
Los lenguajes de Alto Nivel se caracterizan por expresar los algoritmos de una manera adecuada a la
capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.
Palabras reservadas
Las palabras reservadas son algunos símbolos cuyo significado está predefinido y no se pueden usar
para otro fin, aquí tenemos algunas palabras reservadas en el lenguaje C.
Programa
Un programa informático o software es un elemento imprescindible para el normal funcionamiento
de una computadora. Puede ser tanto un programa ejecutable como su código fuente, que es escrito por los
programadores. Por otra parte, de acuerdo a sus funciones, un programa puede ser catalogado como un
software de sistema o un software de aplicación.
Programación
Programación es la acción y efecto de programar. Este verbo tiene varios usos: se refiere a idear y
ordenar las acciones que se realizarán en el marco de un proyecto; al anuncio de las partes que componen
un acto o espectáculo; a la preparación de máquinas para que cumplan con una cierta tarea en un momento
determinado; a la elaboración de programas para la resolución de problemas mediante ordenadores; y a la
preparación de los datos necesarios para obtener una solución de un problema a través de una calculadora
electrónica, por ejemplo.
Compilador
Un compilador es un programa informático, que se encarga de traducir el código fuente de una
aplicación que este en desarrollo, es decir convierte un programa hecho en lenguaje de programación
de alto nivel a un lenguaje de máquina , el cual es conocido como de bajo nivel, de tal forma que sea
más entendible y mucho más fácil de procesar en el equipo en el que se está ejecutando.
De igual manera un traductor es el que toma como entrada un texto escrito y da como salida otro texto
en un lenguaje llamado objeto.
Interprete
Programa traductor semejante al compilador, con la diferencia en su funcionamiento el cual se
caracteriza por traducir y ejecutar, de una en una, las instrucciones del código fuente de un programa,
pero, sin generar como salida código objeto. El proceso que realiza un intérprete es el siguiente: lee la
primera instrucción del código fuente, la traduce a código objeto y la ejecuta; a continuación, hace lo
mismo con la segunda instrucción; y así sucesivamente, hasta llegar a la última instrucción del
programa, siempre y cuando, no se produzca ningún error que detenga el proceso.
Editor de textos
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos
únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El
programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. Hoy
en día es comúnmente de 7- ó 8-bits en ASCII o UTF-8, rara vez EBCDIC.
También se puede definir como Es un método que permite a las personas dar instrucciones a algún
programa informático por medio de una línea de texto simple, de hecho esto se hacía antes, se
manejaba la computadora a base de comandos como hoy conocemos, por ejemplo: el cmd (abreviatura
de command), es la instrucción que se teclea en el menú inicio, de los sistemas operativos Windows
para entrar a dicha consola.
Un procedimiento para producir los resultados deseados a partir de los datos, es el algoritmo
A fin de resolver un problema utilizando sistemas de cómputo, debe seguirse una serie de pasos que
permiten avanzar por etapas bien definidas hacia la solución.
Una vez que el problema ha sido definido y comprendido, deben analizarse los
siguientes aspectos :
Una medida aconsejable para facilitar esta etapa consiste en colocarnos en lugar de la
computadora deduciendo los elementos que necesitaremos para alcanzar el resultado.
Ejemplo:
Análisis
Las entradas de datos en este problema se concentran en el radio del círculo. Dado que
el radio puede tomar cualquier valor dentro del rango de los números reales, el tipo de datos
radio debe ser real.
Las salidas serán dos variables : superficie y circunferencia que también serán de tipo real.
Diseño de la solución
Una computadora no tiene capacidad para solucionar problemas más que cuando se le
proporcionan los sucesivos pasos a realizar, esto se refiere a la obtención de un algoritmo
que resuelva adecuadamente el problema. En caso de obtenerse varios algoritmos,
seleccionar uno de ellos utilizando criterios ya conocidos.
Como puede verse, solo se establece la metodología para alcanzar la solución en forma
conceptual, es decir ; sin alcanzar la implementación en el sistema de cómputo.
Codificación
Se refiere a la obtención de un programa definitivo que pueda ser comprensible para la
máquina. Incluye una etapa que se reconoce como compilación.
Esta escrito en un lenguaje de programación. (pascal, C++,Visual Fox, Visual Basic, etc).
Es entendible por el programador.
Programa Ejecutable
Prueba y depuración
Una vez que se ha obtenido el programa ejecutable, este es sometido a prueba a fin de
determinar si resuelve o no el problema planteado en forma satisfactoria.
Las pruebas que se le aplican son de diversa índole y generalmente dependen del tipo
de problema que se está resolviendo. Comúnmente se inicia la prueba de un programa
introduciendo datos válidos, inválidos e incongruentes y observando como reacciona en
cada ocasión.
Documentación
Debido a que el programa resultante en esta etapa se encuentra totalmente depurado
(sin errores), se procede a la utilización para resolver problemas del tipo que dió origen a su
diseño.
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 9 de 27
En vista de que esta utilización no podrá ser supervizada en todas las ocasiones por el
programador, debe crearse un manual o guía de operación que indique los pasos a seguir
para utilizar el programa.
Mantenimiento
Se refiere a las actualizaciones que deban aplicarse al programa cuando las
circunstancias así lo requieran. Este programa deberá ser susceptible de ser modificado para
adecuarlo a nuevas condiciones de operación.
Pseudocódigo: es un lenguaje algorítmico, muy parecido al español pero más conciso que permite
la redacción rápida del algoritmo.
Diagramas de flujo: ha sido la herramienta de programación por excelencia, y aún hoy sigue siendo
muy utilizada. Es fácil de diseñar pues el flujo lógico del algoritmo se muestra en un diagrama en
lugar de palabras.
Diagrama de flujo
Pseudocódigo
Diagramas estructurados
Diagramas de Flujo
Se basan en la utilización de diversos símbolos para representar operaciones
específicas. Se les llama diagramas de flujo porque los símbolos utilizados se conectan
por medio de flechas para indicar la secuencia de operación.
Símbolo Función
Ejemplo:
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan
como de que lo ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje
diferente de programación y ejecutarse en una distinta; sin embargo, el algoritmo será
siempre el mismo.
Las cuales tienen como propósito, cada una de ellas lograr un objetivo en específico y en
conjunto alcanzar un objetivo general. En consecuencia, estas acciones se pueden concebir
como algoritmos, por lo que resulta importante conocer la definición, características e
importancia que tienen los algoritmos en los distintos ámbitos de la vida cotidiana.
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan
como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar
en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin
embargo, el algoritmo será siempre el mismo. Así, por ejemplo, en una analogía con la vida
diaria, la receta de un platillo de cocina se puede expresar en español, inglés o francés, pero
cualquiera que sea el lenguaje, los pasos para la elaboración, del mismo se realizarán sin
importar el idioma del cocinero.
Joyanes Aguilar, enfatiza que el diseño de la mayoría de los algoritmos requiere creatividad y
conocimientos profundos de la técnica de programación. En esencia, la solución de un
problema se puede expresar mediante un algoritmo.
La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida. Por
ejemplo, en el cálculo de la edad de una persona, conociendo su año de nacimiento, la
definición del algoritmo, quedaría de la siguiente manera:
Escritura de algoritmos
1.- inicio
2.- solicitar las cinco calificaciones del alumno
3.-sumar las cinco calificaciones del alumno
4.- El resultado del paso 3 dividirlo entre cinco
5.- si el resultado del paso 4 es mayor o igual a 7.0 entonces
5.1Visualizar Alumno aprobado
si_no
5.2 Visualizar Alumno reprobado
fin_si
6.- fin
En el algoritmo anterior se dio solución al planteamiento básico del cálculo del promedio de
un alumno. Se observa que los pasos del algoritmo tienen un número que conforme se va
describiendo la secuencia, ese número se va incrementando. Es importante destacar que
todo algoritmo es finito, es decir, así como tiene un inicio debe tener un fin, lo que se observa
en los pasos 1 y 6.
Ejemplos de Pseudocódigo
Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe
introducir la base y la altura para poder realizar el cálculo..
Programa; área
Algoritmo:
Finprograma
Ejemplo: Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la
suma y el producto de las notas.
Programa: SumaProducto
Algoritmo:
leer NOTA1,NOTA2
Finprograma
Programa: ComparaNúmeros
Algoritmo:
leer NUMERO
SI NUMERO>0 ENTONCES
SI NO
SI NUMERO<0 ENTONCES
SI NO
FINSI
FINSI
Finprograma
Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva tres puntos en la coordenada
x y escriba el resultado en algún dispositivo de salida:
ALGORITMO lee_tres_vertices
ENTRADA: las coordenadas (x,y) de tres puntos
SALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia la derecha.
VARIABLES: i:entera
x,y: real
INICIO
PARA i=1 HASTA 3 CON INCREMENTO +1
ESCRIBE "Abscisa del punto número ", i
LEER x
ESCRIBE "Ordenada del punto número ", i
LEER Y
ESCRIBE "El punto es (" x+3","y")"
FIN_PARA
FIN
El programa equivalente a este algoritmo se muestra a continuación. Como podemos apreciar
en un programa en Pascal es importantísimo no olvidar detalles de sintaxis. Por ejemplo cada
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 17 de 27
sentencia termina en punto y coma. De cualquier forma es inmediato apreciar los simples
cambios existentes.
program lee_tres_vertices;
var x,y:real;
i:integer;
begin
for i:=1 to 3 do
begin
write ('Abscisa del punto número ',i); readln(x);
write ('Ordenada del punto número ',i); readln(y);
writeln (' El punto es (',x+3,',',y,')');
end;
end;
programa suma_divisibles
variables natural : divisor, suma, contador, número
inicio programa
divisor leer ‘Introduce el divisor: ’
suma 0
contador 0
para número desde 1 hasta 1000 hacer
si divisor divide a número entonces
suma suma + número
contador contador + 1
fin si
si contador = 10 entonces
interrumpir
fin si
fin para
fin programa
Un algoritmo cuenta con un inicio y sus subprogramas llamados también diseño modular.
Los cálculos que realizan las computadoras requieren para ser útiles la función de Entrada
de los datos necesarios para ejecutar las operaciones que posteriormente se convertirán en
resultados, es decir, la función Salida.
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 18 de 27
Las operaciones (funciones) de entrada permiten leer determinados valores y asignarlos
a determinadas variables. Esta entrada se conoce como operación de Lectura (scanf en
lenguaje C). Los datos de entrada se introducen al procesador mediante dispositivos de
entrada (teclado, unidades de disco, etc). La salida puede aparecer en un dispositivo de
salida (pantalla, impresora, etc). La operación de salida se denomina escritura (printf en
lenguaje C).
leer ( Nom_variable )
Entrada
Proceso
Salida
Algoritmo
Inicio
Leer(B)
leer(h)
x B*h
A x/2
Escribir(A)
Fin
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 19 de 27
Los programas más simples escritos en lenguajes imperativos suelen realizar tres tareas de forma
secuencial:
• Entrada de datos
• Salida de resultados
Operaciones de entrada/salida
Salida por pantalla con la función printf
La función printf, que forma parte de la biblioteca estándar de funciones de entrada/salida <stdio.h>,
nos permite mostrar mensajes de texto en la pantalla cuando ejecutamos un programa:
#include <stdio.h>
...
...
char c;
...
int i;
...
long x;
...
...
double d;
...
long double r;
...
#include <stdio.h>
...
scanf (“%d”,&dato);
...
char c;
...
int i;
...
long x;
...
float f;
...
double d;
...
long double r;
...
Operaciones de entrada/salida
printf(“plantilla de formato”, lista de variables);
• El número n indica el número de caracteres que se utilizarán como mínimo para representar el dato
(número total de dígitos en el caso de los números, tanto enteros como reales).
• El número .m indica el número máximo de caracteres que se utilizarán para representar el dato. En
el caso de los números reales, indica el número de decimales que se mostrarán.
• El signo menos (-) es opcional y lo usaremos para indicar que el texto ha de justificarse a la
izquierda.
%c Carácter
%s Cadena de caracteres
%f Número real
Desarrollar una aplicación en lenguaje de C, que sea capaz de calcular y mostrar por pantalla, el área
de un círculo. Considere la constante Pi igual 3.1416.
Inicio
PI = 3.1416;
Programa principal
Leer (radio);
Fin
Codificación
Transformar el pseudocódigo en su equivalente código de un lenguaje de programación, en este
caso, bajo el paradigma estructurado, empleando el LP llamado “C”, como a continuación se indica.
#include <stdio.h>
main (){
scanf ("%f",&radio);
getch();
return 0;
Compilación y ejecución
Se trata de transformar el programa fuente, escrito en un lenguaje fuente (C), en su equivalente
programa objeto, escrito en lenguaje de máquina (proceso llamado compilación). A través del menú
Ejecutar, opción compilar.
En él se obtiene un código:
Luego, se verifica que el programa haga lo que se supone debe de hacer (se dice “correr” el
programa). A través del menú Ejecutar.
Verificación
Se complementa la fase anterior de pruebas, ampliando las alternativas de las corridas, con
diferentes valores. Se corrigen errores de ejecución.
Depuración
Se corrigen los errores de lógica o de ejecución del programa.
Mantenimiento y documentación
Se documenta el programa: comentarios, manuales de usuario o de operación del programa/sistema.
Ejercicios complementarios
1. UN CLIENTE ACUDE A REALIZAR SUS COMPRAS A UN SUPERMERCADO O TIENDA DE ABARROTES, UNA
VEZ QUE SELECCIONO SUS PRODUCTOS Y CANTIDADES DE LOS MISMOS, LLEGA A LA CAJA DE PAGO,
DONDE UNA CAJERA A TRAVÉS DE UN ESCANER, IRA LEYENDO LOS CODIGOS DE BARRA DE CADA UNO
DE LOS PRODUCTOS, ASI COMO, EN SU CASO, IRA TECLEANDO LA CANTIDAD DE CADA UNO DE ELLOS.
AL TERMINAR DE LEER TODOS LOS PRODUCTOS, LA CAJERA LE COMUNICARA AL CLIENTE, LA CANTIDAD
TOTAL A PAGAR, PERO ANTES DE ELLO, LE INFORMARA QUE LA TIENDA TIENE UNA PROMOCION QUE
CONSISTE EN QUE SEGÚN LA FORMA DE PAGO EXISTE UN PORCENTAJE DE DESCUENTO, ES DECIR, SI EL
CLIENTE PAGA EN EFECTIVO SE LE HARA UN DESCUENTO DEL 5%, SI LO HACE CON TARJETA DE CREDITO
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 25 de 27
SU DESCUENTO SERA DEL 10%, Y SI PAGA CON CHEQUE, SE LE REEMBOLSARA EL 15% DE SU PAGO
TOTAL. PARA ELLO, EL CLIENTE DEBE DE INDICAR SU FORMA DE PAGO. AL FINAL, LA CAJERA DEBERA
ENTREGARLE AL CLIENTE UNA FACTURA QUE CONTENGA LOS DATOS SIGUIENTES:
CANTIDAD DE PRODUCTOS
NOMBRE DEL PRODUCTO
PRECIO UNITARIO
SUBTOTAL DE CADA PRODUCTO
EL SUBTOTAL DE LAS COMPRAS
EL DESGLOSE DEL 15% IVA ( DERIVADO DE ANTES HABER HECHO EL DESCUENTO
RESPECTIVO POR LA FORMA DE PAGO)
EL TOTAL DE LAS COMPRAS
SI DESEA, INCLUYA EN SU FACTURA DATOS DEL CLIENTE (NOMBRE, APELLIDOS, DIRECCION, TELEFONO, ETC.).
En pantalla:
En pantalla:
Deberá resolver los siguientes ejercicios, aplicando las dos primeras fases de la
metodología para la solución de problemas por computadora (análisis y diseño,
respectivamente) teniendo en cuenta que los deberá tener en su libreta de apuntes y
haberlos construido en el algún procesador de textos y/o software de diagramación
(por ejemplo: raptor o el propio Microsoft Word,). Se pide ambas representaciones, es decir,
resuélvalos en pseudocódigo y en diagrama de flujos.
Nota:
Tomen como referencia, los ejemplos resueltos en documento anexo compartido vía correo o en el
sitio web de la materia.
Prácticas
1.- INGRESAR POR TECLADO, UN NUMERO ENTERO DE TRES CIFRAS (POR EJEMPLO EL 456), Y
MUESTRE POR PANTALLA ESE NUMERO, PERO DE FORMA INVERTIDA (PARA EL ANTERIOR CASO,
SERIA EL NUMERO 654).
2.- Determinar y mostrar por pantalla, la tabla de multiplicar que un usuario indique.
Ejercicios en clases
1.- Calcular y mostrar por pantalla, si un número proporcionado por el usuario, es al mismo tiempo,
múltiplo del 2 y del 3, al mismo tiempo, pero siempre y cuando ese número este entre un valor de 50
y 432.
2.- Solicitar la calificación de cada una de tres unidades de un curso de Programación a un estudiante
del ITSLP, y calcular y mostrar por impresora, el promedio de su curso.
¡Éxito a tod@s!