ESTRUCTURA DE DATOS Y MANEJO DE ARCHIVOS

Anuncio
ESTRUCTURA DE DATOS Y MANEJO
DE ARCHIVOS
TEMA 1.- Introducción a las estructuras de datos.
1) Definición
2) Clasificaciones:
a) Primitivas
b) Simples
c) Lineales
d) No lineales
3) Tipos de datos
4) Uso de algunos lenguajes de programación
Sintaxis de algunos elementos de un programa en C++
A) Identificadores: identificar variables, constantes, funciones, vectores, etc.
De 1 a 31 caracteres.
Debe iniciar con letra o _ (guión bajo)
Ejemplos:
C2 (correcto)
_C2 (correcto)
2C (incorrecto)
2 C (incorrecto)
Palabras reservadas.
float
char while if
for
int
else
return
B) Comentarios:
/*Este es un comentario*/
/*Podemos colocar mucha información importante de nuestro programa*/
C) Directiva o comando #include
Permite que el procesador incluya funciones proporcionadas por el fabricante
del lenguaje.
#include <stdio.h>
D) Comando #define
Permite definir constantes simbólicas
Variable: Cambiar el valor de la misma durante la ejecución del programa (a,b)
Constante: No cambia de valor este identificador (a,b,_pi,sanchez)
E) Tipos de variables:
I)
-
Constantes numéricas
Valores enteros (A=40)
Valores reales (flotante) (A=40.25)
II)
Constantes simbólicas
#define N 100
#define PI 3.1416
F) Signos de puntuación y de separación
/ !
%
&
*
(
)
-
+
{
}
\
;
:
<
>
¿
.
G) Todas las instrucciones del programa terminan con punto y coma (;)
Read (A);
Read (B);
C=A+B;
Ejercicios:
Hacer un programa en c++ que saque el área.
#include<stdio.h>
#include<conio.h>
main()
{
float area,radio;
clrscr();
printf("EL RADIO ES = ");
scanf("%f",&radio);
area=3.1416*radio*radio;
printf("EL AREA ES = %.2f\n",area);
getch();
return 0;
}
Hacer un programa en c++ que saque la altura, base y profundidad del cubo.
#include <stdio.h>
#include <conio.h>
main()
{
float altura, base, profundidad, volumen;
printf(“DAME LA ALTURA = \n”);
scanf(“%f”, & altura);
printf(“DAME LA BASE = \n”);
scanf(“%f”, & base);
printf(“DAME LA PROFUNDIDAD = \n”);
scanf(“%f”, & profundidad);
volumen =altura*base*profundidad;
printf(“EL VOLUMEN ES = %f\n”, volumen);
getch();
return 0;
}
Declaraciones de variables
tipo_de_dato nombre_variable
int a,b,c,x;
float d,e,y;
int
float radio,area;
int a=20;
cont =0;
char (caracter)
char letra =”A”
char palabra [20] = ;
char nombre [20] = “José”
Declaración de constantes
const tipo_de_dato ( Puede ser Int ó float ) nombre= valor
const int día =7;
const float pi=3.1416;
const char character =’m’;
const chart fecha [30] =”20 de noviembre de 2006”;
Entrada y salida por consola (video)
E/S = I/O
#include <stdio.h> librería para manejar I/O desde video
#include <conio.h>
printf (“mensaje en pantalla para capturar datos”)
scanf
clrscr(); (Clearscreen)
Ejercicio:
Hacer un programa en c++ que muestre qué tecla se presionó y salir del
programa.
#include <stdio.h>
#include <conio.h>
main()
{
char x;
printf ("PARA FINALIZAR PRESIONE CUALQUIER TECLA");
x=getchar();
printf ("LA TECLA ES = %c\n", x);
getch();
clrscr();
return 0;
}
Entrada/Salida de cadenas
Cadena = frase compuesta por varias palabras
gets() = lee una cadena de caracteres introducido por el teclado
puts() = imprime en pantalla, el argumento guardado en la variable
Ejercicio:
Diseñe en c++ un programa que lea su nombre, lo salude y mande a impresión
su nombre, usando getes() y puts().
#include <stdio.h>
#include <conio.h>
main()
{
char nombre [40];
puts ("DIGITE SU NOMBRE");
gets (nombre);
puts ("BIENVENIDO");
puts (nombre);
getch();
clrscr();
return 0;
}
Salida hacia pantalla (printf)
printf(“CADENA DE CONTROL”,nombre_de_variable);
Cadena de control:
%d
%i
%c
%s
%f
%o
%x
%%
entero
entero
carácter
cadena de caracteres
real
octal
hexadecimal
imprimir porcentaje
int suma=10;
printf(“la suma es %d”,suma);
char nombre[7]=”Manuel”
printf(“EL CREADOR DE ESTE MANUAL ES %s”,nombre);
int x=12,y=15;
char z=’D’;
float v=10.2563;
printf(“ESTOS SON LOS NUMEROS %d %d %f, y ESTA ES UNA LETRA %c,
x, y, v, z”);
Ejercicio:
Leer 2 variables enteras, una flotante, un caracter, una cadena (nombre de 12
caracteres).
1.- 2 variables enteras = suma y una variable flotante
2.- Desplegar todos los datos de entrada (5)
3.- Suma, división, carácter y nombre
#include <stdio.h>
#include <conio.h>
main()
{
int x,y;
float z,suma,division;
char a, nombre[12];
clrscr();
printf("digite el primer numero entero \n");
scanf("%i",&x);
printf("digite el segundo numero entero \n");
scanf("%i",&y);
printf("digite el entero con decimal \n");
scanf("%f",&z);
suma=x+y;
printf("la suma es %.2f\n",suma);
division=suma/z;
printf("la division es %.2f\n",division);
printf("digite un caracter \n");
scanf("%s",a);
printf("digite su nombre \n");
scanf("%s",&nombre);
printf("los datos son %i %i %.2f %s %s", x,y,z,a,nombre);
getch();
return 0;
}
%.2f (cadena de control) – (Es para poner solamente dos decimales)
printf(“La suma es %.2f”,suma);
Entrada desde teclado
scanf(“cadena de control”,nombre_variable);
Ejercicio:
Diseñe un programa que guarde e imprima la nota del examen final de 3
alumnos.
#include <stdio.h>
#include <conio.h>
main()
{
int cf1,cf2,cf3;
char nom1[40],nom2[40],nom3[40];
clrscr();
printf("Escriba el nombre del alumno 1\n");
scanf("%s",nom1);
printf("Escriba la calificaci•n del alumno 1\n");
scanf("%i",&cf1);
printf("Escriba el nombre del alumno 2\n");
scanf("%s",nom2);
printf("Escriba la calificaci•n del alumno 2\n");
scanf("%i",&cf2);
printf("Escriba el nombre del alumno 3\n");
scanf("%s",nom3);
printf("Escriba la calificaci•n del alumno 3\n");
scanf("%i",&cf3);
getch();
return 0;
}
Crear un programa que cuando se presione una letra salga la calificación del
alumno.
#include<stdio.h>
main()
{
char caracter,nombre[15];
clrscr();
printf("Digite el nombre del alumno\n");
scanf("%s",nombre);
printf("\nDigite la calificacion con letra\n");
scanf("%s",&caracter);
if (caracter=='A')
printf("La calificacion es 100");
else
if (caracter=='B')
printf("La calificacion es 90");
else
if (caracter=='C')
printf("La calificacion es 80");
else
if (caracter=='D')
printf("La calificacion es 70");
else
printf("Caracter fuera de rango");
getch();
return 0;
}
Condición if
if (condición) sentencias;
else sentenciar;
Ejemplo:
#include <stdio.h>
main()
{
float numero;
clrscr();
printf("Introduce un numero positivo o negativo\n");
scanf("%f",&numero);
if(numero>0)
printf("Es mayor que cero\n");
else
if(numero<0)
printf("Es menor que cero\n");
else
printf("Es igual a cero\n");
printf("El numero es = %.2f",numero);
getch();
return 0;
}
Operadores aritméticos
+
*
/
%
suma
resta
multiplicación
división
cociente de una división (No aplica a números flotantes)
Operadores relacionales
Operadores Unarios.
++
--
menos unario
operador incremento (en 1)
operador decremento (en 1)
Ejercicios:
Crear un programa que al ponerle un número a “A” y “B” salga su
incrementacíon y decrementación en pantalla.
NOTA ( ESTE PROGRAMA SE CONFIGURA DENTRO DE C++, NO EN EL
PROGRAMA YA HECHO por que así fue creado por el maestro )
#include <stdio.h>
#include <conio.h>
main()
{
int a=4,b=10;
clrscr();
printf("%i %i\n",++a,--b);
printf("%i %i\n",++a,--b);
printf("%i %i\n",++a,--b);
printf("%i %i\n",++a,--b);
printf("%i %i\n",++a,--b);
printf("%i %i\n",++a,--b);
getch();
return 0;
}
El resultado de esto es:
5
9
6
8
7
7
8
6
9
5
10
4
Aquí “A” es 4 y “B” es 10, entonces sale la numeración de arriba, si se cambia, aparece otra
combinación de números.
Crear un programa que incremente o decremente un número y que valide
cualquier otro carácter diciendo: carácter fuera de rango.
#include<stdio.h>
#include<conio.h>
main()
{
char opcion;
int a;
clrscr();
printf("Digite un numero\n");
scanf("%i", &a);
printf("I para incrementar o D para decrementar este n£mero ");
scanf("%s",&opcion);
if (opcion=='I')
printf("El incremento es: %i",++a);
else
if (opcion=='D')
printf("El decremento es: %i",--a);
else
printf("Caracter fuera de rango");
getch();
return 0;
}
Operadores relacionales o de comparación
<
menor que
<=
>
>=
==
!=
menor o igual que
mayor que
mayor o igual que
igual que (comparaciones)
no igual a (diferentes)
Operadores lógicos
And
&& (Devuelve un 1 si se cumplen ambas condiciones)
Or
‘’ (Devuelve un 1 si si se cumple cuando menos una de las
condiciones)
Not
!
(Inverso de la condición)
Printf(“Resultado: %i”,10=10&&5>2);
Operadores de asignación
prom = (c1+c2+c3)/3
es el igual (
=
)
Ejercicio:
Dado el peso, altura y sexo de unos estudiantes, determinar la cantidad de
cocaina que deben consumir éstos en base al siguiente criterio:
1.- Si son hombres y su estatura es mayor a 1.60 metros y su peso es mayor o
igual a 70 kgs, su dosis será 20% de su estatura, 80% de sus peso, de lo
contrario la dosis será la siguiente: 30% estatura y 70% peso.
2.- Si el estudiante es mujer y su estatura es mayor a 1.50 metros y su peso es
mayor o igual a 60 kg su dosis será 25% estatura y 75% peso, de lo contrario
será 35% estatura y 65% peso.
Nota: La dosis será en gramos.
Descargar