You are on page 1of 17

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 37

UNIDAD 3 INTRODUCCIN A LA PROGRAMACIN DE UN LENGUAJE


ESTRUCTURADO
3.1.- INTRODUCCIN A LA PROGRAMACIN
Se llama Programacin a la implementacin de un algoritmo en un determinado
lenguaje de programacin, 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 ingls) es una secuencia de instrucciones que una
computadora puede interpretar y ejecutar.
El proceso de creacin de software es materia de la ingeniera del software, una
de las ramas propias de la Ingeniera Informtica.
Segn Niklaus Wirth un programa est formado por algoritmos y estructura de
datos.
Lenguaje de programacin es el idioma utilizado para controlar el
comportamiento de una mquina, particularmente una computadora. Consiste en un
conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el
significado de sus elementos y expresiones.
Hay muchos lenguajes de programacin, pero para programar no es necesario
conocer todos los lenguajes, es igual que cuando hablamos, podemos comunicarnos en
espaol aunque no sepamos alemn.
En la actualidad los lenguajes de programacin estn escritos para ser
comprensibles por el ser humano, a este cdigo se le llama cdigo fuente, pero no es
comprendido por la mquina ya que esta solo maneja el lenguaje binario.
La compilacin es el proceso de traducir un programa en cdigo fuente a
programa en cdigo objeto (que usa el lenguaje binario), el programa encargado de
compilar se llama compilador. La mayora de los lenguajes de programacin traen su
propio compilador.
Entorno de Desarrollo Integrado (en ingls 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 programacin o en varios lenguajes.
Para esta unidad y el resto de las unidades utilizaremos como lenguaje de
programacin el lenguaje C y como entorno de desarrollo el Dev-C++.

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 38

3.2.- ESTRUCTURA BSICA DE UN PROGRAMA


Un programa fuente C es una coleccin de cualquier nmero de directrices para
el compilador, declaraciones, definiciones, expresiones, sentencias y funciones.
Todo programa C debe contener una funcin nombrada main( ), donde el
programa comienza a ejecutarse. Las llaves ({ }) que incluyen el cuerpo de esta funcin
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 compilacin se realiza en dos fases, una en
la que un preprocesador atiende todas las directivas que contiene el cdigo fuente y otra
etapa de traduccin a cdigo 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 compilacin.
3. Definicin de funciones: Se pueden definir cualquier cantidad de funciones, pero al
menos debe existir la funcin main( ).
4. Sentencias: Todas las sentencias terminan en el caracter ';'. El cuerpo de la funcin
main en nuestro caso, consta nicamente de la invocacin de la funcin printf con un
"string" constante como argumento. La accin de la funcin printf es la de imprimir en
el dispositivo estndar de salida (en general el monitor)

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 39

3.3.- TIPOS DE DATOS


Hay varios tipos fundamentales de datos y se pueden clasificar en:
- Tipos enteros: short, int, long
- Tipos carcter: 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 nmero entero
positivo o negativo. Un nmero entero calificado unsigned es un nmero entero sin
signo, el cual es manipulado como un nmero entero positivo.
Tipo
char
short
int
long
float
double
long double

Ancho en bytes
1
2
2 ?
4
4
8
10

Rango
-128 a 127
-32768 a 32767
-32768 a 32767 ?
-2147483648 a 2147483647
3.4E-38 a 3.4E+38
1.7E-308 a 1.7E+308
1.1E-4932 a 1.1E+4932

3.4.- IDENTIFICADORES
Un identificador se utiliza para reconocer o darle nombre a una variable, a una
funcin, etc.
- Debe comenzar con una letra minscula y no deben contener espacios en blanco.
- Letras, dgitos y caracteres como el guin bajo ( _ ) estn permitidos despus del
primer carcter.
- No puedes usar una palabra reservada como identificador. He aqu la relacin 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 ms que usar una x para representar le edad de una persona.

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 40

3.5.- ALMACENAMIENTO, DIRECCIONAMIENTO Y REPRESENTACIN EN


MEMORIA
La memoria es una sucesin de celdas numeradas y una direccin de memoria
no es ms que un nmero entero. La declaracin 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 asignacin supone modificar el patrn 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 10041007. Podemos representar la memoria as:

Observa que, inicialmente, cuando se reserva la memoria, sta contiene un


patrn de bits arbitrario. La sentencia a = 0 se interpreta como almacena el valor 0 en
la direccin de memoria de a, es decir, almacena el valor 0 en la direccin de
memoria 1000. Este es el resultado de ejecutar esa sentencia:

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 41

La asignacin b = a + 8 se interpreta como calcula el valor que resulta de sumar


8 al contenido de la direccin de memoria 1000 y deja el resultado en la direccin de
memoria 1004:

Hemos supuesto que a est en la direccin 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 direccin 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 direccin de memoria se almacena


una variable, as que no recurriremos a representaciones grficas tan detalladas como las
que hemos presentado. Usualmente nos conformaremos con representar las variables
mediante cajas y representaremos su valor de una forma ms cmodamente legible que
como una secuencia de bits. La representacin anterior se simplificar, pues, as:

Las direcciones de memoria de las variables se representarn con flechas que


apuntan a sus correspondientes cajas:

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 42

Declaracin de variables
Cada variable de un programa debe declararse antes de ser utilizada. La
declaracin 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;
Declaracin 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 estn integrados
por letras maysculas.

3.6.- PROPOSICIN DE ASIGNACIN


La operacin de asignacin est representada por el signo =. En una operacin
de asignacin, el valor de la derecha, es asignado a la variable de la izquierda. Ejemplo:
int n, z;
n = 8;
z = n + 5;

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 43

3.7.- OPERADORES, OPERANDOS Y EXPRESIONES


Los operadores son smbolos que indican como son manipulados los datos. Se
pueden clasificar en los siguientes grupos: aritmticos, lgicos, relacionales, de
asignacin y otros.
Operadores aritmticos:
Operador
+
*
/
%

Operacin
Suma
Resta
Multiplicacin
Divisin
Mdulo

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 lgicos:
Operador
Operacin
&&
AND. Da como resultado el valor lgico 1 si ambos operandos son
distintos de cero. Si uno de ellos es cero el resultado es el valor
lgico 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 relacin:
Operador
<
>
<=
>=
==

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

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

!=

Pg. 44

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 asignacin:
Operador
++
-=
*=
/=
%=
+=
-=
Ejemplo:
x++;
x--;
i += 2;
x *= n 3;

Operacin
Incremento.
Decremento.
Asignacin simple.
Multiplicacin ms asignacin.
Divisin ms asignacin.
Mdulo ms asignacin.
Suma ms asignacin.
Resta ms asignacin.

/* incrementa el valor de x en 1 */
/* decrementa el valor de x en 1 */
/* realiza la operacin i = i + 2 */
/* realiza la operacin x = x * (n 3) y no x = x * n 3 */

Los operandos son las variables, constantes y funciones que intervienen en una
expresin.
Una expresin es una secuencia de operadores y operandos que especifican una
operacin 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);

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 45

3.8.- PRIORIDAD DE OPERADORES, EVALUACIN DE EXPRESIONES


Antes de evaluar expresiones es necesario conocer la jerarqua de los
operadores que maneja C:
Operador
Significado
()
Parntesis
! ++ -Not, incremento y decremento
* / %
Multiplicacin, divisin y mdulo
+ Suma, resta
< <= > >=
Menor que, menor o igual que, mayor que, menor o igual que
== !=
Igual, diferente
&&
And
||
Or
= *= /= %= Asignacin
+= -=

Ejemplos de evaluacin de expresiones (paso a paso):

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 46

3.9.- ELABORACIN 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 lnea despus el cdigo siguiente (sin los nmeros de lnea):

Las lneas 6 y 7 le indican a C que incluya las libreras stdio y conio, las
cuales van a ser utilizadas por nuestro programa.
La lnea 11 declara dos variables (kg y gr) de tipo real (float).
La lnea 14 imprime un mensaje en la pantalla a travs de la sentencia printf.
Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 47

La lnea 15 lee un valor flotante desde el teclado y lo asigna a la variable kg.


Para ello utiliza a la sentencia scanf.
La lnea 18 contiene la expresin que convierte kilogramos en gramos,
colocando el resultado en la variable gr.
La lnea 21 imprime los gramos convertidos que se localizan en la variable gr.
La lnea 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 proporcinele 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 correccin. Para ello elija el men Ejecutar Compilar. Si
surge algn error corrjalo 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. Pulse enter para cerrar la ventana anterior y regresar al Dev-C++


9. Para salir del entorno de desarrollo elija el men Archivo Salir.
10. Con el explorador de Windows busque y abra la carpeta en donde grab el
programa.
11. Haga doble click en el archivo Secuencial1 y observe cmo sin necesidad de abrir el
entorno de desarrollo podemos ejecutar un programa previamente compilado:

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 48

Tomando como gua 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 matemticas, ciencias naturales y espaol. La calificacin de cada
materia est en el rango de 0 a 100.
5. Un hospital recibir el presupuesto de gastos para este ao 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 ciruga 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 crculo (area = pi * radio2)
7. Realice un programa que convierta temperaturas de grados Centgrados 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 sbado) y un
bono correspondiente al 13% de lo que gan.
9. Hacer un programa que permita calcular e imprimir la tabla de un nmero entero
introducido por el teclado. Ejemplo, si el nmero introducido fuera un cinco:
5X1=5
5 X 2 = 10
...
5 X 10 = 50

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 49

APARTADO A ENTRADA Y SALIDA


Salida
La funcin de impresin de informacin en pantalla utilizada habitualmente es
printf. printf es una funcin disponible al incluir stdio.h en el programa. En su forma
de uso ms simple, printf permite mostrar una cadena por pantalla:

La salida sera:

La funcin printf no aade un salto de lnea automticamente, si deseas que haya


un salto de lnea, debers escribir \n en el lugar que desees hacer el salto, ejemplo:

La salida sera:

Para imprimir nmeros enteros se utiliza el formato %d, para nmeros flotantes
%f, para un solo carcter %c y para una cadena %s. Ejemplo:

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 50

La salida sera:

Observe que el valor real se imprime por default con 6 dgitos despus del punto
decimal. Si gustas puedes indicarle al printf que imprima la cantidad de dgitos despus
del punto que tu quieras, por ejemplo, 2:

La salida sera:

Observe que inclusive redondea la cantidad.


La sentencia printf tiene muchas ms 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
numricos les anteponga el signo + o -, etc. Queda a tu responsabilidad el investigar
dichas situaciones.

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 51

Entrada
La lectura de datos desde el teclado se realiza a travs de la funcin scanf. La
funcin 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 sera:

El formato %c lo utiliza scanf para leer un carcter. Ejemplo:

La salida sera:

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 52

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

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


el smbolo & antes del nombre de la variable, observe que no escribimos &texto, sino
solamente, texto.
La salida sera:

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 sera:

Algoritmos y lenguajes de programacin

Ing. Industrial

Unidad 3 Introduccin a la programacin de un lenguaje estructurado

Pg. 53

Existe otra manera de leer cadenas, utilizando la funcin gets. Ejemplo:

La salida sera:

Otra manera de leer un carcter es utilizando la funcin getchar. Ejemplo:

La salida sera:

Tambin pueden leer un carcter con las funciones getch y getche


pertenecientes a la librera conio.h.
getch lee un carcter del teclado sin visualizarlo. getche lee un carcter del
teclado visualizndolo.

Algoritmos y lenguajes de programacin

Ing. Industrial

You might also like