Sunteți pe pagina 1din 30

2018-2

Apuntes U1
Programació n Bá sica

Unidad 1.- Conceptos básicos y


Algoritmos
1.1 Clasificación del software de: sistemas y aplicación.
1.2 Definición de: Algoritmo, Lenguaje de Programación, Programa, Ingeniería Mecatrónica
Programación, Paradigmas de programación, Editores de texto,
Compiladores e intérpretes, Ejecutables, Consola de línea de ITSLP
comandos.
1.3 Análisis de problemas. Héctor Bazarte Torres, Ing.
1.4 Representación de algoritmos: gráfica y pseudocódigo.
1.5 Diseño de algoritmos aplicados a problemas.
1.6 Diseño algorítmico de funciones
1.1 Clasificación de software: sistema y aplicación
Software
Programas o conjunto de programas que contienen las órdenes con las que trabaja una
computadora
El Software es el soporte lógico e inmaterial que permite que la computadora pueda
desempeñar tareas inteligentes, dirigiendo a los componentes físicos o hardware con
instrucciones y datos a través de diferentes tipos de programas.

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

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 1 de 31


Software de Sistema

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.

El Software de Sistema se divide en:

 Sistema Operativo
 Controladores de Dispositivos
 Programas Utilitarios

Sistema operativo

El Sistema Operativo es un conjunto de programas que administran los recursos de la computadora y


controlan su funcionamiento.

Un Sistema Operativo realiza cinco funciones básicas: Suministro de Interfaz al Usuario,


Administración de Recursos, Administración de Archivos, Administración de Tareas y Servicio de
Soporte.

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.

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 2 de 31


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...),
u otros tipos de software especializados como software médico, software educativo, editores de música,
programas de contabilidad, etc.

Software de Programación

El Software de Programación es el conjunto de herramientas que permiten al desarrollador informático


escribir programas usando diferentes alternativas y lenguajes de programación.

Este tipo de software incluye principalmente compiladores, intérpretes, ensambladores, enlazadores,


depuradores, editores de texto y un entorno de desarrollo integrado que contiene las herramientas
anteriores, y normalmente cuenta una avanzada interfaz gráfica de usuario (GUI).

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".

 Las características fundamentales que debe cumplir todo algoritmo son :

Debe ser preciso. e indicar el orden de realización de cada paso.


Debe ser definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado
cada vez.
Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento ; o sea debe
tener un número finito de pasos.

 La definición de un algoritmo debe describir tres partes : Entrada, Proceso y Salida.

 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.
 

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 3 de 31


Lenguaje máquina

Lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito


microprogramable, como el microprocesador de una computadora. Este lenguaje está compuesto por
un conjunto de instrucciones que determinan acciones que serán por la máquina. Un programa de
computadora consiste en una cadena de estas instrucciones de lenguaje de máquina (más los datos).
Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo
causados por el propio programa o eventos externos. El lenguaje de máquina es específico de cada
máquina o arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser
similar entre ellas.

Lenguajes de bajo nivel

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.

Lenguajes de alto nivel

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.

 Auto, break, case, char, continue ,default, do, double,


 else, enum, extern, float, for, if, int,
 long, register, return, short, sizeof, static, struct, switch,
 typedef, union, unsigned, void y while

 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

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 4 de 31


preparación de los datos necesarios para obtener una solución de un problema a través de una calculadora
electrónica, por ejemplo.

 Paradigma de programación
Un paradigma de programación es una propuesta tecnológica adoptada por una comunidad de
programadores y desarrolladores cuyo núcleo central es incuestionable en cuanto que únicamente trata
de resolver uno o varios problemas claramente delimitados; la resolución de estos problemas debe
suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería
de software.

Un paradigma de programación representa un enfoque particular o filosofía para diseñar soluciones.


Los paradigmas difieren unos de otros, en los conceptos y la forma de abstraer los elementos
involucrados en un problema, así como en los pasos que integran su solución del problema, en otras
palabras, el cómputo.

Tiene una estrecha relación con la formalización de determinados lenguajes en su momento de


definición. Es un estilo de programación empleado.

 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

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 5 de 31


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.

No debe confundirse con procesador de texto o corrector de textos.

 Archivo ejecutable
Un ejecutable es un archivo diseñado para poder iniciar un programa. En su interior están pues las
instrucciones precisas para poder ejecutar un programa determinado o varios. Los ordenadores pueden
realizar todo tipo de tareas, pero para ello debe indicárseles como. Son como un niño a quien debe
decírsele paso a paso lo que hacer y cuando. En su memoria base suelen cargarse las instrucciones
básicas, y el sistema operativo carga comandos adicionales, que le permiten realizar las tareas más
simples. La tarea de un programador cuando hace un programa es decirle al ordenador como debe usar
esos comandos básicos que ya sabe para poder realizar lo que el programa quiere hacer, sea mostrar
una imagen, escribir texto, guardar un documento... etc.

 Consola de línea de comandos


Es una interfaz para manipular un programa o sistema operativo con instrucciones escritas. Sirve para
configurar una computadora, Instalarle Software o trabajar en una maquina remota.

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.

1.3. Análisis de problemas


Es el primer paso a seguir para encontrar la solución a un problema es el análisis del problema. En el
análisis del problema se requiere del máximo de creatividad e imaginación Debido a que se busca una
solución se debe examinar cuidadosamente el problema a fin de identificar qué tipo de información es
necesaria producir. En seguida se deben identificar aquellos elementos de información ofrecidos por el
problema y que resulten útiles para obtener la solución al problema.

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.

 Estas etapas son las siguientes:

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 6 de 31


Definición del problema.
Análisis de los datos.
Diseño de la solución.
Codificación.
Prueba y depuración.
Documentación.
Mantenimiento.

 Definición del problema


        Está dada en sí por el enunciado del problema, el cual debe ser claro y complejo. Es
importante que conozcamos exactamente "que se desea obtener al final del proceso" ;
mientras esto no se comprenda no puede pasarse a la siguiente etapa.

 Análisis de los datos


        Para poder definir con precisión el problema se requiere que las especificaciones de
entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una
solución eficaz.

        Una vez que el problema ha sido definido y comprendido, deben analizarse los
siguientes aspectos :

Los resultados esperados.


Los datos de entrada disponibles.
Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado
(fórmulas, tablas, accesorios diversos).

         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:

Leer el radio de un círculo y calcular e imprimir su superficie y circunferencia.

 Análisis

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 7 de 31


        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.

 Entradas : Radio del círculo (variable RADIO).

Salidas :   Superficie del círculo (variable AREA).

 Circunferencia del círculo (variable CIRCUNFERENCIA).

Variables : RADIO, AREA, CIRCUNFERENCIA 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.

        Esta etapa incluye la descripción del algoritmo resultante en un lenguaje natural, de
diagrama de flujo o natural de programación.

        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.

        De acuerdo al ejemplo 2.1 tenemos que la información proporcionada constituye su


entrada y la información producida por el algoritmo constituye su salida. Los problemas
complejos se pueden resolver más eficazmente por la computadora cuando se dividen en
subproblemas que sean más fácil de solucionar.

        El problema de cálculo de la longitud y superficie de un círculo se puede descomponer


en subproblemas más simples :

Leer datos de entrada.


Calcular superficie y longitud.
Escribir resultados (datos de salida).

 Codificación

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 8 de 31


        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.

        Si la codificación original se realizó en papel, previo a la compilación deberá existir un


paso conocido como transcripción.

 Programa Fuente

Esta escrito en un lenguaje de programación. (pascal, C++,Visual Fox, Visual Basic, etc).
Es entendible por el programador.

 Programa Ejecutable

Está en lenguaje máquina.


Entendible por la máquina.

 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.

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 9 de 31


        El proceso de depuración consiste en localizar los errores y corregirlos en caso de que
estos existan. Si no existen errores, puede entenderse la depuración como una etapa de
refinamiento en la que se ajustan detalles para optimizar el desempeño del programa.

 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.

         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.

Cualquier actualización o cambio en el programa deberá reflejarse en su documentación

1.4 Representación de algoritmos


Las herramientas de programación utilizadas como lenguajes algorítmicos para
representar las soluciones de problemas por computadora (algoritmos) más
empleadas son:

 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.

 Las tres técnicas de formulación de algoritmos más populares son :

Diagrama de flujo
Pseudocódigo
Diagramas estructurados

Diagramas de Flujo
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 10 de 31
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.

        La simbología utilizada para la elaboración de diagramas de flujo es variable y debe


ajustarse a un patrón definido previamente.

SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO

                                                        Símbolo                                        Función

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 11 de 31


Ejemplo: 

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 12 de 31


        Calcular el salario neto de un trabajador en función del número de horas trabajadas,
precio de la hora de trabajo y considerando unos descuentos fijos al salario bruto en
concepto de impuestos (20 por 100).

Ejemplo:

Realizar un diagrama de flujo que permita mostrar en pantalla un mensaje de mayoría o


minoría de edad según sea el caso para un nombre específico.

 Pseudocódigo
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 13 de 31
        Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de
codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil.

         El pseudocódigo nació como un lenguaje similar al inglés y era un medio representar
básicamente las estructuras de control de programación estructurada. Se considera un
primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un
lenguaje de programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por
una computadora.

         La ventaja del pseudocódigo es que en su uso en la planificación de un programa, el


programador se puede concentrar en la lógica y en las estructuras de control y no
preocuparse de las reglas de un lenguaje específico. Es también fácil modificar el
pseudocódigo si se descubren errores o anomalías en la lógica del programa, además de
todo esto es fácil su traducción a lenguajes como pascal, COBOL, C, FORTRAN o BASIC.

         El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas en
inglés (similares a sus homónimos en los lenguajes de programación), tales como
star,begin, end, stop, if-then-else, while, repeat-until….etc

1.5 Diseño de algoritmos aplicado a problemas


Para llegar a la realización de un programa es necesario el diseño previo de algoritmo, de
modo que sin algoritmo no puede existir un programa.

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.

Dada la importancia del algoritmo en la ciencia de la computación, un aspecto muy


importante será el diseño de algoritmos.

Al resolver problemas de distinta índole, en muchas ocasiones se sigue una metodología


para conseguir tal propósito. Dicha metodología se encuentra caracterizada por una serie de
acciones o situaciones llevadas a cabo.

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.

De la misma manera los algoritmos son una herramienta vital para la solución de problemas
mediante computadora; es por ello que esta unidad pretende dar a conocer los conceptos
básicos de los algoritmos.

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 14 de 31


La resolución de un problema exige el diseño de un algoritmo que resuelva el mismo. La
propuesta para la resolución de un problema es la siguiente:

Figura 1. Resolución de un problema. 1

Los pasos para la resolución de un problema son:

1. Diseño del algoritmo, describe la secuencia ordenada de pasos, sin ambigüedades,


que conducen a la solución de un problema dado. (Análisis del problema y desarrollo
del algoritmo).
2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado.
(Fase de codificación).
3. Ejecución y validación del programa por computadora.

Para llegar a la resolución de un problema es necesario el diseño previo de un algoritmo, de


modo que sin algoritmo no puede existir un programa.

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.

En la ciencia de la computación y en la programación, los algoritmos son más importantes


que los lenguajes de programación o las computadoras. Un lenguaje de programación es tan
sólo un medio para expresar un algoritmo y una computadora es sólo un procesador para
ejecutarlo. Tanto el lenguaje de programación como la computadora son los medios para
obtener un fin: conseguir que el algoritmo se ejecute y se efectúe el proceso correspondiente.
Dada la importancia del algoritmo en la ciencia de la computación, un aspecto importante
será el diseño de algoritmos.

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.

Características de los algoritmos

Las características fundamentales que debe cumplir todo algoritmo son:


 Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
 Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener
el mismo resultado cada vez.

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 15 de 31


 Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún
momento; o sea, debe tener un número finito de pasos.

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:

Entrada: la edad de la persona, información del año de nacimiento y el actual.


Proceso: realizar la diferencia del año actual menos el año de nacimiento.
Salida: visualización del resultado generado. Es decir, el resultado es la edad.

Escritura de algoritmos

Se emplea un lenguaje natural describiendo paso a paso el algoritmo en cuestión. En la


realización del algoritmo aplicar sus tres características: preciso, definido y finito. Por ejemplo
algoritmo para conocer si el promedio de un alumno es aprobatorio o no teniendo como
referencia que alumno cursa 5 materias y además que el promedio mínimo aprobatorio es
7.0.

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.

El lenguaje que se emplea es de lo más natural. En el ejemplo se ilustra la precisión de cada


una de las actividades, no se prestan a confusión. Así mismo podrá notarse que en el
ejemplo, por su naturaleza existió la necesidad de tomar decisiones, es por ello el empleo de
las palabras reservadas (si-entonces-sino if-then-else) las cuales se emplean para la
selección o toma de decisiones.

En el paso 5.1 y 5.2 se implementa lo que se conoce como (sangrado o justificación) en la


escritura de algoritmos, que no es más que una tabulación, estrategia recomendada tanto en
la escritura de éstos, como en la captura de programas de computadora, ya que faciliten la
lectura y permite un análisis más fluido de lo escrito.

Ejemplos de Pseudocódigo

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 16 de 31


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

Entorno: BASE, ALTURA, AREA son número enteros

Algoritmo:

            escribir “Introduzca la base y la altura”

            leer BASE, ALTURA

            calcular AREA = BASE * ALTURA

            escribir “El área del rectángulo es “AREA

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

Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros

Algoritmo:

escribir “Introduzca las notas”

leer NOTA1,NOTA2

calcular SUMA = NOTA1 + NOTA2

calcular PRODUCTO = NOTA1 * NOTA2

escribir “La suma de las dos notas es:” SUMA

escribir “El producto de las dos notas es :”PRODUCTO

Finprograma

Ejemplo: Realizar el pseudocódigo de un programa que permita saber si un número es mayor, menor o
igual a cero.

    Programa: ComparaNúmeros
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 17 de 31
Entorno: NUMERO es un número entero

Algoritmo:

Escribir “Introduzca un número “

leer NUMERO

SI NUMERO>0  ENTONCES

          escribir “El número introducido es positivo”

SI NO

          SI NUMERO<0 ENTONCES

                 escribir “El número introducido es negativo”

          SI NO

                 escribir “El número es cero”

          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
sentencia termina en punto y coma. De cualquier forma es inmediato apreciar los simples
cambios existentes.

program lee_tres_vertices;
var x,y:real;

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 18 de 31


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;

Problema: calcular y mostrar la suma de los diez primeros números


entre 1 y 1000 que sean divisibles por uno dado.

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

escribir ‘La suma es’, suma

fin programa

1.6 Diseño algorítmico de funciones


En este se explica detalladamente lo que realiza el algoritmo para resolver el problema
planteado. en un diseño de algoritmo que sea complejo puede subdividirse en subprogramas
para el estudio o la revisión de los pasos que lleven a la solución y sea menos el índice de
errores que tenga al momento de la prueba, y a este diseño se le conoce como diseño
modular pues es sencillo revisar cada proceso ya antes dividido para su rápida especificación
y prueba.

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.

        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
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 19 de 31
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).

        En la escritura de algoritmos las acciones de lectura y escritura se representan por los
formatos siguientes

leer (  Nom_variable  )

    escribir (lista de variables de salida)

 Ejemplo:      Obtener área de un triángulo.

Entrada

 Fórmula  (A=  B*h/2)

 Datos  (Base, altura)

Proceso

 Multiplicar Base y altura.

 Dividir resultado de la multiplicación anterior entre dos.

 Mostrar resultado de división anterior.

Salida

 Area del triángulo.

Algoritmo
Inicio

Leer(B)

leer(h)

x B*h

A x/2

Escribir(A)

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 20 de 31


Fin

Los programas más simples escritos en lenguajes imperativos suelen realizar tres tareas de forma
secuencial:

• Entrada de datos

• Procesamiento de los 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>

int main (int argc, char *argv[])

...

printf(“Mi programa v1.0”);

...

Mostrar datos en función de su tipo

char c;

...

printf (“%c”, c);

int i;

...

printf (“%d”, i);

long x;

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 21 de 31


...

printf (“%ld”, x);

float f;

...

printf (“%f”, f);

double d;

...

printf (“%lf”, d);

long double r;

...

printf (“%Lf”, r);

Mostrar mensajes en distintas líneas


printf (“Una línea de texto.\n”);

printf (“Otra línea de texto.\n”);

Entrada desde el teclado con la función scanf


La función scanf, de la biblioteca estándar de funciones de entrada/salida <stdio.h>, nos permite leer
datos desde el teclado para suministrarle datos de entrada a un programa:

#include <stdio.h>

int main (int argc, char *argv[])

...

scanf (“%d”,&dato);

...
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 22 de 31
}

Leer datos en función de su tipo

char c;

...

scanf (“%c”, &c);

int i;

...

scanf (“%d”, &i);

long x;

...

scanf (“%ld”, &x);

float f;

...

scanf (“%f”, &f);

double d;

...

scanf (“%lf”, &d);

long double r;

...

scanf (“%Lf”, &r);

Operaciones de entrada/salida
printf(“plantilla de formato”, lista de variables);

scanf(“plantilla de formato”, lista de referencias a variables);

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 23 de 31


Salida de datos con formato
Al representar un número o una cadena, podemos especificar cómo deseamos hacerlo:

Sintaxis general %-n.mX

• 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.

• X indica el tipo del dato:

%d Número entero en decimal

%x Número entero en hexadecimal

%o Número entero en octal

%c Carácter

%s Cadena de caracteres

%f Número real

%e Número real en notación científica

Lo destacable de la unidad seria…

Metodología para la solución de problemas por computadora


Planteamiento del problema

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.

Análisis del problema


 Entender de qué se trata el caso en cuestión, discurrirlo.
 Contextualizarlo
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 24 de 31
 Obtener datos de entrada, proceso y salida. Así como, los tipos de datos de la información
que se requiere.
 Descifrar si se requieren herramientas auxiliares para su solución: formulas, valores de
constantes, etc.

Diseño del algoritmo


 Cómo hace el programa para solucionar el caso (división de procesos, procedimientos y
subprocediemientos)
 Describir con palabras, símbolos o diagramas, la propuesta de solución
 Decidir si la representación de la solución es por: pseudocódigo o diagrama de flujo de datos.

Inicio

Declarar variables o contantes:

PI = 3.1416;

Programa principal

Escribir (“Dame el valor del radio”);

Leer (radio);

Area=Radio *Radio *PI;

Escribir (“El area del circulo fue de :”,Area);

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.

Empleando un editor de textos (no un procesador de textos¡¡), escribir:

#include <stdio.h>

#define PI 3.1416 /* definición de constante */

/***Programa que recibe el valor del radio de un círculo , calcula y *********/

/***y muestra por pantalla, el correspondiente valor del área. *********/

/***Elaboró: Héctor Bazarte Torres *********/

/***Fecha: 12-09-2012 *********/

/***Materia: ALP *********/

main (){

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 25 de 31


float radio, area;

printf ("dame el valor para el radio \n ");

scanf ("%f",&radio);

area= radio * radio * PI;

printf ("El area del circulo es..... %f ",area);

getch();

return 0;

}/* fin del programa principal */

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:

Libre de errores de escritura (de sintaxis o llamados sintácticos), principalmente.

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

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 26 de 31


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
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.).

2. Diseñe el algoritmo (en pseudocódigo) de un programa que:

1º) Pida por teclado la base (dato real) de un triángulo.


2º) Pida por teclado la altura (dato real) de un triángulo.
3º) Calcule el área del triángulo.
4º) Muestre por pantalla el resultado (dato real).

En pantalla:

Introduzca base: 1.2
Introduzca altura: 4.5
El área del triángulo es: 2.7

Nota: Área de un triángulo = base * altura / 2

3. Diseñe el algoritmo (en pseudocódigo) de un programa que:


1º) Pida por teclado dos números (datos enteros).
2º) Muestre por pantalla el resultado de realizar la división entera del primer número introducido por el usuario
entre el segundo, y el resto.

En pantalla:

Introduzca dividendo (entero): 39


Introduzca divisor (entero): 5
39 div 5 = 7 ( Resto = 4 )

Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 27 de 31


Nota: Se entiende que el usuario no introducirá un divisor igual a cero.

Zona de ejercicios
(Prácticas y ejercicios en clases: con valor indicado en los criterios de
unidad)

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).

NOTA: ESE NUMERO INICIAL, ESTARA GUARDADO EN UNA SOLA VARIABLE.

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!
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 28 de 31
Compiló: Ing. Héctor Bazarte Torres/Agosto-Diciembre 2018 29 de 31

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