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.