Sunteți pe pagina 1din 25

Materia:

Algoritmos y lenguajes de programación.

Tema unidad 3:

Introducción a la programación de un lenguaje


estructurado.

Catedrático:

Ing. Guillermo barragán Jiménez

Elaboro:

luz fernanda martinez cruz

fecha:

11/DIC./18

Vo.Bo.
Temario:

3 introducción a la programación de un lenguaje


estructurado.

3.1 introducción y estructura del entorno de un


lenguaje de programación.

3.2 Estructura básica de un programa.

3.3 Tipos de datos

3.4 Identificadores

3.5 Almacenamiento, direccionamiento y


representación en memoria

3.6 Proposición de asignación

3.7 Operadores, operandos y expresiones.

3.8 Prioridad de operadores, evaluación de


expresiones.

3.9 Elaboración de programas.

3.10 Pruebas y depuración.


3.1.- INTRODUCCIÓN A LA PROGRAMACIÓN

Se llama Programación a la implementación de un algoritmo en un


determinado lenguaje de programación, para realizar un programa.

Algoritmo es una secuencia no ambigua, finita y ordenada de


instrucciones que han de seguirse para resolver un problema.

Programa (Software en inglés) es una secuencia de instrucciones


que una computadora puede interpretar y ejecutar.

El proceso de creación de software es materia de la ingeniería del


software, una de las ramas propias de la Ingeniería Informática.

Según Niklaus Wirth un programa está formado por algoritmos y


estructura de datos.

Lenguaje de programación es el idioma utilizado para controlar el


comportamiento de una máquina, particularmente una computadora.
Consiste en un conjunto de símbolos y reglas sintácticas y semánticas
que definen su estructura y el significado de sus elementos y expresiones.

Hay muchos lenguajes de programación, pero para programar no es


necesario conocer todos los lenguajes, es igual que cuando hablamos,
podemos comunicarnos en español aunque no sepamos alemán.

En la actualidad los lenguajes de programación están escritos


para ser comprensibles por el ser humano, a este código se le llama
código fuente, pero no es comprendido por la máquina ya que esta solo
maneja el lenguaje binario.

La compilación es el proceso de traducir un programa en código


fuente a programa en código objeto (que usa el lenguaje binario), el
programa encargado de compilar se llama compilador. La mayoría de los
lenguajes de programación traen su propio compilador.

Entorno de Desarrollo Integrado (en inglés Integrated


Development Environment 'IDE'): Es un programa compuesto por un
conjunto de herramientas para un programador. Estos IDE son
programas que sirven para programar, ya sea en un lenguaje de
programación o en varios lenguajes.

Para esta unidad y el resto de las unidades utilizaremos como


lenguaje de programación el lenguaje C y como entorno de desarrollo
el Dev-C++.
3.2.- ESTRUCTURA BÁSICA DE UN PROGRAMA

Un programa fuente C es una colección de cualquier número de


directrices para el compilador, declaraciones, definiciones, expresiones,
sentencias y funciones.

Todo programa C debe contener una función nombrada main( ), donde el


programa comienza a ejecutarse. Las llaves ({ }) que incluyen el cuerpo de
esta función principal, definen el principio y el final del programa.

El ejemplo siguiente muestra un programa completo en C, que imprime un


texto en pantalla:

1. Comentarios: Los comentarios en C comienzan con la secuencia '/*'


y termina con la secuencia '*/'. Todo lo que se encuentre entre estas dos
secuencias es omitido por el compilador.
2. Directivas al preprocesador: La etapa de compilación se realiza en
dos fases, una en la que un preprocesador atiende todas las directivas
que contiene el código fuente y otra etapa de traducción a código
objeto. Todas las directivas al preprocesador comienzan con el
caracter '#', en particular la directiva #include instruye al
preprocesador para que inserte el contenido del archivo que se pasa
como argumento a la directiva para su posterior compilación.
3. Definición de funciones: Se pueden definir cualquier cantidad de
funciones, pero al menos debe existir la función main( ).
4. Sentencias: Todas las sentencias terminan en el caracter ';'. El
cuerpo de la función main en nuestro caso, consta únicamente de la
invocación de la función printf con un "string" constante como
argumento. La acción de la función printf es la de imprimir en el
dispositivo estándar de salida (en general el monitor)
3.3.- TIPOS DE DATOS

Hay varios tipos fundamentales de datos y se pueden clasificar en:


- Tipos enteros: short, int, long
- Tipos carácter: char
- Tipos reales: float, double y long double

Cada tipo entero y el tipo char puede ser calificado por las palabras
clave signed o unsigned, lo que da lugar a tener disponibles los
siguientes datos extras:
- signed char, unsigned char
- signed short, unsigned short
- signed int, unsigned int
- signed long, unsigned long

Un entero calificado signed es un entero con signo, esto es, un número


entero positivo o negativo. Un número entero calificado unsigned es un
número entero sin signo, el cual es manipulado como un número entero
positivo.

Tipo Ancho en Rango


bytes
char 1 -128 a 127
short 2 -32768 a 32767
int 2 ¿? -32768 a 32767 ¿?
long 4 -2147483648 a 2147483647
float 4 3.4E-38 a 3.4E+38
double 8 1.7E-308 a 1.7E+308
long 10 1.1E-4932 a 1.1E+4932
double

3.4.- IDENTIFICADORES

Un identificador se utiliza para reconocer o darle nombre a una variable,


a una función, etc.
- Debe comenzar con una letra minúscula y no deben contener
espacios en blanco. - Letras, dígitos y caracteres como el guión bajo ( _ )
están permitidos después del primer carácter.
- No puedes usar una palabra reservada como identificador. He aquí
la relación de palabras reservadas del lenguaje C: auto, break, case,
char, const, continue, default, do, double, else, enum, extern, float, for,
goto, if, int, long, register, return, short, signed, sizeof, static, struct,
switch, typedef, union, unsigned, void, volatile y while.
-
- El identificador se debe construir pensando en el dato al que
representará o identificará. Por ejemplo, si queremos almacenar la edad
de una persona, el identificador edad nos dirá más que usar una x para
representar le edad de una persona.

3.5.- ALMACENAMIENTO, DIRECCIONAMIENTO Y


REPRESENTACIÓN EN MEMORIA

La memoria es una sucesión de celdas numeradas y una dirección de


memoria no es más que un número entero. La declaración de una variable
supone la reserva de una zona de memoria lo suficientemente grande para
albergar su contenido. Cuando declaramos una variable de tipo int, por
ejemplo, se reservan 4 bytes de memoria en los que se almacenará
(codificado en complemento a 2) el valor de dicha variable. Modificar el
valor de la variable mediante una asignación supone modificar el patrón
de 32 bits (4 bytes) que hay en esa zona de memoria.

Este programa, por ejemplo,

reserva 8 bytes para albergar dos valores enteros. Imagina que a ocupa
los bytes 1000– 1003 y b ocupa los bytes 1004–1007. Podemos
representar la memoria así:
Observa que, inicialmente, cuando se reserva la memoria, ésta contiene un
patrón de bits arbitrario. La sentencia a = 0 se interpreta como “almacena
el valor 0 en la dirección de memoria de a”, es decir, “almacena el valor 0
en la dirección de memoria 1000”. Este es el resultado de ejecutar esa
sentencia:

La asignación b = a + 8 se interpreta como “calcula el valor que resulta


de sumar 8 al contenido de la dirección de memoria 1000 y deja el
resultado en la dirección de memoria 1004”:

Hemos supuesto que a está en la dirección 1000 y b en la 1004, pero


¿podemos saber en qué direcciones de memoria se almacenan realmente a
y b? Sí: el operador & permite conocer la dirección de memoria en la que
se almacena una variable:
Al ejecutar el programa tenemos en pantalla el siguiente texto (puede que
si ejecutas tú mismo el programa obtengas un resultado diferente):

Normalmente no necesitamos saber en qué dirección de memoria se


almacena una variable, así que no recurriremos a representaciones
gráficas tan detalladas como las que hemos presentado. Usualmente nos
conformaremos con representar las variables mediante cajas y
representaremos su valor de una forma más cómodamente legible que
como una secuencia de bits. La representación anterior se simplificará,
pues, así:

Las direcciones de memoria de las variables se representarán con


flechas que apuntan a sus correspondientes cajas:

Declaración de variables

Cada variable de un programa debe declararse antes de ser utilizada. La


declaración consiste en enunciar el nombre de la variable y asociarle un
tipo. El tipo determina los valores que puede tomar la variable así como
las operaciones que con ella pueden realizarse. Ejemplo:

int suma, incremento;


char caracter;

Una variable puede ser inicializada cuando se declara. Ejemplo:

char caracter = ‘a’;


int c = 1;
Declaración de constantes

Una constante se declara anteponiendo al identificador la palabra


const. Ejemplo:

const int K = 12;


const char LETRA = ‘Z’;

A una constante no se le puede asignar otro valor, es por ello que al


declararla debe ser inicializada.

Por conveniencia, se recomienda que los nombres de constantes estén


integrados por letras mayúsculas.

3.6.- PROPOSICIÓN DE ASIGNACIÓN

La operación de asignación está representada por el signo =. En una


operación de asignación, el valor de la derecha, es asignado a la variable
de la izquierda. Ejemplo:

int n, z; n
= 8;
z = n + 5;

3.7.- OPERADORES, OPERANDOS Y EXPRESIONES

Los operadores son símbolos que indican como son manipulados los
datos. Se pueden clasificar en los siguientes grupos: aritméticos,
lógicos, relacionales, de asignación y otros.

Operadores aritméticos:
Operador Operación
+ Suma
- Resta
* Multiplicación
/ División
% Módulo
Ejemplo:
int a = 10, b = 3, c; float x = 2.0, y; y = x + a;
/* el resultado es 12.0 de tipo float */ c =
a / b; /* el resultado es 3 de tipo int */ c =
a % b; /* el resultado es 1 de tipo int */
y = a / b; /* el resultado es 3 de tipo int. Se convierte a float para
asignarlo a y */

Operadores lógicos:
Operador Operación
&& AND. Da como resultado el valor lógico 1 si ambos
operandos son distintos de cero. Si uno de ellos es
cero el resultado es el valor lógico 0. Si el primer
operando es igual a cero, el segundo operando no es
evaluado.
|| OR. El resultado es 0 si ambos operandos son 0. Si uno
de los operandos tiene un valor distinto de 0, el
resultado es 1. Si el primer operando es distinto de
cero, el segundo operando no es evaluado.
! NOT. El resultado es 0 si el operando tiene un valor
distinto de cero, y 1 en caso contrario.

Ejemplo:
int p = 10, q = 0;
p && q da como resultado
0 p || q da como resultado
1 !p da como resultado
0

Operadores de relación:
Operador Operación
< Primer operando menor que el segundo.
> Primer operando mayor que el segundo.
<= Primer operando menor o igual que el
segundo.
>= Primer operando mayor o igual que el
segundo.
== Primer operando igual que el segundo.
!= Primer operando diferente que el segundo.
Ejemplo:
int p, q;
float x = 15, y = 18, z = 20;
p = x == y; /* resultado p = 0
*/ q = (x < y) && (y <= z); /* resultado q = 1
*/

Operadores de asignación:
Operador Operación
++ Incremento.
-- Decremento.
= Asignación simple.
*= Multiplicación más asignación.
/= División más asignación.
%= Módulo más asignación.
+= Suma más asignación.
-= Resta más asignación.

Ejemplo: x++; /* incrementa el


valor de x en 1 */ x--; /*
decrementa el valor de x en 1 */ i += 2;
/* realiza la operación i = i + 2 */
x *= n – 3; /* realiza la operación x = x * (n – 3) y no x = x * n – 3 */

Los operandos son las variables, constantes y funciones que


intervienen en una expresión.

Una expresión es una secuencia de operadores y operandos que


especifican una operación determinada. Ejemplo:

x = 6 + 7; x = y + 8; x =
y + z; x = cantidad *
precio; x = 7 * sqrt(a)
– b / 2; x = (4 < 5) && (y
<= z);
3.8.- PRIORIDAD DE OPERADORES, EVALUACIÓN DE EXPRESIONES

Antes de evaluar expresiones es necesario conocer la jerarquía de los


operadores que maneja C:
Operador Significado
() Paréntesis
! ++ -- Not, incremento y decremento
* / % Multiplicación, división y módulo
+ - Suma, resta
< <= > >= Menor que, menor o igual que, mayor que, menor o
igual que
== != Igual, diferente
&& And
|| Or
= *= /= %= Asignación
+= -=

Ejemplos de evaluación de expresiones (paso a paso):


3.9.- ELABORACIÓN DE PROGRAMAS (SECUENCIALES)

Enunciado: Hacer un programa que permita convertir kilogramos en


gramos.

1. Inicie Dev-C++

2. Elija el menú Archivo – Nuevo – Archivo Fuente:

3. Escriba en zona de comentario los datos referentes al programa, el


autor y la fecha:

4. Escriba una línea después el código siguiente (sin los números de línea):
Las líneas 6 y 7 le indican a C que “incluya” las librerías stdio y conio, las
cuales van a ser utilizadas por nuestro programa.

La línea 11 declara dos variables (kg y gr) de tipo real (float).

La línea 14 imprime un mensaje en la pantalla a través de la sentencia


printf.
La línea 15 lee un valor flotante desde el teclado y lo asigna a la variable
kg. Para ello utiliza a la sentencia scanf.

La línea 18 contiene la expresión que convierte kilogramos en gramos,


colocando el resultado en la variable gr.

La línea 21 imprime los gramos convertidos que se localizan en la


variable gr.

La línea 22 permite hacer una pausa para que el usuario pueda visualizar
la pantalla con el resultado. La sentencia getch la proporciona conio.

5. Grabe el programa eligiendo el menú Archivo – Guardar como. En la


ventana que aparece seleccione la carpeta en donde desea guardar su
programa y proporciónele un nombre, en este caso escriba
Secuencial1.

6. Ahora proceda a compilar para que el compilador de C nos indique si


todo está bien o si debemos hacer alguna corrección. Para ello elija el
menú Ejecutar – Compilar. Si surge algún error corríjalo y vuelva a
realizar este paso.

7. Por último, ejecute el programa eligiendo el menú Ejecutar – Ejecutar.


Deberá aparecer una ventana en donde le solicita introducir los
kilogramos. Escriba 3.5 y pulse enter. El programa calculará los
gramos y le dará una salida como esta:

8.
9. Pulse enter para cerrar la ventana anterior y regresar al Dev-C++

10. Para salir del entorno de desarrollo elija el menú Archivo – Salir.

11. Con el explorador de Windows busque y abra la carpeta en donde


grabó el programa.

12. Haga doble click en el archivo Secuencial1 y observe cómo sin


necesidad de abrir el entorno de desarrollo podemos ejecutar un
programa previamente compilado:

Tomando como guía el programa anterior construya los siguientes


programas:

2. Hacer un programa que calcule e imprima el área de un rectangulo (area


= base * altura).

3. Hacer un programa que calcule e imprima la cantidad de dinero que una


persona pagará por concepto de predial 2015. El predial aumentó 3.5%
respecto del pago hecho en el 2014.

4. Hacer un programa que calcule el promedio obtenido por un alumno


sabiendo que cursó las materias de matemáticas, ciencias naturales y
español. La calificación de cada materia está en el rango de 0 a 100.

5. Un hospital recibirá el presupuesto de gastos para este año y el


director general del hospital desea saber la cantidad de dinero que le
otorgará a cada una de las secciones del hospital, sabiendo que a
maternidad le otorgará el 22%, a cirugía el 41%, a medicina general el
13% y a medicina interna el resto del presupuesto, respectivamente.

6. Realice un programa que calcule e imprima el área de un círculo (area =


pi * radio2)

7. Realiceun programa que convierta temperaturas de grados


Centígrados a grados Farenheit (farenheit = grados centigrados * 9 /
5 + 32)

8. Realice un programa que calcule el salario semanal final que recibirá


un trabajador, sabiendo que el salario se obtiene de lo que ganó
diariamente (de lunes a sábado) y un bono correspondiente al 13% de lo
que ganó.
9. Hacer un programa que permita calcular e imprimir la tabla de un
número entero introducido por el teclado. Ejemplo, si el número
introducido fuera un cinco: 5 X 1 = 5 5 X 2 = 10
...
5 X 10 = 50

APARTADO A “ENTRADA Y SALIDA”

Salida

La función de impresión de información en pantalla utilizada


habitualmente es printf. printf es una función disponible al incluir stdio.h
en el programa. En su forma de uso más simple, printf permite mostrar una
cadena por pantalla:

La salida sería:

La función printf no añade un salto de línea automáticamente, si


deseas que haya un salto de línea, deberás escribir \n en el lugar que
desees hacer el salto, ejemplo:

La salida sería:
Para imprimir números enteros se utiliza el formato %d, para números
flotantes %f, para un solo carácter %c y para una cadena %s. Ejemplo:

La salida sería:

Observe que el valor real se imprime por default con 6 dígitos después
del punto decimal. Si gustas puedes indicarle al printf que imprima la
cantidad de dígitos después del punto que tu quieras, por ejemplo, 2:

La salida sería:

Observe que inclusive redondea la cantidad.


La sentencia printf tiene muchas más prestaciones, por ejemplo, puedes
indicar si lo que quieres imprimir quede justificado a la izquierda o a la
derecha, que maneje un ancho especificado por ti, que rellene de ceros
no significativos, que a los valores numéricos les anteponga el signo + o
-, etc. Queda a tu responsabilidad el investigar dichas situaciones.

Entrada

La lectura de datos desde el teclado se realiza a través de la función


scanf. La función scanf lee datos, los interpreta de acuerdo con el
formato indicado y los almacena en las variables especificadas. Cada
variable debe ser del tipo especificado en el formato. Por ejemplo, el
siguiente programa lee desde el teclado un entero y un real:

La salida sería:
El formato %c lo utiliza scanf para leer un carácter. Ejemplo:

La salida sería:

Para leer una cadena scanf utiliza el formato %s. Ejemplo:

NOTA: Como una cadena es un arreglo de caracteres, no es


necesario anteponer el símbolo & antes del nombre de la variable,
observe que no escribimos &texto, sino solamente, texto.

La salida sería:
Observe que aunque el usuario escribió la cadena HOLA MUNDO, scanf
solo asignó HOLA a la variable texto. Esto es así porque el formato %s
permite tomar de la entrada todos los caracteres hasta encontrar un
espacio en blanco. Si desea que scanf tome todo el texto incluyendo los
espacios entonces utilice el formato %[^\n]. Ejemplo:

La salida sería:

Existe otra manera de leer cadenas, utilizando la función gets. Ejemplo:

La salida sería:
Otra manera de leer un carácter es utilizando la función getchar.
Ejemplo:

La salida sería:

También pueden leer un carácter con las funciones getch y getche


pertenecientes a la librería conio.h.

getch lee un carácter del teclado sin visualizarlo. getche lee un


carácter del teclado visualizándolo.
CONCLUSION:
Para que un procesador realice un “proceso” se le debe suministrar
en primer lugar un algoritmo adecuado. El procesador debe ser
capaz de interpretar el algoritmo, lo que significa:

• Comprender las instrucciones de cada paso


• Realizar las operaciones correspondientes.

En la realidad la computadora no entiende directamente los


lenguajes de programación sino que se requiere un programa que
traduzca el código fuente a otro lenguaje que sí entiende la
máquina directamente, pero muy complejo para las personas; este
lenguaje se conoce como “lenguaje máquina” y el código
correspondiente “código máquina”. Los programas que traducen el
código fuente escrito en un lenguaje de programación a código
máquina se denominan traductores.
Un programa se escribe en un lenguaje de programación y las
operaciones que conducen a expresar un algoritmo en forma de
programa se llaman programación. Así pues, los lenguajes
utilizados para escribir programas de computadoras son los
lenguajes de programación y programadores son los escritores y
diseñadores de programas. El proceso de traducir un algoritmo en
pseudocódigo a un lenguaje de programación se denomina
“codificación”, y el algoritmo escrito en un lenguaje de
programación se denomina “código fuente”.
BIBLIOGRAFIA:
https://es.scribd.com/doc/185569333/Trabajo-de-
Investigaciona-Lgoritmo
https://www.academia.edu/29376150/Algoritmos_y_Le
nguajes_de_programaci%C3%B3n_Ingenier%C3%ADa_Ind
ustrial
http://itpn.mx/recursosisc/1semestre/Fundamentosde
Programacion/Unidad%20III.pdf
Cuestionario:
1.- ¿a que se le llama programación?
a la implementación de un algoritmo en un determinado lenguaje de
programación, para realizar un programa.
2.- ¿Qué es un algoritmo?
es una secuencia no ambigua, finita y ordenada de instrucciones que han
de seguirse para resolver un problema
3.- defina lo que es un programa (software)
es una secuencia de instrucciones que una computadora puede
interpretar y ejecutar.
4.- ¿de que materia depende el proceso de creación del software?
la ingeniería del software, una de las ramas propias de la Ingeniería
Informática
5.-¿Qué es el lenguaje de programación?
es el idioma utilizado para controlar el comportamiento de una máquina,
particularmente una computadora.
6.- ¿en que consiste el lenguaje de programación?
Consiste en un conjunto de símbolos y reglas sintácticas y semánticas
que definen su estructura y el significado de sus elementos y expresiones.
7.- ¿a que se le llama código fuente?
En la actualidad los lenguajes de programación están escritos para ser
comprensibles por el ser humano, a este código se le llama código fuente.
8.- proceso al traducir un programa en código fuente a programa en
código objeto.
Compilación
9.- ¿Cómo se le llama al programa encargado de compilar?
Compilador
10.- programa compuesto por un conjunto de programas que sirven
para programar?
Entorno de desarrollo
11.- ¿qué es lo que todo programa fuente c debe de contener?
Todo programa C debe contener una función nombrada main( )
12.- ¿qué son los comentarios en lenguaje c?
Los comentarios en C comienzan con la secuencia '/*' y termina con la
secuencia '*/'.
13.- defina directivas al procesador.
La etapa de compilación se realiza en dos fases, una en la que un
preprocesador atiende todas las directivas que contiene el código
fuente y otra etapa de traducción a código objeto. Todas las directivas al
preprocesador comienzan con el carácter '#'.
14.- mencione la directiva en particular que instruye al procesador
para que inserte el contenido del archivo que se pasa como
argumento a la directiva para su posterior compilación.
la directiva #include
15.- ¿qué es cantidad de funciones?
Se pueden definir cualquier cantidad de funciones, pero al menos debe
existir la función main( ).
16.- carácter con el que deberán terminar las sentencias?
Todas las sentencias terminan en el caracter ';'.
17.- menciona la clasificación de los tipos de fundamentales de
datos.
- Tipos enteros: short, int, long
- Tipos carácter: char
- Tipos reales: float, double y long double

18.- ¿pueden ser calificados por las mismas palabras o claves?


Cada tipo entero y el tipo char puede ser calificado por las palabras
clave signed o unsigned.
19.- ¿para que se utiliza un identificador?
Un identificador se utiliza para reconocer o darle nombre a una variable,
a una función, etc.
20.- describa que es una memoria.
es una sucesión de celdas numeradas.

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