PDF de programación - Programas = Algoritmos + Estructuras de datos

Imágen de pdf Programas = Algoritmos + Estructuras de datos

Programas = Algoritmos + Estructuras de datosgráfica de visualizaciones

Publicado el 10 de Noviembre del 2019
996 visualizaciones desde el 10 de Noviembre del 2019
196,3 KB
18 paginas
Creado hace 14a (14/09/2009)
Programas = Datos + Algoritmos
Por Mario Macías
Observe el siguiente programa en C. No se preocupe si no puede comprenderlo todo, al
acabar de leer este capítulo seguro que sí podrá:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Este programa daría una salida en pantalla como la siguiente:

printf("Introduce tu nombre: ");
scanf("%s",nombre);
printf("Introduce el valor de A: ");
scanf("%d",&a);
printf("Introduce el valor de B: ");
scanf("%d",&b);
printf("Hola %s, los resultados son\n",nombre);
printf("A + B = %d\n", a+b );
printf("A - B = %d\n", a-b );
printf("A * B = %d\n", a*b );
printf("A / B = %d\n", a/b );

/* Calculo de la potencia */
c=a;
for(i=0 ; i<b ; i++)
{

c=c*a;

}
printf("A ^ B = %d", c );
return 0;

}

#include <stdio.h>

int main(void)
{

int a,b,c,i;
char nombre[15];

> Introduce tu nombre: Pedro
> Introduce el valor de A: 34
> Introduce el valor de B: 2
> Hola Pedro, las operaciones entre A y B son:
> A + B = 36
> A - B = 32
> A * B = 68
> A / B = 17

> A ^ B = 1156

Observar que en la línea 20 hay un texto que no indica nada al programa. Este es un
texto que pone el programador en cualquier parte del programa para hacer un
comentario. Para crear un comentario hay que escribir un texto cualquiera entre los
símbolos /* y */, y el compilador ignorará ese texto. Es bueno poner muchos comentarios
en los programas, para facilitar la lectura y saber con sólo leer el comentario qué realiza
la parte comentada.
Podemos observar que este programa, como cualquier otro, consta de dos partes
diferenciadas:

• Estructuras de datos: Son aquellos elementos que utilizamos para guardar datos
en memoria. En el programa de ejemplo son las variables a,b,c e i, que las
utilizamos para guardar números enteros, y la variable nombre, que la guardamos
como una cadena de texto, para guardar nombres, frases, etc...

• Algoritmos: Son aquellos elementos utilizados para describir el flujo del
programa; es decir, los comandos que describen cómo debe ejecutarse el
programa paso a paso. En el programa de ejemplo es todo el texto que va desde
el primer símbolo '{' hasta el último '}'.

Los algoritmos utilizan estructuras de datos para describir programas. A continuación
pasamos a describir los diferentes tipos de datos y las estructuras de control de flujo
básicas para definir algoritmos.
Tipos de datos
Hay dos subgrupos dentro de los tipos de datos: los datos simples y los datos
compuestos, formados como agrupaciones de datos simples. Al principio puede parecer
un poco complicado elegir el tipo de dato más adecuado para nuestro programa, pero a
medida que vaya cogiendo experiencia como programador se dará cuenta que no es una
tarea complicada, e incluso agradecerá a menudo poder definir sus propios tipos de
datos.
Los tipos de datos definen el formato y el tamaño que tienen las variables a que
acompañan. Una variable es un espacio de memoria en el que guardaremos los datos.
Para comprenderlo mejor, una variable es como una caja en la que guardar una sola
cosa que vayamos a utilizar. Hay cajas de todos los tamaños y formatos, dependiendo
de lo que se va a guardar en ellas. Por ejemplo, un televisor sólo se podrá guardar en
cajas grandes, ya que en cajas pequeñas no cabe. En cambio, un anillo se puede
guardar en una caja muy grande, pero sería un desperdicio de espacio, ya que en una
caja pequeña cabe perfectamente. De la misma manera, si se quiere guardar un número
que sabemos que será entre 0 y 100, sería mejor coger el tipo de variable más pequeña
que tiene el lenguaje C: un char, que guarda números de -128 a 127. Eso no quiere decir
que no pudiéramos guardarlo en un tipo de dato grande, por ejemplo un double, que
permite cientos de miles de valores distintos; pero estaríamos desperdiciando espacio,
ya que un double ocupa 8 veces más que un char.
Se podría comparar la memoria del ordenador con el espacio de un armario: cuantas
más cajas metamos menos espacio libre iremos teniendo, por lo que hay que meter las
cosas en cajas lo más pequeñas posibles para no desperdiciar el espacio.

Tipos de datos simples
Para utilizar tipos de datos simples debe escribir uno de los tipos de datos descritos a
continuación y a continuación el nombre de la variable a que acompañan. También se
puede escribir el tipo de dato y varias variables, separadas entre comillas.

• char: Este dato ocupa un byte de memoria, es decir, puede albergar 256 valores
distintos: los números que van de -128 a 127 o un carácter. Por ejemplo, decir
que un carácter vale 'A' es lo mismo que decir que vale 65, ya que 'A' tiene valor
65 en el código ASCII (ver apéndice).



• unsigned char. Igual que char, pero éste guarda 256 números sin signo, es decir,

de 0 a 255.
int: puede contener un numero entero. Dependiendo del lenguaje y el compilador
que se utilice el tamaño y el número de valores posible variará. Suele ocupar 4
bytes (el mismo tamaño que 4 char). El rango de números irá de -2.147.483.648
hasta 2.147.483.647.

• unsigned int: Igual que int, pero los números serán sin signo. Por lo que el rango

será de 0 hasta 4.294.967.295.



• short int: es un entero corto que sólo ocupa 2 bytes, por lo que el rango va de
-32.768 a 32.767. Si le añadimos al principio unsigned el rango irá de 0 a 65.535.
long: para la mayoría de los compiladores es sinónimo de int. Puede llevar
delante el unsigned.
float: número en coma flotante que ocupan 4 bytes. Permite representar números
con decimales, obteniendo rangos mucho mayores que int. El rango va
aproximadamente de -3.4 x 1038 hasta 3.4 x 1038.



• double: número en coma flotante de 8 bytes. Como float pero el rango va de -1.7

x 10308 hasta 1.7 x 10308.
long double: número en coma flotante de 10 bytes. El rango va de -3.4 x 104932
hasta 3.4 x 104932.



Tipos de datos complejos

• Vector: un vector es una agrupación de un numero determinado de datos de un

mismo tipo. Su definición es la siguiente:
<tipo de variable> <nombre de variable>[<número de elementos>]
Ejemplos:
int a[15];
define un vector de 15 enteros llamado a.
char matrix[3][4];
define una matriz de char, de tamaño 4x3 (12 elementos), llamada matrix.
Hemos explicado cómo definir un vector. Ahora nos hace falta saber cómo
acceder y modificar los elementos de éste: añadiremos al nombre del vector la
posición entre los símbolos '[' y ']'
Ejemplos:
a=mtx[1][2]
asigna a la variable 'a' el valor de la posición (1,2) de la matriz 'mtx'.

vct[34]=0
asigna a la posición 34 del vector 'vct' el valor 0.
Claro está que si queremos acceder a la posición 34 del vector, este vector tiene
que tener al menos 35 elementos (del 0 al 34), ya que si no estaríamos
accediendo a una zona de memoria que no hemos definido. Si definimos el vector:

int a[15];

Podremos acceder a las posiciones del vector a[0] hasta a[14];
Otro utilización esencial de los vectores es utilizar vectores de caracteres para
guardar cadenas de texto. Por ejemplo, en la definición de la cadena

char nombre[]="Jose";

estamos indicando que la cadena es un vector de tantos char como letras hay
entre las comillas (en este caso 4). Donde los valores del vector son nombre[0]='J',
nombre[1]='o', nombre[2]='s', nombre[3]='e'.
Mientras los caracteres se definen como un número entero de 1 byte o como un
carácter entre comillas simples. Una cadena de texto se define como un conjunto
de caracteres entre comillas dobles. Por tanto no hay que confundir

char letra[]="A";

con

char letra='A';

ya que el primero es un vector de un sólo elemento y el segundo es un carácter
que contiene la letra A mayúscula. En cambio, sí es lo mismo escribir

char letra='A';

que

char letra=65;

• Estructura: es una agrupación de datos de distintos tipos definidas por el
programador, con el fin de crear sus propios tipos de datos. Por ejemplo,
imagínese que va a hacer un programa para una tienda en el que guarde
información de diferentes productos, tales como el nombre, el código de
referencia, el precio, etc... Podría usted crear un entero para cada precio, una
cadena para cada nombre de producto... o puede crear una estructura en la que
englobe todos los datos necesarios para cada producto, como por ejemplo:
struct producto {

char nombre[25];
int precio;
char referencia[10];

}
Una vez definida la estructura hemos definido el tipo de dato, no el dato en sí.
Para utilizar ahora un dato de el tipo producto, lo definimos como cualquier otro
dato simple, pero indicando primero que se trata de una estructura, luego el
nombre de la estructura definida y luego el nombre de la variable. Por ejemplo

struct producto prod1;

definirá la variable prod1 del tipo producto.

Cuando queramos acceder a un elemento de la estructura lo haremos de la
siguiente manera:
<nombre variable>.<nombre miembro>
prod1.precio=234;
asigna al precio de la variable prod1 el valor 234;

Otros tipos de datos

• Enumerados: no siempre será necesario trabajar con datos que representen
números o cadenas de caracteres. Pongamos que quiere representar datos que
simbolicen el día de la semana; se podrá representar como datos numéricos (días
1,2,3,4,5,6, y 7), aunque es mucho más cómodo representar directamente los días
(lunes, martes...). Para esta función fueron creados el tipo de datos enumerados.
Su sintaxis es la siguiente:
enum <tipo de dato> {

<lista de valores separados por coma>

};
Ejemplos:
enum mes { enero, febrero, marzo, abril, mayo, junio, julio,
agosto, septiembre, octubre, noviembre, diciembre };
enum palo_baraja {
  • Links de descarga
http://lwp-l.com/pdf16877

Comentarios de: Programas = Algoritmos + Estructuras de datos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad