Introducción a la Programación


              ISC-206
              Prof. Clariza Rosario
Unidad I Introducción
1.1 Breve historia sobre la
     Computación

A lo largo de la historia el hombre fue resolviendo sus necesidades de registro,
    para llevar la cuenta de sus bienes y efectuar las operaciones necesarias para
    la permuta o la venta de los mismos. Fue ideando métodos ágiles de cálculos,
    tales como contar con los elementos que les proporcionaba la naturaleza, por
    ejemplo: dedos, piedras, nudos en la soga, etc. Partiendo de la idea de contar
    con los dedos, los pueblos primitivos tomaron como base de sus cálculos el
    número 10, pero no todos tomaron el mismo sistema, los mayas calculaban en
    base al 20, los babilonios en base al 60, y los esquimales en base al 5, etc. En
    la medida que el hombre acumulaba un mayor número de posesiones,
    aumentaba la tarea de contar. El mundo antiguo iniciaba su expansión y los
    comerciantes compraban, vendían, efectuaban trueques, inventariaban,
    necesitaban un dispositivo para recoger información y obtener resultados
    exactos.
Uno de los dispositivos mecánicos primitivos de cálculos fue el contador de arena
    de los egipcios, que consistía en surco en la arena donde colocaban piedras o
    guijarros.
Todo el desarrollo de las computadoras suele divisarse
  por generaciones y el criterio que se determinó para
  determinar el cambio de generación no está muy
  bien definido, pero resulta aparente que deben
  cumplirse al menos los siguientes requisitos:
   – La forma en que están construidas.
   – Forma en que el ser humano se comunica con
     ellas.
Primera Generación de Computadores
En esta generación había un                  Características:
  gran desconocimiento de las          Estaban construidas por
  capacidades de las                    medio de tubos de vacío.
  computadoras, puesto que             Eran programadas en
  se realizó un estudio en esta         lenguaje de máquina.
  época que determinó que
  con veinte computadoras se           Grandes y costosas (aprox.
  saturaría el mercado de los           de ciento de miles de
  Estados Unidos en el campo            dólares).
  de procesamiento de datos.

Esta generación abarco la
   década de los cincuenta.

 Computadoras: IBM 701, IBM 650, UNIVAC 80 y 90, las IBM 704 y 709,
 Burroughs 220 y UNIVAC 1105.
Segunda Generación de Computadores.

                                                  Características :
Cerca de la década de 1960, las             Están construidas con circuitos de
   computadoras seguían                      transistores.
   evolucionando, se reducía su             Se programan en nuevos lenguajes
   tamaño y crecía su capacidad de           llamados lenguajes de alto nivel.
   procesamiento. También en esta           Mayor adaptación al equipo.
   época se empezó a definir la forma
   de comunicarse con las                   Posibilidad de obtener la máxima
   computadoras, que recibía el              velocidad con mínimo uso de
   nombre de programación de                 memoria
   sistemas.
Las computadoras representativas de
   esta generación fueron: la Philco
   212, UNIVAC M460, la Control
   Data Corporation modelo
   1604, seguida por la serie 3000, la
   IBM 7090 y la NCR 315.
Tercera generación de Computadores

Tecnológicamente, la tercera                     Características :
  generación de computadores             Su fabricación electrónica esta
  se caracteriza por la utilización       basada en circuitos integrados
  de circuitos integrados SSI             (chips).
  (pequeña escala de                     Su manejo es por medio de los
  integración) y MSI (media               lenguajes de control de los
  escala de                               sistemas operativos.
  integración), reemplazando a
  los circuitos de transistores
  directos, y consiguiéndose así
  una reducción significativa en
  coste y tamaño físico. También
  poco a poco se fueron
  imponiendo las memorias
  realizadas con circuitos
  integrados, desplazando a las
  memorias de núcleos de ferrita.
Cuarta Generación de Computadores


La época se refiere principalmente             Características :
   a las computadoras de 1980 y          Microchips
   continúa hasta la fecha.
   Aparecen los                          Difusión de sistemas operativos
   microprocesadores, un gran             estándar, no dependientes
   adelanto de la microelectrónica,       directamente de los
   que son circuitos integrados de        constructores del hardware
   alta densidad y con una                (Unix, MS-DOS y OS-DOS)
   velocidad impresionante.

Surge el concepto de <sistemas
  abiertos>, donde el usuario
  puede configurar su sistema
  prácticamente a medida,
  adquiriendo software,
  impresoras, unidades de disco,
  etc. de <terceros> fabricantes.
Quinta Generación de Computadores.

El termino quinta generación fue                Características :
    acuñado por los japoneses
    para describir las potentes e         Procesamiento en paralelo
    "inteligentes" computadoras            mediante arquitecturas y
    que deseaban producir a                diseños especiales y circuitos
    mediados de los noventa. La            de gran velocidad.
    meta es organizar sistemas de         Manejo de lenguaje natural y
    computación que produzcan              sistemas de inteligencia
    inferencias y no solamente             artificial.
    realicen cálculos. En el proceso
    se han incorporado muchos
    campos de investigación en la
    industria de la
    computación, como la
    inteligencia artificial, los
    sistemas expertos y el lenguaje
    natural.
1.2 Evolución de los lenguajes de
programación

Con la llegada de las computadoras aparecen las
   secuencias de posiciones de llaves eléctricas que debían
   conectarse para obtener una acción determinada, una
   llave conectada era un 1 y una llave desconectada era un
   0. Una sucesión de llaves en cualquiera de sus dos
   posiciones definía una secuencia de ceros y unos (por
   ejemplo: 0100011010011101...) que venía a representar
   una instrucción o un conjunto de instrucciones
   (programa) para el computador en el que se estaba
   trabajando.
A esta primera forma de especificar programas para una
   computadora se la denomina lenguaje máquina.
La necesidad de recordar secuencias de programación para las
   acciones usuales llevó a denominarlas con nombres fáciles de
   memorizar y asociar: ADD (sumar), SUB (restar), MUL
   (multiplicar), CALL (ejectuar subrutina), etc.
A esta secuencia de posiciones se le denominó
   "instrucciones", y a este conjunto de instrucciones se le llamó
   lenguaje ensamblador.

Posteriormente aparecieron diferentes lenguajes de
  programación, los cuales reciben su denominación porque
  tienen una estructura sintáctica similar a los lenguajes escritos
  por los humanos.
e

l
e
n
g
       Las cinco generaciones de lenguajes
u      de programación
a
j
e
s Generación         Nombre                             Particularidad

d Primera                             Específico para cada microprocesador, uso de
               De máquina
e                                     código binario
                                      Uso de nemotécnicos que abstraen del
p Segunda      Ensamblador
                                      lenguaje máquina.
r
o                                     Lenguajes estructurados con comandos
  Tercera      De procedimientos
g                                     cercanos al lenguaje común.
r
a Cuarta                              Programas orientados a problemas
               Orientados a objetos
m                                     específicos.
a                                     Incluye inteligencia artificial y sistemas
c Quinta       Natural
                                      expertos.
i
Muestra de código de máquina y lenguaje assembler del Intel 8088.
El código de máquina se resalta en rojo, el código assembler en magenta y
las direcciones de memoria donde se encuentra el código, en azul.
Entre los lenguajes de tercera
generación se incluyen:

FORTRAN (Formula TRANslator), diseñado específicamente para programas matemáticos y
    de ingeniería.
COBOL (Common Business Oriented Languaje) desarrollado en 1960, ganó amplia aceptación
    como lenguaje estandarizado llegándose a utilizar ampliamente en los negocios.
BASIC (Begginners Allpurpose Symbolic Instruction Code) Fue desarrollado por Jhon Kemeny
    y Thomas Kurtz en 1964. Por su simplicidad se volvió ampliamente popular y usado en
    educación y entre los programadores aficionados.
PASCAL, nombrado en honor del inventor francés Blas Pascal, es introducido por Niklaus
    Wirth en 1971. El Pascal, buscaba superar las limitaciones de los otros lenguajes de
    programación y demostrar la manera adecuada de implementar un lenguaje de cómputo.
C, desarrollado a principios de los sesenta por Brian Kernighan y Dennis Ritchie. El C es
    poderoso, puesto que brinda la libertad de conseguir que se realice casi cualquier cosa en
    una computadora.
C++, Es un lenguaje de principios de los ochenta desarrollado por Bjarne Stroustrup. Es
    extremadamente poderoso y eficiente igual que el C.
Java (1991) es desarrollado por Sun Microsistema. Cuando Internet comenzó a ganar
    popularidad como red de comunicaciones a mediados de los noventa, Sun redirige a
    Java para convertirlo en un ambiente de programación que permitiese crear sistemas
    interactivos y dinámicos (denominados applets) para las páginas Web.
Entre los programas de cuarta
generación se tienen:

   Los programas de ambientes visuales:
    Existen versiones de programas populares
    como el Visual BASIC o el Visual
    C, PHP, Java, los cuales, soportan
    características y métodos orientados a
    objetos y que permiten crear programas en
    un ambiente visual.
Clasificación de los lenguajes de
programación

   Según el nivel de abstracción,
   Según la forma de ejecución, y
   Según el paradigma de programación que
    poseen cada uno de ellos.
Según su nivel de abstracción
   Lenguajes de bajo nivel
    Los lenguajes de bajo nivel son lenguajes de programación que se acercan al
    funcionamiento de una computadora. El lenguaje de más bajo nivel es, por
    excelencia, el código máquina. A éste le sigue el lenguaje ensamblador.
   Lenguajes de medio nivel
    Tal es el caso del lenguaje C, entre otros, que tiene ciertas características
    que lo acercan a los lenguajes de bajo nivel pero, al mismo tiempo, ciertas
    cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de
    alto nivel.
   Lenguajes de alto nivel
    Los lenguajes de alto nivel son normalmente fáciles de aprender porque están
    formados por elementos de lenguajes naturales, como el inglés.
    En BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF
    CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora
    que pare si CONTADOR es igual a 10.
Ejemplo Lenguaje de Alto nivel
Según la forma de ejecución
   Lenguajes compilados
    Los compiladores son aquellos cuya función es traducir un programa escrito en un
    determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con
    código binario).
    Al usar un lenguaje compilado (p. e. los lenguajes del popular Visual Studio de Microsoft),
    el programa desarrollado nunca se ejecuta mientras haya errores.
   Lenguajes interpretados
    Una alternativa diferente para traducir lenguajes de alto nivel. En vez de traducir el
    programa fuente y grabar en forma permanente el código objeto que se produce durante la
    corrida de compilación para utilizarlo en una corrida de producción futura, el programador
    sólo carga el programa fuente en la computadora junto con los datos que se van a
    procesar.
    A continuación, un programa intérprete, almacenado en el sistema operativo del disco,
    convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya
    siendo necesario durante el proceso de los datos. No se graba el código objeto para
    utilizarlo posteriormente.
    La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a
    lenguaje máquina. lo cual hace que el programa sea más lento en tiempo de ejecución
    (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de
    diseño (porque no se tiene que estar compilando a cada momento el código completo).
Proceso de compilación
Según el paradigma de programación

Un paradigma de programación representa un enfoque particular o filosofía para la
   construcción del software.
No es mejor uno que otro sino que cada uno tiene ventajas y desventajas.
   También hay situaciones donde un paradigma resulta más apropiado que otro.
Atendiendo al paradigma de programación, se pueden clasificar los lenguajes en :
  Lenguajes imperativos
   BASIC,C ,C++ ,Java ,C# ,Perl
  Lenguajes Funcionales
     – Puros: Haskell ,Miranda
     – Híbridos: Lisp ,Scheme ,Ocaml ,Standard ML ,ML
  Lenguajes Logicos
   Prolog
  Lenguajes orientados a objetos
   Action Script, Ada ,C++ , C# , VB.NET ,Visual FoxPro , Clarion , Delphi ,
   Harbour , Eiffel ,Java , JavaScript , Lexico (en castellano) , Objective-C, Ocaml
   , Oz , Perl ,PHP, PowerBuilder , Python.
1.4 Origen del Lenguaje C. El sistema
operativo UNIX

   C es un lenguaje de programación creado en 1969 por Ken Thompson
    y Dennis M. Ritchie en los Laboratorios Bell como evolución del
    anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un
    lenguaje orientado a la implementación de Sistemas Operativos,
    concretamente Unix. C es apreciado por la eficiencia del código que
    produce y es el lenguaje de programación más popular para crear
    software de sistemas, aunque también se utiliza para crear
    aplicaciones.
   Se trata de un lenguaje débilmente tipado de medio nivel pero con
    muchas características de bajo nivel. Dispone de las estructuras
    típicas de los lenguajes de alto nivel pero, a su vez, dispone de
    construcciones del lenguaje que permiten un control a muy bajo nivel.
    Los compiladores suelen ofrecer extensiones al lenguaje que
    posibilitan mezclar código en ensamblador con código C o acceder
    directamente a memoria o dispositivos periféricos.
C se desarrolló originalmente (conjuntamente con el sistema
   operativo Unix, con el que ha estado asociado mucho tiempo)
   por programadores para programadores. Sin embargo, ha
   alcanzado una popularidad enorme, y se ha usado en
   contextos muy alejados de la programación de sistemas, para
   la que se diseñó originalmente.
La versión original de Unix se desarrolló en lenguaje
   ensamblador. Más tarde, el lenguaje C se desarrolló para
   poder reescribir el sistema operativo.
En 1973, el lenguaje C se había vuelto tan potente que la mayor
   parte del kernel Unix, originalmente escrito en el lenguaje
   ensamblador PDP-11/20, fue reescrita en C. Éste fue uno de
   los primeros núcleos de sistema operativo implementados en
   un lenguaje distinto al ensamblador.
Programación


Se conoce como programación de computadoras a
  la implementación de un algoritmo en un
  determinado lenguaje de
  programación, conformando un programa.
Mientras que un algoritmo se ejecuta en una máquina
  abstracta que no tiene limitaciones de memoria o
  tiempo, un programa se ejecuta en una máquina
  real, que sí tiene esas limitaciones.
Objetivos de la programación
   Corrección: un programa es correcto si hace lo que debe hacer. Para
    determinar si un programa hace lo que debe es muy importante especificar
    claramente qué debe hacer el programa antes de desarrollarlo y una vez
    acabado compararlo con lo que realmente hace.
   Claridad: es muy importante que el programa sea lo más claro y legible
    posible para mejorar el mantenimiento del software.
     Cuando se acaba de escribir el código del programa, se deben buscar errores
    y corregirlos. Más luego, cuando el programa está concluido, es necesario
    hacerle ampliaciones o modificaciones, según la demanda de los usuarios.
   Eficiencia: debe consumir la menor cantidad de recursos posible.
    Normalmente al hablar de eficiencia se suele hacer referencia al consumo de
    tiempo y/o memoria.
La eficiencia y la claridad de un programa pueden ser objetivos contrapuestos: se
    puede conseguir mayor claridad sacrificando parte de la eficiencia o viceversa.
    Pero hay que tener en cuenta que el tiempo del programador es caro, y que
    hoy en día el precio de los ordenadores es razonable y cada vez son más
    baratos.
¿Qué es un programador de
computadoras?

Existen muchas definiciones para los programadores de
   computadoras, la mayoría de las cuales tienen que ver con
   conocimientos técnicos para diseñar, escribir, probar y
   documentar programas de software orientados a resolver
   problemas usando un lenguaje de programación y una
   computadora como herramientas.
Pero además, él o ella poseen la capacidad de resolver problemas
   y se deleitan al buscar soluciones particulares y toman como
   reto o juego intelectual el hacerlo. Explotan al máximo las
   capacidades de las computadoras, convirtiéndose en agentes
   de cambio en sus ambientes de trabajo al automatizar tareas
   manuales, repetitivas, tediosas, lentas o complejas.
Características de un buen
programador

   Capacidad analítica para comprender los problemas que se le
    planteen.
   Lógica y buen sentido común.
   Capacidad de observación.
   Espíritu autodidacta e investigativo.
   Habilidad para estructurar una serie de pasos que conduzcan a
    la solución de los problemas tomando en cuenta las
    capacidades y limitantes de la computadora.
    Podemos mencionar además de las anteriores otras
    características adicionales igualmente importantes que un
    programador debe poseer, tales como la constancia, la
    dedicación, la disciplina y el deseo de superación.
La actitud del programador es vital, pero las habilidades lo son más. Tener la
actitud no es lo mismo que ser competente, por tanto existen un cierto
conjunto de herramientas básicas que debes dominar



   Conocer y dominar conceptos básicos de informática (ordenador, hardware, software y
    su clasificaciones, datos, información, sus unidades de medida y los diferentes medios de
    almacenamiento de datos ).
   Aprender cómo aprovechar al máximo tu sistema operativo, sus capacidades y las del
    ordenador, en particular cómo administrar archivos, cómo ejecutar programas y utilizar los
    periféricos; debes además conocer cómo utilizar sus herramientas (utilerías de discos,
    editores de texto, calculadoras, programas de gráficos, administradores de impresión, etc.)
    y las facilidades que ofrece (multitarea, modos gráficos y modo texto, uso de ventanas,
    etc.).
   Consigue un inglés funcional, la mayoría de los lenguajes de programación incorporan
    en su sintaxis una gran cantidad de palabras inglesas, además, más de la mitad del
    contenido de la Red se encuentra en este idioma.
   conocer y dominar conceptos teóricos fundamentales de la programación tales como
    variables, constantes, tipos de datos, algoritmo, sentencias de control, flujogramación,
    programa, lenguajes de programación, estructuras de datos, compilación, traducción,
    además de tópicos relacionados tales como el ciclo de vida de los programas, estrategias
    de diseño y métodos de prueba de programas.

   Obtén el compilador de un lenguaje y aprende a programar en él. Estudia un lenguaje
    de programación. Aprende a programar en él. Usa las herramientas que ofrece y los
    conceptos de programación que implementa. Lee los ejemplos que traen los libros para
    comprenderlos y practica modificándolos.
Características de un buen programa.

   Confiabilidad, es decir, el programa debe funcionar
    en prácticamente cualquier situación.
   Debe advertir los errores de entrada comunes y
    obvios.
   Debe ser bien estructurado, es decir, que utilicen
    organizaciones de la programación estructurada.
   Estar adecuadamente documentado y ser
    comprensible, no sólo para quien lo crea, sino para
    otros programadores. Esto es para facilitar las
    futuras y muy posibles modificaciones que requiera.
Pasos para la creación de programas
Pasos de la Programación
                    Pasos                               Descripción

                                           Determinar objetivos, salida, entrada y
1.   Especificación
                                           requerimientos del programa

                                           Delinear los componentes y sus
2.   Diseño
                                           interfaces

                                           Generar el programa en un lenguaje
3.   Codificación
                                           de programación
                                           Verificar desempeño del programa,
4.   Prueba                                determinar errores de sintaxis y lógica


                                           Redactar documentación para
5.   Documentación                         usuarios y programadores


                                           Corrección de errores, ajustes por
6.   Mantenimiento                         nuevos cambios
Unidad II:
Conceptos Básicos de Programación.
Definición y descripción de algoritmos

Se denomina algoritmo a una serie finita de pasos o instrucciones mediante los
   cuales se resuelve un problema o se ejecuta una tarea específica. Más
   formalmente los algoritmos se caracterizan por:
      • Ser finitos, porque tienen un número determinado de pasos.
      • Ser definidos, lo que implica que cada vez que se siga se obtendrá
         invariablemente el mismo resultado.
      • Ser precisos, pues cada paso tiene un orden a seguir.
   Los algoritmos especifican los pasos (instrucciones) que permiten llegar a la
   solución de un problema, sin importar si el proceso es manual o automatizado.
   De modo que no se encuentran exclusivamente relacionados con la
   computación.
    En la vida cotidiana son empleados en diversas ocasiones. Por ejemplo, los
   pasos seguidos para retirar dinero de un cajero automático de un banco o
   cuando se sigue una receta de cocina. Se puede entenderlos entonces, como
   una especie de “receta” que indica los pasos que permiten alcanzar la solución
   de un problema.
Diagrama de flujo

"Es un esquema para representar gráficamente un
  algoritmo. 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.
Se utiliza principalmente en programación, economía y
  procesos industriales.
Simbología

     Inicio / Terminación. Este símbolo se utiliza para señalar el
     comienzo así como el final de un diagrama. Tradicionalmente
     se colocan las palabras “INICIO” ó “FIN” dentro de la figura para
     hacerlo más explícito.
     Es el único símbolo que solamente tiene una conexión (flecha)
     ya sea de salida, en el de inicio, o de entrada, para el de fin.


     Entrada de datos. En este símbolo se indican los valores
     iniciales que deberá recibir el proceso. Esto se hace
     asignándoles letras o nombres de variables para cada uno de
     los valores y anotando estas letras en el interior de la figura.
     Este símbolo siempre deberá tener al menos una conexión
     entrante (generalmente del inicio) y una de salida.
Proceso de datos. Este símbolo lo utilizaremos para señalar operaciones
matemáticas, aritméticas o procesos específicos que se realicen con nuestros datos.
La manera de anotar dichos procesos, puede ser mediante una descripción breve de la
operación o mediante una asignación de dicha operación hacia una variable como por
ejemplo: R ← A + B
Este símbolo siempre deberá tener al menos una conexión de entrada y una de salida.

 Decisión. Este símbolo nos representa una disyuntiva lógica o decisión. En su interior
se anota una instrucción o pregunta que pueda ser evaluada como cierta o falsa y que
determine el flujo del programa.
Este símbolo es el único que puede contener dos salidas y en cada una de las salidas
se suele poner un rótulo de “si/no” o “cierto/falso” indicando con esto cual de ellas se
tomará según el resultado de la evaluación de la función.
Es una buena práctica de diagramación utilizar siempre el mismo lado para los
positivos siempre que esto sea posible.
Desplegado de información. Este símbolo se utiliza
para mostrar un resultado, el cual puede representar la
solución al problema que se pretende resolver y que fue
conseguida a través del resto del diagrama.
Dentro de su interior se anotará la variable con el
resultado final o el mensaje que represente el resultado
del algoritmo.
Generalmente veremos este símbolo muy cerca del final
del proceso y precedido por el símbolo de terminación.
Este símbolo siempre deberá tener al menos una
conexión de entrada y una de salida.
Ejemplo de un diagrama de flujo simple

                                 diferentes
Ejercicios propuestos
1.   Hacer un diagrama para calcular el área de un triángulo.

2.   Hacer un diagrama para convertir de grados centígrados a grados Fahrenheit.

3.   Hacer un diagrama para imprimir la suma de los números del 1 al 100.

4.   Hacer un diagrama que te pida un número y te diga si es par, es non y/o es primo.

5.   Hacer un diagrama para imprimir la sucesión de Fibonacci.

6.   Hacer un diagrama que pida 10 números y muestre el promedio.

7.   Hacer un diagrama que pida 3 números y diga cual es el mayor.

8.   Hacer un diagrama que pida la edad y despliegue si es menor de edad (<18), mayor
     (>=18) o si pertenece a la 3ª edad.(>=60)
Ejercicios propuestos (cont.)

   Hacer un diagrama para calcular el factorial de un número.

   Hacer un diagrama que calcule e imprima N números primos.

   Hacer un diagrama que solicite 4 calificaciones y diga si está
    reprobado o no, según las reglas de tu escuela.

   Hacer un diagrama que pida un número N y despliegue todas
    las combinaciones de dos números que sumados den N.

   Hacer un diagrama que despliegue la tabla de multiplicar de un
    número X.
Ejercicio No. 1

Diseñar un diagrama de flujo para calcular y mostrar el área de un triángulo.
El diagrama deberá de solicitar los datos necesarios y mostrar el resultado.
Ejercicio No. 2

Diseñar un diagrama de flujo para convertir de grados centígrados a grados
Fahrenheit.
El diagrama deberá de solicitar los datos necesarios y mostrar el resultado.
Ejercicio No. 4

Diseñar un diagrama de flujo que solicite un número y determine si este es
par o es non.
Variables
Las variables son los “contenedores” de los datos que se van a
   procesar, son un elemento común en la mayor parte de los lenguajes
   de computación. Físicamente, las variables son áreas designadas de
   memoria en donde se guarda el valor del dato. Supongamos que se
   escribe un programa en el cual se solicitan sueldos de empleados. Se
   debe contar con una variable que guarde ese dato. Puede escogerse
   nombrarla, por ejemplo, v_sueldo.
   Cuando, a solicitud del programa, el usuario introduce un número, ese
   dato se convierte en el valor de la variable v_sueldo. Entonces de
   manera semejante como en álgebra o física, las variables pueden ser
   usadas en programación para realizar operaciones de informática. Si
   el programa indica la declaración v_sueldo + 500 y el valor en
   v_sueldo = 1.000, el resultado para esta declaración va a ser 1.500.
c
i
A continuación se presenta como ejemplo un sencillo programa fuente, escrito en C, y justo al lado se
ó
explica la acción que realizará la computadora en respuesta a los comandos del programa.
n
El programa tiene como finalidad el cálculo del promedio de una lista de cinco números.
 q
           Instrucciones en Lenguaje C                            Acción de la computadora
 u
                                            1.- Define una matriz (datos) de números enteros y le asigna los
 e
int datos[ ] = { 25, 88, 20, 75, 62 };
                                                 valores 25, 88, 20, 75, 62.

int nDatos = 5;                             2.- Define la variable (nDatos) de tipo entero y le asigna el valor 5.
 r
                                            3.- Define la función (promedio) que devuelve un número entero.
 e
int promedio ()

{a
 l int suma;                                4.- Define la variable (suma) de tipo entero.
 i int prom;                                5.- Define la variable (prom) de tipo entero.
 zint cont;                                 6.- Define la variable (cont) de tipo entero.
 asuma = 0;                                 7.- Asigna a suma el valor 0.
 r                                          8.- Para cada elemento de la matriz datos, añade su valor a la
   for (cont=0; cont<nDatos; cont++)
 á                                               variable suma.
    {

l   suma += datos [cont];

a   }
                                            9.- Asigna a prom el resultado de dividir la variable suma por la
 prom=suma/nDatos;
                                                 variable nDatos.
c
                                            10.- Devuelve como resultado de la función el contenido de la variable
oreturn (prom);                                  prom.
m
}

Introduccion a lenguaje_c

  • 1.
    Introducción a laProgramación ISC-206 Prof. Clariza Rosario
  • 2.
  • 3.
    1.1 Breve historiasobre la Computación A lo largo de la historia el hombre fue resolviendo sus necesidades de registro, para llevar la cuenta de sus bienes y efectuar las operaciones necesarias para la permuta o la venta de los mismos. Fue ideando métodos ágiles de cálculos, tales como contar con los elementos que les proporcionaba la naturaleza, por ejemplo: dedos, piedras, nudos en la soga, etc. Partiendo de la idea de contar con los dedos, los pueblos primitivos tomaron como base de sus cálculos el número 10, pero no todos tomaron el mismo sistema, los mayas calculaban en base al 20, los babilonios en base al 60, y los esquimales en base al 5, etc. En la medida que el hombre acumulaba un mayor número de posesiones, aumentaba la tarea de contar. El mundo antiguo iniciaba su expansión y los comerciantes compraban, vendían, efectuaban trueques, inventariaban, necesitaban un dispositivo para recoger información y obtener resultados exactos. Uno de los dispositivos mecánicos primitivos de cálculos fue el contador de arena de los egipcios, que consistía en surco en la arena donde colocaban piedras o guijarros.
  • 4.
    Todo el desarrollode las computadoras suele divisarse por generaciones y el criterio que se determinó para determinar el cambio de generación no está muy bien definido, pero resulta aparente que deben cumplirse al menos los siguientes requisitos: – La forma en que están construidas. – Forma en que el ser humano se comunica con ellas.
  • 5.
    Primera Generación deComputadores En esta generación había un Características: gran desconocimiento de las  Estaban construidas por capacidades de las medio de tubos de vacío. computadoras, puesto que  Eran programadas en se realizó un estudio en esta lenguaje de máquina. época que determinó que con veinte computadoras se  Grandes y costosas (aprox. saturaría el mercado de los de ciento de miles de Estados Unidos en el campo dólares). de procesamiento de datos. Esta generación abarco la década de los cincuenta. Computadoras: IBM 701, IBM 650, UNIVAC 80 y 90, las IBM 704 y 709, Burroughs 220 y UNIVAC 1105.
  • 6.
    Segunda Generación deComputadores. Características : Cerca de la década de 1960, las  Están construidas con circuitos de computadoras seguían transistores. evolucionando, se reducía su  Se programan en nuevos lenguajes tamaño y crecía su capacidad de llamados lenguajes de alto nivel. procesamiento. También en esta  Mayor adaptación al equipo. época se empezó a definir la forma de comunicarse con las  Posibilidad de obtener la máxima computadoras, que recibía el velocidad con mínimo uso de nombre de programación de memoria sistemas. Las computadoras representativas de esta generación fueron: la Philco 212, UNIVAC M460, la Control Data Corporation modelo 1604, seguida por la serie 3000, la IBM 7090 y la NCR 315.
  • 7.
    Tercera generación deComputadores Tecnológicamente, la tercera Características : generación de computadores  Su fabricación electrónica esta se caracteriza por la utilización basada en circuitos integrados de circuitos integrados SSI (chips). (pequeña escala de  Su manejo es por medio de los integración) y MSI (media lenguajes de control de los escala de sistemas operativos. integración), reemplazando a los circuitos de transistores directos, y consiguiéndose así una reducción significativa en coste y tamaño físico. También poco a poco se fueron imponiendo las memorias realizadas con circuitos integrados, desplazando a las memorias de núcleos de ferrita.
  • 8.
    Cuarta Generación deComputadores La época se refiere principalmente Características : a las computadoras de 1980 y  Microchips continúa hasta la fecha. Aparecen los  Difusión de sistemas operativos microprocesadores, un gran estándar, no dependientes adelanto de la microelectrónica, directamente de los que son circuitos integrados de constructores del hardware alta densidad y con una (Unix, MS-DOS y OS-DOS) velocidad impresionante. Surge el concepto de <sistemas abiertos>, donde el usuario puede configurar su sistema prácticamente a medida, adquiriendo software, impresoras, unidades de disco, etc. de <terceros> fabricantes.
  • 9.
    Quinta Generación deComputadores. El termino quinta generación fue Características : acuñado por los japoneses para describir las potentes e  Procesamiento en paralelo "inteligentes" computadoras mediante arquitecturas y que deseaban producir a diseños especiales y circuitos mediados de los noventa. La de gran velocidad. meta es organizar sistemas de  Manejo de lenguaje natural y computación que produzcan sistemas de inteligencia inferencias y no solamente artificial. realicen cálculos. En el proceso se han incorporado muchos campos de investigación en la industria de la computación, como la inteligencia artificial, los sistemas expertos y el lenguaje natural.
  • 10.
    1.2 Evolución delos lenguajes de programación Con la llegada de las computadoras aparecen las secuencias de posiciones de llaves eléctricas que debían conectarse para obtener una acción determinada, una llave conectada era un 1 y una llave desconectada era un 0. Una sucesión de llaves en cualquiera de sus dos posiciones definía una secuencia de ceros y unos (por ejemplo: 0100011010011101...) que venía a representar una instrucción o un conjunto de instrucciones (programa) para el computador en el que se estaba trabajando. A esta primera forma de especificar programas para una computadora se la denomina lenguaje máquina.
  • 11.
    La necesidad derecordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejectuar subrutina), etc. A esta secuencia de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los humanos.
  • 12.
    e l e n g Las cinco generaciones de lenguajes u de programación a j e s Generación Nombre Particularidad d Primera Específico para cada microprocesador, uso de De máquina e código binario Uso de nemotécnicos que abstraen del p Segunda Ensamblador lenguaje máquina. r o Lenguajes estructurados con comandos Tercera De procedimientos g cercanos al lenguaje común. r a Cuarta Programas orientados a problemas Orientados a objetos m específicos. a Incluye inteligencia artificial y sistemas c Quinta Natural expertos. i
  • 13.
    Muestra de códigode máquina y lenguaje assembler del Intel 8088. El código de máquina se resalta en rojo, el código assembler en magenta y las direcciones de memoria donde se encuentra el código, en azul.
  • 14.
    Entre los lenguajesde tercera generación se incluyen: FORTRAN (Formula TRANslator), diseñado específicamente para programas matemáticos y de ingeniería. COBOL (Common Business Oriented Languaje) desarrollado en 1960, ganó amplia aceptación como lenguaje estandarizado llegándose a utilizar ampliamente en los negocios. BASIC (Begginners Allpurpose Symbolic Instruction Code) Fue desarrollado por Jhon Kemeny y Thomas Kurtz en 1964. Por su simplicidad se volvió ampliamente popular y usado en educación y entre los programadores aficionados. PASCAL, nombrado en honor del inventor francés Blas Pascal, es introducido por Niklaus Wirth en 1971. El Pascal, buscaba superar las limitaciones de los otros lenguajes de programación y demostrar la manera adecuada de implementar un lenguaje de cómputo. C, desarrollado a principios de los sesenta por Brian Kernighan y Dennis Ritchie. El C es poderoso, puesto que brinda la libertad de conseguir que se realice casi cualquier cosa en una computadora. C++, Es un lenguaje de principios de los ochenta desarrollado por Bjarne Stroustrup. Es extremadamente poderoso y eficiente igual que el C. Java (1991) es desarrollado por Sun Microsistema. Cuando Internet comenzó a ganar popularidad como red de comunicaciones a mediados de los noventa, Sun redirige a Java para convertirlo en un ambiente de programación que permitiese crear sistemas interactivos y dinámicos (denominados applets) para las páginas Web.
  • 15.
    Entre los programasde cuarta generación se tienen:  Los programas de ambientes visuales: Existen versiones de programas populares como el Visual BASIC o el Visual C, PHP, Java, los cuales, soportan características y métodos orientados a objetos y que permiten crear programas en un ambiente visual.
  • 16.
    Clasificación de loslenguajes de programación  Según el nivel de abstracción,  Según la forma de ejecución, y  Según el paradigma de programación que poseen cada uno de ellos.
  • 17.
    Según su nivelde abstracción  Lenguajes de bajo nivel Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel es, por excelencia, el código máquina. A éste le sigue el lenguaje ensamblador.  Lenguajes de medio nivel Tal es el caso del lenguaje C, entre otros, que tiene ciertas características que lo acercan a los lenguajes de bajo nivel pero, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.  Lenguajes de alto nivel Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10.
  • 18.
  • 20.
    Según la formade ejecución  Lenguajes compilados Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario). Al usar un lenguaje compilado (p. e. los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores.  Lenguajes interpretados Una alternativa diferente para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo).
  • 21.
  • 22.
    Según el paradigmade programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro. Atendiendo al paradigma de programación, se pueden clasificar los lenguajes en :  Lenguajes imperativos BASIC,C ,C++ ,Java ,C# ,Perl  Lenguajes Funcionales – Puros: Haskell ,Miranda – Híbridos: Lisp ,Scheme ,Ocaml ,Standard ML ,ML  Lenguajes Logicos Prolog  Lenguajes orientados a objetos Action Script, Ada ,C++ , C# , VB.NET ,Visual FoxPro , Clarion , Delphi , Harbour , Eiffel ,Java , JavaScript , Lexico (en castellano) , Objective-C, Ocaml , Oz , Perl ,PHP, PowerBuilder , Python.
  • 23.
    1.4 Origen delLenguaje C. El sistema operativo UNIX  C es un lenguaje de programación creado en 1969 por Ken Thompson y Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.  Se trata de un lenguaje débilmente tipado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.
  • 24.
    C se desarrollóoriginalmente (conjuntamente con el sistema operativo Unix, con el que ha estado asociado mucho tiempo) por programadores para programadores. Sin embargo, ha alcanzado una popularidad enorme, y se ha usado en contextos muy alejados de la programación de sistemas, para la que se diseñó originalmente. La versión original de Unix se desarrolló en lenguaje ensamblador. Más tarde, el lenguaje C se desarrolló para poder reescribir el sistema operativo. En 1973, el lenguaje C se había vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue reescrita en C. Éste fue uno de los primeros núcleos de sistema operativo implementados en un lenguaje distinto al ensamblador.
  • 25.
    Programación Se conoce comoprogramación de computadoras a la implementación de un algoritmo en un determinado lenguaje de programación, conformando un programa. Mientras que un algoritmo se ejecuta en una máquina abstracta que no tiene limitaciones de memoria o tiempo, un programa se ejecuta en una máquina real, que sí tiene esas limitaciones.
  • 26.
    Objetivos de laprogramación  Corrección: un programa es correcto si hace lo que debe hacer. Para determinar si un programa hace lo que debe es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y una vez acabado compararlo con lo que realmente hace.  Claridad: es muy importante que el programa sea lo más claro y legible posible para mejorar el mantenimiento del software. Cuando se acaba de escribir el código del programa, se deben buscar errores y corregirlos. Más luego, cuando el programa está concluido, es necesario hacerle ampliaciones o modificaciones, según la demanda de los usuarios.  Eficiencia: debe consumir la menor cantidad de recursos posible. Normalmente al hablar de eficiencia se suele hacer referencia al consumo de tiempo y/o memoria. La eficiencia y la claridad de un programa pueden ser objetivos contrapuestos: se puede conseguir mayor claridad sacrificando parte de la eficiencia o viceversa. Pero hay que tener en cuenta que el tiempo del programador es caro, y que hoy en día el precio de los ordenadores es razonable y cada vez son más baratos.
  • 27.
    ¿Qué es unprogramador de computadoras? Existen muchas definiciones para los programadores de computadoras, la mayoría de las cuales tienen que ver con conocimientos técnicos para diseñar, escribir, probar y documentar programas de software orientados a resolver problemas usando un lenguaje de programación y una computadora como herramientas. Pero además, él o ella poseen la capacidad de resolver problemas y se deleitan al buscar soluciones particulares y toman como reto o juego intelectual el hacerlo. Explotan al máximo las capacidades de las computadoras, convirtiéndose en agentes de cambio en sus ambientes de trabajo al automatizar tareas manuales, repetitivas, tediosas, lentas o complejas.
  • 28.
    Características de unbuen programador  Capacidad analítica para comprender los problemas que se le planteen.  Lógica y buen sentido común.  Capacidad de observación.  Espíritu autodidacta e investigativo.  Habilidad para estructurar una serie de pasos que conduzcan a la solución de los problemas tomando en cuenta las capacidades y limitantes de la computadora. Podemos mencionar además de las anteriores otras características adicionales igualmente importantes que un programador debe poseer, tales como la constancia, la dedicación, la disciplina y el deseo de superación.
  • 29.
    La actitud delprogramador es vital, pero las habilidades lo son más. Tener la actitud no es lo mismo que ser competente, por tanto existen un cierto conjunto de herramientas básicas que debes dominar  Conocer y dominar conceptos básicos de informática (ordenador, hardware, software y su clasificaciones, datos, información, sus unidades de medida y los diferentes medios de almacenamiento de datos ).  Aprender cómo aprovechar al máximo tu sistema operativo, sus capacidades y las del ordenador, en particular cómo administrar archivos, cómo ejecutar programas y utilizar los periféricos; debes además conocer cómo utilizar sus herramientas (utilerías de discos, editores de texto, calculadoras, programas de gráficos, administradores de impresión, etc.) y las facilidades que ofrece (multitarea, modos gráficos y modo texto, uso de ventanas, etc.).  Consigue un inglés funcional, la mayoría de los lenguajes de programación incorporan en su sintaxis una gran cantidad de palabras inglesas, además, más de la mitad del contenido de la Red se encuentra en este idioma.  conocer y dominar conceptos teóricos fundamentales de la programación tales como variables, constantes, tipos de datos, algoritmo, sentencias de control, flujogramación, programa, lenguajes de programación, estructuras de datos, compilación, traducción, además de tópicos relacionados tales como el ciclo de vida de los programas, estrategias de diseño y métodos de prueba de programas.  Obtén el compilador de un lenguaje y aprende a programar en él. Estudia un lenguaje de programación. Aprende a programar en él. Usa las herramientas que ofrece y los conceptos de programación que implementa. Lee los ejemplos que traen los libros para comprenderlos y practica modificándolos.
  • 30.
    Características de unbuen programa.  Confiabilidad, es decir, el programa debe funcionar en prácticamente cualquier situación.  Debe advertir los errores de entrada comunes y obvios.  Debe ser bien estructurado, es decir, que utilicen organizaciones de la programación estructurada.  Estar adecuadamente documentado y ser comprensible, no sólo para quien lo crea, sino para otros programadores. Esto es para facilitar las futuras y muy posibles modificaciones que requiera.
  • 31.
    Pasos para lacreación de programas
  • 32.
    Pasos de laProgramación Pasos Descripción Determinar objetivos, salida, entrada y 1. Especificación requerimientos del programa Delinear los componentes y sus 2. Diseño interfaces Generar el programa en un lenguaje 3. Codificación de programación Verificar desempeño del programa, 4. Prueba determinar errores de sintaxis y lógica Redactar documentación para 5. Documentación usuarios y programadores Corrección de errores, ajustes por 6. Mantenimiento nuevos cambios
  • 33.
  • 34.
    Definición y descripciónde algoritmos Se denomina algoritmo a una serie finita de pasos o instrucciones mediante los cuales se resuelve un problema o se ejecuta una tarea específica. Más formalmente los algoritmos se caracterizan por: • Ser finitos, porque tienen un número determinado de pasos. • Ser definidos, lo que implica que cada vez que se siga se obtendrá invariablemente el mismo resultado. • Ser precisos, pues cada paso tiene un orden a seguir. Los algoritmos especifican los pasos (instrucciones) que permiten llegar a la solución de un problema, sin importar si el proceso es manual o automatizado. De modo que no se encuentran exclusivamente relacionados con la computación. En la vida cotidiana son empleados en diversas ocasiones. Por ejemplo, los pasos seguidos para retirar dinero de un cajero automático de un banco o cuando se sigue una receta de cocina. Se puede entenderlos entonces, como una especie de “receta” que indica los pasos que permiten alcanzar la solución de un problema.
  • 35.
    Diagrama de flujo "Esun esquema para representar gráficamente un algoritmo. 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. Se utiliza principalmente en programación, economía y procesos industriales.
  • 36.
    Simbología Inicio / Terminación. Este símbolo se utiliza para señalar el comienzo así como el final de un diagrama. Tradicionalmente se colocan las palabras “INICIO” ó “FIN” dentro de la figura para hacerlo más explícito. Es el único símbolo que solamente tiene una conexión (flecha) ya sea de salida, en el de inicio, o de entrada, para el de fin. Entrada de datos. En este símbolo se indican los valores iniciales que deberá recibir el proceso. Esto se hace asignándoles letras o nombres de variables para cada uno de los valores y anotando estas letras en el interior de la figura. Este símbolo siempre deberá tener al menos una conexión entrante (generalmente del inicio) y una de salida.
  • 37.
    Proceso de datos.Este símbolo lo utilizaremos para señalar operaciones matemáticas, aritméticas o procesos específicos que se realicen con nuestros datos. La manera de anotar dichos procesos, puede ser mediante una descripción breve de la operación o mediante una asignación de dicha operación hacia una variable como por ejemplo: R ← A + B Este símbolo siempre deberá tener al menos una conexión de entrada y una de salida. Decisión. Este símbolo nos representa una disyuntiva lógica o decisión. En su interior se anota una instrucción o pregunta que pueda ser evaluada como cierta o falsa y que determine el flujo del programa. Este símbolo es el único que puede contener dos salidas y en cada una de las salidas se suele poner un rótulo de “si/no” o “cierto/falso” indicando con esto cual de ellas se tomará según el resultado de la evaluación de la función. Es una buena práctica de diagramación utilizar siempre el mismo lado para los positivos siempre que esto sea posible.
  • 38.
    Desplegado de información.Este símbolo se utiliza para mostrar un resultado, el cual puede representar la solución al problema que se pretende resolver y que fue conseguida a través del resto del diagrama. Dentro de su interior se anotará la variable con el resultado final o el mensaje que represente el resultado del algoritmo. Generalmente veremos este símbolo muy cerca del final del proceso y precedido por el símbolo de terminación. Este símbolo siempre deberá tener al menos una conexión de entrada y una de salida.
  • 39.
    Ejemplo de undiagrama de flujo simple diferentes
  • 40.
    Ejercicios propuestos 1. Hacer un diagrama para calcular el área de un triángulo. 2. Hacer un diagrama para convertir de grados centígrados a grados Fahrenheit. 3. Hacer un diagrama para imprimir la suma de los números del 1 al 100. 4. Hacer un diagrama que te pida un número y te diga si es par, es non y/o es primo. 5. Hacer un diagrama para imprimir la sucesión de Fibonacci. 6. Hacer un diagrama que pida 10 números y muestre el promedio. 7. Hacer un diagrama que pida 3 números y diga cual es el mayor. 8. Hacer un diagrama que pida la edad y despliegue si es menor de edad (<18), mayor (>=18) o si pertenece a la 3ª edad.(>=60)
  • 41.
    Ejercicios propuestos (cont.)  Hacer un diagrama para calcular el factorial de un número.  Hacer un diagrama que calcule e imprima N números primos.  Hacer un diagrama que solicite 4 calificaciones y diga si está reprobado o no, según las reglas de tu escuela.  Hacer un diagrama que pida un número N y despliegue todas las combinaciones de dos números que sumados den N.  Hacer un diagrama que despliegue la tabla de multiplicar de un número X.
  • 42.
    Ejercicio No. 1 Diseñarun diagrama de flujo para calcular y mostrar el área de un triángulo. El diagrama deberá de solicitar los datos necesarios y mostrar el resultado.
  • 43.
    Ejercicio No. 2 Diseñarun diagrama de flujo para convertir de grados centígrados a grados Fahrenheit. El diagrama deberá de solicitar los datos necesarios y mostrar el resultado.
  • 44.
    Ejercicio No. 4 Diseñarun diagrama de flujo que solicite un número y determine si este es par o es non.
  • 45.
    Variables Las variables sonlos “contenedores” de los datos que se van a procesar, son un elemento común en la mayor parte de los lenguajes de computación. Físicamente, las variables son áreas designadas de memoria en donde se guarda el valor del dato. Supongamos que se escribe un programa en el cual se solicitan sueldos de empleados. Se debe contar con una variable que guarde ese dato. Puede escogerse nombrarla, por ejemplo, v_sueldo. Cuando, a solicitud del programa, el usuario introduce un número, ese dato se convierte en el valor de la variable v_sueldo. Entonces de manera semejante como en álgebra o física, las variables pueden ser usadas en programación para realizar operaciones de informática. Si el programa indica la declaración v_sueldo + 500 y el valor en v_sueldo = 1.000, el resultado para esta declaración va a ser 1.500.
  • 46.
    c i A continuación sepresenta como ejemplo un sencillo programa fuente, escrito en C, y justo al lado se ó explica la acción que realizará la computadora en respuesta a los comandos del programa. n El programa tiene como finalidad el cálculo del promedio de una lista de cinco números. q Instrucciones en Lenguaje C Acción de la computadora u 1.- Define una matriz (datos) de números enteros y le asigna los e int datos[ ] = { 25, 88, 20, 75, 62 }; valores 25, 88, 20, 75, 62. int nDatos = 5; 2.- Define la variable (nDatos) de tipo entero y le asigna el valor 5. r 3.- Define la función (promedio) que devuelve un número entero. e int promedio () {a l int suma; 4.- Define la variable (suma) de tipo entero. i int prom; 5.- Define la variable (prom) de tipo entero. zint cont; 6.- Define la variable (cont) de tipo entero. asuma = 0; 7.- Asigna a suma el valor 0. r 8.- Para cada elemento de la matriz datos, añade su valor a la for (cont=0; cont<nDatos; cont++) á variable suma. { l suma += datos [cont]; a } 9.- Asigna a prom el resultado de dividir la variable suma por la prom=suma/nDatos; variable nDatos. c 10.- Devuelve como resultado de la función el contenido de la variable oreturn (prom); prom. m }