Programacion C++

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 10

PROGRAMACION

METODOLOGIA DE LA PROGRAMACION
Se encarga de realizar estudios sobre los problemas para
obtener los pasos detallados que resuelvan dicho problema.
Estudia los problemas paso a paso teniendo en cuenta las
salvedades de ese programa. El estudio del programa a de ser
standard, es decir, que lo entienda cualquier persona ya que
la programación la pueden realizar varias personas.
Para que esto sea standard se ha hecho un simbolismo.

El estudio se divide en dos partes:


- Sistema o Equipo Requerido.- Se representa en un esquema
llamados ORGANIGRAMA.
- Ordenes o Pasos para Resolver ese Problema.- ORDINOGRAMA.

Los Organigramas solo son necesarios para grandes aplicacio-


nes en grandes ordenadores, sobre todo cuando se trabaja con
multipuesto.
Los Ordinogramas. Para generar los Ordinogramas se emplea el
siguiente simbologismo:

Inicio/Fin. Se emplea para


indicar el comienzo o la Fin.

FLUJO. Establece la secuencia de


ejecución. Partirá una única
flecha del inicio y llevará una
única flecha al fin, permi-
tiéndose ramificaciones durante
el proceso, aunque estas deberán
confluir a un solo flujo, sin
quedar ninguno perdido.

PROCESO. Se emplea para realizar


cálculos aritméticos. Dentro del
polígono se empleará la formula
matemática.

Indica la petición de un valor


al teclado.

SALIDA PANTALLA. Indica que se


presenta algo en pantalla.

1
SALIDA IMPRESORA.

E/S ESTANDAR. Se emplea para el


acceso a los discos tanto para
leer como para escribir.

Es un condicional. Se emplea
para tomar decisiones y permite
dividir el flujo para poder
realizar dos procesos paralelos
dependientes de la condición.

ACCESO A DISCO. Se emplea para


abrir y cerrar ficheros.

ENLACE. Sirve para enlazar dos


puntos distantes en el
Ordinograma.

Concepto Variable.- No se puede trabajar con valores


concretos. Es un nombre que representarán valor en un momento
determinado y que podrá variar ese valor a lo largo de ese
programa.

TURBO C++

El camino donde se encuentra el entorno es c:\tc\bin.


Las directivas #include sirven para cargar las librerías.

NOMBRES DE IDENTIFICADORES

Son los nombres usados por el usuario y deben cumplir las


siguientes características.

1º.- Han de comenzar por una letra o un guión de subrayado.

2º.- Estarán compuestas por letras, guiones de subrayado o


números.

2
3º.- El tamaño es ilimitado aunque TC++ toma como
significativo, los 32 primeros caracteres.

4º.- Diferencia minúsculas y mayúsculas.

PUNTEROS

Los punteros son variables que almacenan direcciones de


memoria. Los punteros se emplean para poder almacenar
múltiples datos al igual que las tablas pero con dos ventajas
fundamentales.

1º.- No dispone de un número concreto y delimitado de


elementos.

2º.- Dispone de una estructura dinámica o sea no cerrada.


Los elementos dinámica disponen de dos subelementos pero uno
imprescindible.

DATOS Un Elemento
1 2 3 Punteros
D1 D2 D3

Un puntero que me sirve para enlazar un elemento con el


siguiente.
Para definir una variable de puntero lo haremos de la misma
forma que cualquier variable pero delante del tipo,
indicaremos un circunflejo (^).
Ej. VAR
Puncar:^String[20];

Aunque lo normal es utilizar punteros en estructuras de tipo


registro. Incluyendo en esta estructura un puntero a la
propia estructura para indicar la dirección del registro
siguiente.
Ej.- Supongamos que quiero realizar una agenda telefónica a
través de listas dinámicas para tenerla perfectamente
ordenada para incluir en cualquier momento elementos.
Necesitaremos una estructura del siguiente tipo.

TYPE
AGE=RECORD
NOM:STRING[20];
TLF:STRING[12];
PUNSIGUIENTE:^AGE;  Dirección de cada elemento

3
END;

Para manipular una lista, como mínimo, necesito dos


variables de puntero. Una que almacenará el comienzo de la
lista.
VAR
PUNCAB(PUNTERO CABECERA),PUNTRA(PUNTERO DE TRABAJO):^AGE
(DIRECCIÓN DE CADA ELEMENTO).

Y necesito un puntero de trabajo para moverme por la


tabla.
El peligro al trabajar con punteros es perder el control
de la dirección de los discos. Los punteros hace falta
inicializarlos (Un valor neutro), para ello un puntero lo
igualaré a la constante NIL.

BEGIN NIL
PUNCAB:=NIL;

Para poder almacenar un valor en un elemento tendré que


reservar memoria para este elemento, esto lo haremos con la
instrucción NEW indicando como parámetro un puntero de dicha
estructura.
Ej.- BEGIN
PUNCAB:=NIL;
NEW(PUNTRA);

Cuando queremos hacer referencia a un dato del elemento que


apunta el puntero que contiene la dirección de ese elemento
lo haremos indicando el nombre del puntero seguido de un
circunflejo punto y el nombre del dato.
- Para pedir el nombre del dato: READLN(PUNTRA^.NOM);
Si queremos hacer desaparecer un elemento de la lista he
de liberar la memoria que ocupaba ese elemento. Se hace
con DISPOSE(PUNTERO); El perder las direcciones de los
discos es el error más grave.
PUNTRA2

PUNTRA1

NIL

Para visualizar PRINTF.


Gets(variable de cadena)  En vez de un scanf para una
cadena de caracteres. Con espacios sobre todo.

Un puntero va a ser una dirección de memoria. El nombre

4
precedido de *.
Ejemplo.- Un puntero para una zona de datos de tipo entero se
definirá  int *pun;
Para reservar espacio en la memoria malloc(tamaño);
Para especificar el tamaño se puede utilizar 
sizeof(zona);
Puntra1=(struct ag*) malloc(sizeof(struct ag)); Y lo
calcula directamente. Una vez seleccionada la memoria
accederemos por medio de un puntero. Por ello habrá dentro de
la estructura dinámica un puntero a la propia estructura.
Para manipular esta lista será necesario un puntero de
cabecera que apunta siempre al primer elemento de la lista, y
como mínimo un puntero de trabajo que me servirá para ir
recorriendo la lista.

MANIPULACIÓN DE PUNTEROS

Para poder almacenar en una estructura a través de punteros


es necesario reservar el espacio en la memoria, que se hará
con la instrucción malloc(tamaño); esta función devolverá
como valor la dirección de el puntero. Para especificar el
tamaño e byte de la estructura podremos calcular el número y
especificarlo.

Char  1 byte. Char [40]


Int  2 byte. Char [20]
Int [10]

80 bytes.

Para especificar el tamaño se puede utilizar la función


sizeof(zona);. Una vez utilizada la memoria tendremos que
acceder a ella por medio de un puntero, hay que recordar que
siempre que se quiera crear una estructura dinámica a través
de punteros dentro de la estructura habrá un puntero de
trabajo que me servirá para ir recorriendo la lista.

LIBERACIÓN DE LA MEMORIA

Para liberar utilizaremos la función free(puntero);


indicando como parámetro, el puntero de la zona a liberar.
Cuando un puntero no contiene ninguna dirección de memoria
toma el valor NULL.

En C++ todo son funciones, por eso vienen previamente


definidas. El INCLUDE sirve para cargar librerías de
funciones. A continuación los bloques. Para englobar un

5
bloque {}. Y así se manipulan.

TIPOS DE DATOS

Los 5 tipos de datos son:


- Carácter.......... Char.......... 8 bit.... 1 bite
- Entero............ Int .......... 16 bit ... 2 bite
- Punto Flotante.... Float......... 32 bit ... 4 bite
- Doble Punto Flo... Double Flota.. 64 bit ... 8 bite
- Sin Valor......... Void.......... 0 bit.... 0 bite

Ejemplo.- void1 main(void)

MODIFICADORES

Por defecto ya llevan Signed(diferencia en signo) pero


Unsigned(que lo tenga en cuenta). Short(Indica una
representación corta (por defecto)). Long (Duplica el nº de
bit con lo que se amplia el margen o rango).

INT Lo mismo
SIGNED SHORT INT

Para definir variables.

Tipo -------- Lista de variables


. .
. .

La declaración de variables se realiza en tres sitios:

- Al comienzo del programa antes de cualquier función, se


llama variable global y podrá usarse en cualquier parte
del programa.
- Dentro de una función, son variables locales y solo para
usarse dentro de la función.
- En la definición de la función, son variables de parámetro
formal y se empleará para trasladar información.

CONSTANTES

Se definen como una variable pero igualando el nombre a


un valor  INT X=18;

1
Void: No retorna ningún valor. El segundo no lo recibe.

6
OPERADORES

+, -, *, /, % Módulo de división, -- decremento, ++


incremento.
Las prioridades  ++ -- * / % + -

OPERADORES RELACIONALES

< > <= >= == (Comparación) ¡=(no igual)

OPERADORES LÓGICOS

&&  AND, ||  OR, ¡  NOT

PRESENTACION EN PANTALLA

PRINTF(“CADENA CONTROL(El Texto que se va a visualizar)”,


LISTA ARGUMENTOS);

%d  Visualiza un nº entero en formato decimal.


%f  Visualiza un nº flotante en formato decimal.
%c  Visualiza un carácter.
%s  Visualiza una cadena de caracteres.

\n  Línea en blanco.
\\  Representa barra inversa.
\”  Representa comillas.
\f  Alinearía la hoja(impresora).
\t  Realiza una tabulación.

Para pedir la orden de teclado  SCANF(“%”,&nombre);

SENTENCIAS DE CONTROL

La instrucción condicional es IF, el formato es el


siguiente:
If (condición)
Sentencias si;
Else
Sentencias no;
(Else es opcional).

Sentencia SWITCH  Es un multicondicional es idéntica a la


sentencia KEYS del Pascal. El formato de esta sentencia es:

Switch (variable) {
Case valor1: --- break;

7
“ “ “ “
default
sentencias; }
Default  Es para cuando el CASE no se cumpla y el break
para no encadenar la sentencia de todas las sentencias.

BUCLES

- SENTENCIA FOR(INICIACION2; CONDICION3; INCREMENTO4) Un bucle


podrá romperse en cualquier momento con la instrucción
BREAK. Va sumando valores.
- SENTENCIA WHILE(CONDICION); Si la primera no es verdad no
se ejecutará ni una sola vez.
- SENTENCIA DO WHILE

DO
{
SENTENCIAS;

WHILE(CONDICION);

Es similar al while con la excepción de que la condición


se comprobará al final del bucle por eso como mínimo se
ejecuta una vez.
El formato de definición de cualquier ARRAY sería  tipo
nombre[tamaño];
Char nombre[tamaño];  El tamaño uno más de lo normal. Y
es necesario porque identifica la cadena al final con \0.

ARRAYS UNIDIMENSIONALES

Para almacenar 10 números enteros  int números[10];


Siempre va relacionado con un FOR.
for(x=0;x<10;x+1);
scanf(“%d”, número[x]);
Si queremos que tenga un valor inicial lo igualaremos a
una lista de valores.
Los días de los meses  int diasmes[12]={31,28,31,30...}

LAS CADENAS DE CARACTERES.- En sí sería como un array


bidimensional de caracteres. Por lo tanto habrá que pedir 2
tamaños.
1.- El nº de elementos que va a tener el array.
2
Iniciación: Iniciar Variable.
3
Condición: Condición Variable.
4
Incremento: Incremento o Decremento.

8
2.- El tamaño de la cadena. “ENERO”
Char nomes[12][115]= “FEBRERO”
“MARZO”

ESTRUCTURAS

Una estructura es una colección de variables que se


referencian bajo el mismo nombre. Las Estructuras
proporcionan un medio adecuado para mantener asociadas varias
variables bajo un mismo nombre cuando los datos están
relacionados. Son equivalentes a los record de Pascal.
El formato de definición es:

Struct nombre {
Tipo variable;
. .
. .
} Variable global;

GESTIÓN DE CADENAS

1.- Asignación de una cadena:

if(strcpy(a6,desde7)==0);
(strcpy (xnom,nom)==0);

2.- Comparación. Se iguala a 0.

If(strcmp(xnom,nom)==0);
Hay que incluir la librería <string.h>.

FICHEROS

Todas las funciones requeridas se encuentran en la


librería <stdio.h>.
El puntero de archivo, en sí es una variable de tipo FILE.

FILE *fichero;

- Apertura  fichero=fopen(“c:\\Tc\\Bin\\datos.dat”,”wt”);
- File*fichero;....<stdin.h>
- Control de fin de fichero  feof(puntero del fichero); Se
5
[11]: Uno más.
6
A: Destino.
7
Desde: Origen.

9
forma un bucle para determinar que es fin de fichero.
- Cerrar  fclose(puntero de fichero);
- Lectura y escritura  fscan – Lectura, Entrar.
Fprintf – Escritura, Salir.

- r.- Abre un fichero de texto para lectura.


- A.- Añade en un fichero de texto.
- W.- Crea y abre un fichero de texto para escritura.
- Wb.- Crea un archivo binario para escritura.
- R+.- Abre un archivo para leer/escribir para
modificaciones.
- A+.- Añade o crea un archivo para leer/escribir.
- W+b.- Crea un archivo binario para leer/escribir.
- R+.- Igual que r.
- A+.- Igual que a.
- W+t.- Igual que w.
- Rb.- Crea un archivo binario para lectura.
- Ab.- Añade en un archivo binario.
- W+.- Crea un archivo para leer/escribir.
- R+b.- Abre un archivo binario para leer/escribir.
- A+b.- Añade o crea en un archivo binario para
leer/escribir.
- Wt.- Igual que w.
- R+t.- Igual que r.
- A+t.- Igual que a.

10

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy