Sistema de Program as Ion c++ Nivel1

43
Los nuevos sistemas de información son costosos en tiempos y recursos, la solución moderna de sistemas de información exigen nuevas herramientas y metodologías para resolver rápida, económica y eficiente los problemas de información planteados por las organizaciones. Aun mas el pleno potencial del hardware no es aprovechado plenamente y existe un considerable retraso con el software y sus aplicaciones, generando lo que se conoce como “crisis del software”. En programación tradicional, modular o estructurada un programa describe una serie de pasos a ser realizados para la solución de un problema, es decir es un algoritmo, en particular este modelo de programacion se usó mucho para generar programas o aplicaciones en ambientes pc's y con consolas, es decir el programa se ejecutaba en una consola de msdos por ejemplo, y el programa o aplicación se tenía que portar fisicamente a otras pc's, al final de su ciclo de vida de este modelo se habia mejorado y ya era posible que se ejecutara en alguna ventana-consola de ambientes windows, con mejor interfase como fonts, colores, background, etc. En programación orientada a objetos ( OOP ) un programa es considerado como un sistema de objetos interactuando entre sí, ambientes de desarrollo visuales facilitan aun más la construcción de programas y solución de problemas, porque permiten abstraer al ingeniero de software de todo elGUI (interfase gráfica) del problema, que constituye más del 60% del código normal de un programa, en general este ambiente permitió una mejora en la interfase del programa con el usuario de la aplicación ya que en este caso solo se manejaban formas o ventanes llenas de componentes o controles especializados en alguna tarea especifica. A este modelo de programación o construcción de programas los compiladores modernos se adaptarón rapidamente y tenemos aplicaciones fantasticas, en donde alguna forma o ventana esta llena de controles visibles e invisibles que realizan muchas tareas donde ademas de los componentes o controles que proporciona directamente el compilador cuando se instala, existen miles de controles o componentes extras en muchas partes del mundo realizados por programadores talentosos y que enriquecen el contenido de nuestros programas y aplicaciones visuales. Al principio estas aplicaciones, se construian pensando en que se ejecutaban en una pc con ambiente grafico o en una serie de pc's proximas fisicamente sin embargo el rapido avance de las redes dentro de las empresas u organizaciones conllevan a que los fabricantes de compiladores cada vez incluyeran mas y mas controles o componentes que permitan ejecutar el programa o aplicación simultaneamente en una red de pc's. Sin embargo cuando se habla de redes actuales estamos hablando de la red de redes (internet) y si en redes internas o intranets el retraso en el

Transcript of Sistema de Program as Ion c++ Nivel1

Page 1: Sistema de Program as Ion c++ Nivel1

Los nuevos sistemas de información son costosos en tiempos y recursos, la solución moderna de sistemas de información exigen nuevas herramientas y metodologías para resolver rápida, económica y eficiente los problemas de información planteados por las organizaciones.

Aun mas el pleno potencial del hardware no es aprovechado plenamente y existe un considerable retraso con el software y sus aplicaciones, generando lo que se conoce como “crisis del software”.

En programación tradicional, modular o estructurada un programa describe una serie de pasos a ser realizados para la solución de un problema, es decir es un algoritmo, en particular este modelo de programacion se usó mucho para generar programas o aplicaciones en ambientes pc's y con consolas, es decir el programa se ejecutaba en una consola de msdos por ejemplo, y el programa o aplicación se tenía que portar fisicamente a otras pc's, al final de su ciclo de vida de este modelo se habia mejorado y ya era posible que se ejecutara en alguna ventana-consola de ambientes windows, con mejor interfase como fonts, colores, background, etc.

En programación orientada a objetos ( OOP ) un programa es considerado como un sistema de objetos interactuando entre sí, ambientes de desarrollo visuales facilitan aun más la construcción de programas y solución de problemas, porque permiten abstraer al ingeniero de software de todo elGUI (interfase gráfica) del problema, que constituye más del 60% del código normal de un programa, en general este ambiente permitió una mejora en la interfase del programa con el usuario de la aplicación ya que en este caso solo se manejaban formas o ventanes llenas de componentes o controles especializados en alguna tarea especifica.A este modelo de programación o construcción de programas los compiladores modernos se adaptarón rapidamente y tenemos aplicaciones fantasticas, en donde alguna forma o ventana esta llena de controles visibles e invisibles que realizan muchas tareas donde ademas de los componentes o controles que proporciona directamente el compilador cuando se instala, existen miles de controles o componentes extras en muchas partes del mundo realizados por programadores talentosos y que enriquecen el contenido de nuestros programas y aplicaciones visuales.

Al principio estas aplicaciones, se construian pensando en que se ejecutaban en una pc con ambiente grafico o en una serie de pc's proximas fisicamente sin embargo el rapido avance de las redes dentro de las empresas u organizaciones conllevan a que los fabricantes de compiladores cada vez incluyeran mas y mas controles o componentes que permitan ejecutar el programa o aplicación simultaneamente en una red de pc's.

Sin embargo cuando se habla de redes actuales estamos hablando de la red de redes (internet) y si en redes internas o intranets el retraso en el tiempo de comunicación entre sus pc's internas y la cantidad de informacion a trasmitir entre las mismas no es algo muy importante o inmanejable, este problema de tiempo de trasmisión y cantidad de información, si es un factor muy importante cuando se pretende construir programas o aplicaciones que deban compartirse o usarse por muchas pc's conectadas a internet, desgraciadamente como factor externo que es, no esta bajo control de la empresa o del programador.

C o C++ , son los compiladores que permiten usar cualquiera de los tres enfoques en la solución de problemas de información que puedan y deban ser resueltos empleando

Page 2: Sistema de Program as Ion c++ Nivel1

el computador y el lenguaje aunque se repite este curso esta enfocado al primer modelo.

UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 2: MODELO DE SOLUCION C++

En general un problema de información es posible entenderlo, analizarlo y descomponerlo en todos sus componentes o partes que de una u otra manera intervienen tanto en su planteamiento como en su solución.

Una herramienta rápida que nos permite descomponer en partes un problema para su solución, es el llamado modelo de solución, este consiste de una pequeña caja que contiene los tres elementos más básicos en que se puede descomponer cualquier problema sencillo de información, estas tres partes son:

1. LA PRIMERA PARTE son todos los datos que el computador ocupa para resolver el problema, estos datos son almacenados internamente en la memoria del computador en las llamadas variables de entrada.

2. LA SEGUNDA PARTE son todas las operaciones generalmente algebraicas necesarias para solucionar el problema, generalmente esta parte del modelo es una formula (o igualdad matemática, ej. X= y + 5).

3. LA TERCERA PARTE es el resultado o solución del problema que generalmente se obtiene de la parte de operaciones del modelo y dichos datos están almacenados en las llamadas variables de salida.

En resumen para todo problema sencillo de información es necesario plantearse las siguientes preguntas:

Que datos ocupa conocer el computador para resolver el problema y en cuales variables de entrada se van a almacenar ?

Que procesos u operaciones debe realizar el computador para resolver el problema planteado.

Que información o variables de salida se van a desplegar en pantalla para responder al problema planteado originalmente?

Como nota importante no confundir los términos datos, variables e información;

Datos se refiere a información en bruto, no procesada ni catalogada, por ejemplo “Tijuana”, “calle primera # 213”,”15 años”, ” $2,520.00”, etc.

Variables es el nombre de una localidad o dirección interna en la memoria del computador donde se almacenan los datos, ejemplo de variables para los casos del inciso anterior, CIUDAD, DIRECCION, EDAD, SUELDO, ETC.

Información son datos ya procesados que resuelven un problema planteado.

Page 3: Sistema de Program as Ion c++ Nivel1

EJEMPLO DE MODELO DE SOLUCIÓN

Construir un modelo de solución que resuelva el problema de calcular el área de un triángulo con la formula área igual a base por altura sobre dos.

Variable(s) de Entrada Proceso u Operación Variable(s) de Salida

BASE AREA= BASE * ALTURA / 2 AREA

ALTURA

PROBLEMA 2.- CONVERTIR LA EDAD EN AÑOS DE UNA PERSONA A MESES.

PROBLEMA 3.- CONVERTIR PESOS A DOLARES.

PROBLEMA 4.- CALCULAR EL AREA DE UN CIRCULO CON LA FORMULA

PROBLEMA 5.- EVALUAR LA FUNCION  PARA CUALQUIER VALOR DE X.Observar para el caso de constantes fijas o conocidas (PI) no se debe dar como dato de entrada su valor, en cambio colocar directamente su valor dentro de la formula, en la parte de operaciones del problema.

Pero recordar también que existirán problemas sencillos donde:

No se ocupan entradas o no se ocupan operaciones, pero todos ocupan salida.

Una formula grande o muy compleja puede ser más segura y fácil de resolver, si es descompuesta y resuelta en partes, juntando al final los parciales para obtener el resultado final.

Un problema puede tener más de una solución correcta.

El problema no esta suficientemente explicado o enunciado, entonces, estudiarlo, analizarlo y construirlo de manera genérica.

TAREAS PROGRAMACION C++

Construir los modelos de solución de los siguientes problemas:

PROBLEMA 6.- Convertir millas a kilómetros(caso normal)

PROBLEMA 7.- Convertir 125 metros a centímetros(no ocupa entradas)

PROBLEMA 8.- Se calcula que en promedio hay 4.7 nidos en cada árbol en la UABC, también se calcula que en cada nido existen un promedio de 5.8 pájaros, se pide calcular la cantidad total de nidos y de pájaros en los 227 arboles que existen en la UABC. (no ocupa entradas)

PROBLEMA 9.- La gorda Sra. López y sus 8 hijos solo compran una vez al mes su mandado en conocido supermercado, en dicha tienda el kilogramo de frijol cuesta $8.75, el paquete de tortillas cuesta $3.55 y el frasco de café vale $14.25, si solo

Page 4: Sistema de Program as Ion c++ Nivel1

compran de estos tres productos para su mandado, calcular su gasto total. ( problema no claro)

PROBLEMA 10.- Capturar y desplegar los cinco datos mas importantes de un automóvil(no ocupa operaciones)

PROBLEMA 11.- La distancia Tijuana - Ensenada es de 110 kilómetros. Si un automóvil la recorre a una velocidad constante de 30 millas por hora, cuanto tiempo tarda en llegar. ( 1 milla = 1.609 Km.) (dos maneras correctas de resolverlo).

PROBLEMA 12.-Evaluar la función  para cualquier valor de x.(caso normal).

PROBLEMA 13.-Evaluar la función  para cuando x vale 4 . (no ocupa entradas).14.- Evaluar el factorial de cualquier numero usando la formula: n!=n!-1

15.-La distancia que recorre un auto es de 50 kms y su velocidad es de 30 millas por hora .¿Cuanto tiempo tardara en llegar?

16.-Encontrar la derivada de x para cualquier valor con la formula(d/dx(x)=1)

17.-Calcular l interes que gana un capital de x pesos a una tasa de interes del 15% annual en un periodo de n años.

18.-Que aceleracion tiene un tren que parte de tijuana a 10 km/hr y pasa por ensenada una hora despues a 50 km/hr.

19.-Calcular el numero de aulas en una escuela que tiene 10 edificios y cada edificio 3 pisos y cada piso 5 aulas, excepto un edificio que solo tiene dos pisos.

20.-Si en una escuela hay 30 maestros y 15 son hombres que atienden a 10 alumnos cada uno. Cuantas maestras hay?

21.-Calcular la corriente de un circuito con un voltaje de 15v y una resistencia de 6 ohms. Formula (I= V/R)

22.-Calcular la normal estandar(z) dados los datos por el usuario: X=dato, µ=media, d=desviacion. Formula (Z = X-M / d)

23.-Dado un numero(N) cualesquiera obtener su raiz y potencia cuadrada .

24.-Determinar la media de 5 numeros diferentes.

25.-Determinar la velocidad v requerida para recorrer una distancia d en un tiempo t . Formula (V = d * t)

26.-Determinar la pendiente de una recta. Formula (y = m x + b)

27.-Calcular la funcion de y= x² + 8x + 3 para cualquier x

28.-Convertir minutos a horas.

Page 5: Sistema de Program as Ion c++ Nivel1

29.-Aplicar la formula general para a=1, b=2, c=3.

30.-Se desea instalar un cable de red, el cliente pide 30 pies, considerando que se venden en metros, cuantos debera comprar.

31.-Un campesino siembra trigo en un area cuadrada de 25 mts., ¿ cual es el largo del cerco frontal en cms.?

32.-Resolver x² + 15x - 8 para cualquier variable (X).

33.-Convertir °C a °F.

34.-Si cada salon de la escuela tiene 40 alumnos y son 30 salones ¿Cuantos alumnos son en toda la escuela?

35.-Si Juan trabaja 5 dias a la semana y descansa 2 ¿Cuantos dias trabajo en 4 años?

36.-Si en una oficina se procesan 20 facturas cada 10 minutos cuantas se procesaran si se trabajan 5 horas?

37.-Si una empresa tiene _ de activo y un pasivo de _ ¿Cual es su capital?. Formula (C = A-P)38.-Calcule el voltaje de un circuito dada una intensidad I y una resistencia R. Formula (V=IR)

39.-Calcule la frecuencia de una onda que circula con un tiempo t. Formula (F=1/t)

40.-Calcule la potencia de un circuito con un voltaje V y una intensidad I. Formula (f = VI)

41.-Calcule el total que tendra que pagar una persona que va al cine dependiendo del no. de boletos a comprar y el precio.

42.-Calcule las anualidades que tendra que pagar una persona que pidio un prestamo. Dependiendo del tiempo que el elija y el interes por año. Formula (Anualidad=(Prestamo/Tiempo)+interes)

43.-Determinar cuanto ganara una persona en base a la horas trabajadas. Tomando en cuenta el pago por hora.

44.-Convertir horas a segundos.

45.-Calcular la fuerza. Formula (fuerza = trabajo / tiempo)

UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 3: VARIABLES C++

Identificadores son conjuntos de letras y/o números que se utilizan para simbolizar todos los elementos que en un programa, son definibles por el usuario (programador o

Page 6: Sistema de Program as Ion c++ Nivel1

ingeniero de software) del mismo, como son las variables donde se almacenan datos, funciones( pequeños módulos con código), etiquetas, clases, objetos, etc.

En C++ un identificador es una palabra compuesta de letras y/o números de hasta 32 caracteres significativos, empezando siempre con una letra.

Una variable se define como un identificador que se utiliza para almacenar todos los datos generados durante la ejecución de un programa.

Existen ciertas reglas en cuanto a variables:

Claras y con referencia directa al problema.

No espacios en blanco, ni símbolos extraños en ellas.

Se pueden usar abreviaturas, pero solo de carácter general.

No deben ser palabras reservadas del lenguaje.

Ejemplos de buenas variables:

Nombre, Edad, SdoDiario, IngMensual, Perímetro, Calif1, etc.

UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 4: TIPOS DE DATOS C++

A toda variable que se use en un programa, se le debe asociar (generalmente al principio del programa) un tipo de dato específico.

Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecución del programa y a lo largo de toda la vida útil del propio programa.

Los tipos de datos más comunes en C++ son:

TIPO DATO ESPACIO MEMORIA RANGO

unsigned char 8 bits 0 a 255

char 8 bits -128 a 127

short int 16 bits -32,768 a 32,767

unsigned int 32 bits 0 a 4,294,967,295

int 32 bits -2,147,483,648 a 2,147,483,647

unsigned long 32 bits 0 a 4,294,967,295

enum 16 bits -2,147,483,648 a 2,147,483,647

Page 7: Sistema de Program as Ion c++ Nivel1

long 32 bits -2,147,483,648 a 2,147,483,647

float 32 bits 3.4 x 10-38 a 3.4 x 10+38(6 dec)

double 64 bits 1.7 x 10-308 a 1.7*10+308(15 dec)

long double 80 bits 3.4 x 10-4932 a 1.1 x 10+4932

void sin valor

Para manejar cadenas de caracteres (strings), se debera usar un arregllo de caracteres con el siguiente formato.

Char nomstring[cant de elementos];

Ejemplo

Char nombre[30];

Char ciudad[20];

Para cargar con un dato se usa el siguiente codigo;

strcpy(carrera,”ing sistemas”);

Variables arreglos de caracteres, tienen que usar sus funciones de manipulación que vienen en la libreria string.h, algunas de estas funciones son: strcpy(), strcat(), strcmp(), strlen(), etc.

UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 5: C++ OPERADORES ARITMETICOS

Un operador es un símbolo especial que indica al compilador que debe efectuar una operación matemática o lógica.

C++ reconoce los siguientes operadores aritméticos:

Operador Operación

+ SUMA

- RESTA

* MULTIPLICACION

/ DIVISION

% MODULO O RESIDUO

Como notas importantes a recordar siempre;

Page 8: Sistema de Program as Ion c++ Nivel1

En problemas de división entre enteros, C++ trunca la parte residual, es decir;

</code> área de declaración de variables float a; área de operacionesa = 10 / 4;

área de despliegue de resultados desplegar a; → En pantalla sale ( 2.000000 ) </code> El problema no es el tipo float, sino que por definición de la división entre enteros C++ siempre trunca la parte residual, mas adelante se indica como se resolverá este problema. El operador (%) devuelve el residuo entero de una división entre enteros, ejemplo; <code> área de declaraciónint alfa;

área de operaciones alfa = 23 % 4; área de desplieguedesplegar alfa; → El resultado en pantalla es 3

Otro ejemplo;

alfa = 108 % 10;

desplegar alfa; → El resultado en pantalla es 8

</code>

Para resolver los problemas de potencias y raíces, se usan ciertas instrucciones especiales que proporciona el lenguaje, llamadas funciones matemáticas, en C++ existe toda una librería de instrucciones o funciones matemáticas.

Recordar que todas las funciones reciben uno o más datos o valores y regresan siempre un resultado, una de estas funciones matemáticas es:

#include <math.h>

double pow(double base, double exp);

Esta función ocupa dos valores o datos( base y exp) ambos de tipo double, y regresa un resultado también de tipo double, ejemplo;

Resolver el problema de calcular 

#include <math.h>

// área de declaración de variables

double base, exponente, potencia;

Page 9: Sistema de Program as Ion c++ Nivel1

// área de asignación o carga o inicialización de

// variables

base=5;

exponente=3;

// área de operaciones

potencia =pow( base, exponente);

// Despliegue

desplegar potencia; -> El resultado en pantalla es 125.000000000

Para resolver el problema de raíces, se aprovecha una de las mas elementales y conocida de las leyes de exponentes que dice:

Es decir una raíz cualquiera se puede transformar a una potencia con un exponente fraccionario.

Ejemplo:

problema <m> y = 3sqrt{x} </m> esto es equivalente a  entonces usando función powy= 3*pow(x, 0.5);

En este ejemplo se esta dando por supuesto que no interesa el tipo de dato que requiere la función pow() para trabajar correctamente

RESUMEN: En C++ se puden resolver con la ayuda de estos operadores toda clase de problemas, ya sean financieros, algebraicos de negocios, contables, etc

Page 10: Sistema de Program as Ion c++ Nivel1

UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 6: OPERADOR CAST C++

Se puede forzar un dato, variable o una expresión a convertirse o cambiarse a un nuevo tipo de dato.

El operador cast realiza este proceso, es decir convierte datos, variables o expresiones a un nuevo tipo de dato, su formato es:

nvotipo (dato , var, exp);

Ejemplo:

// declaración

int alfa;

// Asignación

alfa=20;

// Cambio de tipo

float (alfa);

Ejemplo:

int (3.1416);

En este ejemplo se está convirtiendo un float a int, recordar que en este caso ya no se tendrán los decimales.

Como nota importante este operador resuelve los dos problemas pendientes:

Page 11: Sistema de Program as Ion c++ Nivel1

1. El de la división entre enteros.

2. El tipo de dato especifico que requieren las funciones.

Ejemplos:

a) // Declaración

float alfa;

// Operación

alfa = float (23)/5;

// Pero en estos casos es preferible

alfa=23/5.0;

En toda división recordar agregar a uno de los dos valores el (.0), solo que los dos elementos sean variables entonces usar el operador cast con una de ellas.

b)// Declaración

double potencia;

// Operación

potencia = pow ( double (5), double (3));

Page 12: Sistema de Program as Ion c++ Nivel1

Como se observa en el ejemplo, se puede usar pow(), directamente con los datos, argumentos o parámetros requeridos , si estos son numéricos, pero transformándolos con el operador cast.

Esto también va a permitir evaluar expresiones matemáticas de manera mas directa y sencilla, solo recordando usar un pow() por cada potencia y cada raíz de la ecuación, ejemplo:

Sea   dentro de un programa esto se resuelve con;

// área de declaración de variables

double y, x;

// área de captura de datos

capturar el valor de x;

// área de operaciones

y = 3 * pow(x, double (3)) - pow(x, (1/3.0)) + 4 * pow(x, double(2) );

// área de despliegue de resultados

desplegar x, y

TAREAS PROGRAMACION C++ POW():

Page 13: Sistema de Program as Ion c++ Nivel1

1. 

2. 

3. UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 6: OPERADOR CAST C++

Se puede forzar un dato, variable o una expresión a convertirse o cambiarse a un nuevo tipo de dato.

El operador cast realiza este proceso, es decir convierte datos, variables o expresiones a un nuevo tipo de dato, su formato es:

nvotipo (dato , var, exp);

Ejemplo:

// declaración

int alfa;

// Asignación

alfa=20;

// Cambio de tipo

float (alfa);

Ejemplo:

int (3.1416);

Page 14: Sistema de Program as Ion c++ Nivel1

En este ejemplo se está convirtiendo un float a int, recordar que en este caso ya no se tendrán los decimales.

Como nota importante este operador resuelve los dos problemas pendientes:

1. El de la división entre enteros.

2. El tipo de dato especifico que requieren las funciones.

Ejemplos:

a) // Declaración

float alfa;

// Operación

alfa = float (23)/5;

// Pero en estos casos es preferible

alfa=23/5.0;

En toda división recordar agregar a uno de los dos valores el (.0), solo que los dos elementos sean variables entonces usar el operador cast con una de ellas.

b)// Declaración

double potencia;

Page 15: Sistema de Program as Ion c++ Nivel1

// Operación

potencia = pow ( double (5), double (3));

Como se observa en el ejemplo, se puede usar pow(), directamente con los datos, argumentos o parámetros requeridos , si estos son numéricos, pero transformándolos con el operador cast.

Esto también va a permitir evaluar expresiones matemáticas de manera mas directa y sencilla, solo recordando usar un pow() por cada potencia y cada raíz de la ecuación, ejemplo:

Sea   dentro de un programa esto se resuelve con;

// área de declaración de variables

double y, x;

// área de captura de datos

capturar el valor de x;

// área de operaciones

y = 3 * pow(x, double (3)) - pow(x, (1/3.0)) + 4 * pow(x, double(2) );

// área de despliegue de resultados

desplegar x, y

Page 16: Sistema de Program as Ion c++ Nivel1

TAREAS PROGRAMACION C++ POW():

1. 

2. 

3. UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 7: C++ JERARQUIA DE OPERACIONES

El problema de no tomar en cuenta la jerarquía de los operadores al plantear y resolver una operación casi siempre conduce a resultados muchas veces equivocados como estos:

Ejemplos:

2+ 3* 4 = 20(incorrecto)

= 14 (correcto)

b) si calif1=60 y calif2=80 y si entonces en programa se usa

promedio=calif1 + calif2/2

la pc daría como resultado promedio = 100

Recordar siempre, que antes de plantear una formula en un programa se deberá evaluar contra el siguiente:

Orden de operaciones:

1.- Paréntesis

2.- Potencias y raíces

3.- Multiplicaciones y divisiones

4.- Sumas y restas

5.- Dos o más de la misma jerarquía u orden, entonces resolver de izquierda a derecha

Nota: Si se quiere alterar el orden normal de operaciones, entonces usar paréntesis.

Page 17: Sistema de Program as Ion c++ Nivel1

Nota: Tampoco es bueno usar paréntesis de mas en una operación, esto solo indica que no se evalúo bien la formula, como en el siguiente ejemplo;

aquí los paréntesis están de mas, porque por orden de operaciones, multiplicación y división tienen la misma jerarquía y entonces se resuelven de izquierda a derecha, en otras palabras ni que falten paréntesis ni que sobren paréntesis.

UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 8: COMPILADOR C++

Para poder construir programas o aplicaciones se usara el compilador turboc++ que se encuentra en la siguiente direccion de internet.

http://community.borland.com/museum/El compilador tiene el nombre de:

Antique Software: Turbo C++ version 1.01

Bajarlo, descomprimirlo en un folder o subdirectorio temporal, dentro se encontraran tres folders llamados disk1, disk2, disk3, copiar el contenido de disk2 y disk3 al folder disk1, luego correr un programa llamado install, esto creara un nuevo folder en el disco duro llamado tc, que ya contendra nuestro compilador a usar.

Para correr el compilador y el editor de programas que trae integrado, solo abrir una sesion de msdos prompt en la barra de start de windows y luego navegar al directorio tc\bin con la orden:

cpp:\CD TC\BIN

Luego cargar el compilador con la orden:

cpp:\TC\BIN\TC

Debera mostrarse la siguiente pantalla con el editor:

Page 18: Sistema de Program as Ion c++ Nivel1

Recordar que dentro de este compilador no funciona el raton o mouse, todas las opciones se cargan con la tecla ALT y la letra en rojo correspondiente, tambien se podran usar las teclas de flechas del teclado para navegar por las opciones de los menus.

UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 9: APLICACIONES C++

Prog1.cpp

</code>

#include <stdio.h>

void main()

{

area declaracion variables int base1, altura; float area; area captura de datosprintf(“dame base:”);

scanf(”%d”,&base1);

printf(“dame altura:”);

scanf(”%d”,&altura);

area de operaciones area=base1 * altura / 2.0; area despliegueprintf(“el area es =%0.2f”,area);

Page 19: Sistema de Program as Ion c++ Nivel1

getchar();getchar();

}

</code>

Reglas para escribir un programa en CPP:

a) Comienza con las instrucciónes #include etc y cada una de ellas es una libreria de instrucciones especializadas en tareas especificas.

b) Todas las palabras reservadas del lenguaje deben ser minusculas. (main, include, printf ,etc.)

c) Todo programa comienza con una función llamada void main().

d) El cuerpo de instrucciones del programa debera encerrarse entre llaves.

e) Todas las instrucciones ejecutables terminan con punto y coma.

f) Los comentarios se ponen encerrados entre /* comentario */

o comentario g) La declaración de variables ocupa la primera posición. h) Se utiliza una instrucción llamada printf() para desplegar mensajes u otros elementos en el dispositivo de salida standar(pantalla). i.- Se utiliza una instrucción llamada scanf() para capturar datos desde el dispositivo de entrada standar (teclado). j.- Se usa una instrucción getchar(); al final para detener la pantalla hasta que el usuario pulse la tecla “any key” para continuar o el programa responde tan aprisa que no se alcanza a ver y se regresa al editor. j.-C es case-sensitive, es decir trata a mayusculas y minusculas como caracteres diferentes. Ya creadas y cargadas las variables normales se efectuan los procesos u operaciones normales con ellas y al final se construye una pagina normal html con los resultados. Este programa se debera crear usando el editor del turboc y grabarlo como prog1.cpp en el folder de su preferencia, para ejecutarlo usar la opcion RUN del propio editor.

Corrida:   INSTRUCCION PRINTF() Es una de las mas poderosas herramientas de despliegue de datos que posee el lenguaje. Su formato completo es: Printf (“string de control”, lista de variables); * Donde string de control puede ser: a).- Mensaje o texto b).- Secuencias de escape c).- Codigos de formato d).- Combinación de los tres ejemplos; a).-MENSAJE O TEXTO Printf(“pato”) Printf(”%d”, varentera); Printf(” los datos son %d %0.f %s ”,varent,varfloat,varstring); → ver programa ejemplo. Nota.- se recomienda no mas de 70 caracteres b).-

Page 20: Sistema de Program as Ion c++ Nivel1

SECUENCIAS DE ESCAPE Estas instrucciones proveen de mecanismos de control para diversas tareas, existe una gran variedad de secuencias de escape, las mas usuales son: \n nuevo renglón \t tabulador horizontal \b backspace o retroceso \r carriage return \a campanilla \” despliega comillas \` despliega apóstrofe despliega diagonal c).- CODIGOS DE FORMATO Estos codigos de formatos dentro de la string de control le indican al compilador que deber sustituir en esa posición el valor de la variable indicada, ademas se debera recordar que existe un código de formato apropiado para cada tipo de dato existente. CODIGO TIPO DE DATO SALIDA %d entero enteros con signo %u Unsignedint enteros sin signo %f Float y double pte entera y decimal %e Float y double notacion exponencial usando e minuscula %E Float y double notacion exponencial usando E mayuscula %g ” ” el compilador decide si usa f o e %G ” ” el compilador decide si usa f o E %c Char un solo caracter %s var string conjunto de caracteres Para el caso de estos codigos porcientos tambien es posible agregar la cantidad de entero y decimales que se quiere que se despliegue en la salida con el siguiente formato: %cantentero.cantdecimal caracter apropiado. INSTRUCCION SCANF(); Esta instrucción permite que el dato entrado desde el teclado sea capturado y almacenado en la variable correspondiente su formato completo es: scanf(“string de control”, lista de variables); codigos de formato o codigos % Observar que a diferencia de printf(), scanf() solo puede llevar los codigos % , dentro de las comillas ” ” En el caso mas sencillo dentro del string de control se pone el porciento con el caracter apropiado al tipo de dato y en la lista de variables una variable ya declarada de ese mismo tipo. Se debera tener en cuenta siempre lo siguiente: a) La cantidad de variables de lista de variables debe ser igual en cantidad que los codigos porciento %. b) Todas las variables de tipo numerico dentro de scanf, no de printf, deberan ser precedidas del signo ampersand (&). EJ; SCANF(”%d”, &area); –>ver programa ejemplo. c) %s en scanf solo alcanza a capturar de la string hasta el primer espacio en blanco. d) El formato porciento en scanf y printf para tipos long int sera %ld. e) El formato porciento para tipos doubles en scanf y printf es %lf. TAREAS PROGRAMACION C++ CONSTRUIR 15 PROGRAMAS CUALESQUIERA DE LOS EJEMPLOS QUE ESTAN EL TEMA DEL MODELO DE SOLUCION.UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 10: OTRAS FUNCIONES DE I/O C++

CAPTURA:

a) Getchar(); Getch(); Getche();

Estas tres instruciones estan especializadas en captura de un solo caracter y sustituyen a scanf %c en situaciones especiales.

Estas funciones trabajan por igualación, es decir para usarse

varchar=getchar();

ej;

char vocal;

vocal=getchar();

Page 21: Sistema de Program as Ion c++ Nivel1

NOTA: DEPENDIENDO DEL SISTEMA OPERATIVO EN OCACIONES UN GETCHAR() NO ATRAPA EL CARACTER A LA PRIMERA VEZ, EN ESTE CASO USAR MAS DE UN GETCHAR EN FORMA CONTINUA.

En este caso poner mas getchar(); despues de getchar() hasta que capture el caracter o tambien para detener la corrida.

Getchar es una macro que lee un caracter de el teclado y regresa el caracter leido.

La diferiencia es que getchar y getche devuelven el caracter leido a la pantalla y el getch no devuelve el caracter a la pantalla.

Estas instrucciones deberan usarse en las siguientes situaciones:

a) Cuando la captura es de un solo caracter

b) Tambien para retener pantallas en este caso sin igualdad

c) Para evitar los saltos en capturas, cuando se captura un entero y una string despues, es este caso es conveniente usar una serie de getchar() para quitar el caracter de return del teclado, en particular es conveniente usar un getchar despues de un scanf(entero) como lo muestra el ejemplo de abajo prog2.cpp

B) GETS();

Esta función es la alternativa para captura de strings que tengan espacios en blanco intermedios cosa que scanf %s no puede hacer.

Su formato completo es :

gets(variable string);

DESPLIEGUE:

a) Putch(); Putchar();

Estas instruciones despliegan directamente un caracter en el dispositivo de salida standar.

A diferiencia de getchar, getch y getche, estas instrucciones si llevan un argumento.

ejemplo;

putchar(alfa);

putchar('\n');

putchar('\064');

b) Puts(variable string);

Page 22: Sistema de Program as Ion c++ Nivel1

Es la función complemento de gets esta función despliega una string en el dispositivo de salida standar y debe llevar el argumento o parametro.

puts(nombre);

puts(“pato”);

PROG2.CPP

#include <stdio.h>

void main()

{

//declaracion

int var1, var2,var3;

char var4[15], var5[15];

//captura y observar donde se ponen getchars

//unos para limpiar return y otros para para parar la pantalla

printf("dame entero1:");

scanf("%d",&var1);getchar();

printf("dame string1:");

Page 23: Sistema de Program as Ion c++ Nivel1

scanf("%s",&var4);

printf("dame entero2:");

scanf("%d",&var2);

printf("dame entero3:");

scanf("%d",&var3); getchar();

printf("dame string2:");

gets(var5);

//despliegue

printf("entero1 %d \n",var1);

printf("string1 %s \n",var4);

printf("entero2 %d \n" ,var2);

printf("entero3 %d \n",var3);

printf("string2 %s \n",var5);

getchar();

Page 24: Sistema de Program as Ion c++ Nivel1

}

Recordar que scanf(”%s”) no quiere espacios en blanco, por eso es mejor usar gets(var string).

Observar que desspues de un scanf(entero) que este antes de un gets(varstring) deberan usar un getchar() para quitar el return del teclado o la pc no va a capturar la string sino que va a saltarse.

El ultimo getchar es para parar o detener la pantalla.

Corrida:

TAREAS PROGRAMACION C++

Reconstruir los programas pedidos en el tema anterior usando estas instrucciones de captura y despliegue.

UNIDAD 1: C++ ELEMENTOS BASICOS

TEMA 11: FORMATO PANTALLA PROGRAMACION C++

#include<conio.h> Libreria a usar

1.- clrscr(); Limpia pantalla

ESTA INSTRUCCION NO OCUPA ACLARACION

Page 25: Sistema de Program as Ion c++ Nivel1

2.- gotoxy(#de col,#de ren); posiciona cursor en lugar indicado

RECORDAR QUE UNA CONSOLA NORMAL TIENE 24 RENGLONES Y 80 COLUMNAS

En particular poner un gotoxy(); antes de cada printf() en el programa.

TAREAS PROGRAMACION C++ REARREGLAR LOS PROGRAMAS CONSTRUIDOS PARA SU MEJOR PRESENTACION.

PALABRAS RESERVADAS C++

auto

break

case

char

const

continue

default

do

double

else

enum

extern

float

for

goto

if

int

long

register

return

Page 26: Sistema de Program as Ion c++ Nivel1

short

signed

sizeof

static

struct

switch

typedef

union

unsigned

void

volatile

while

Some of the keywords on C have new meanings or have been overloaded in the world of C++, the following list shows the keywords that have changed.

struct

static

const

enum

The following list shows the keywords that have been added to C++.

bool

catch

class

delete

friend

inline

new

Page 27: Sistema de Program as Ion c++ Nivel1

namespace

operator

private

protected

public

tempate

this

throw

try

template

TURBO C++

abort() Abort Process and Return Error

abs() Calculate Absolute Value of Integer

absread() Read Disk Sectors

abswrite() Write Disk Sectors

access() Check File Permission Setting

acos() Calculate Arc Cosine

alloca() Allocate Memory Block on Stack

allocmem() Allocate DOS Memory Segment

asctime() Convert Time from Structure to String

asin() Calculate Arc Sine

assert() Diagnostic Message Generator

atan() Calculate Arc Tangent

atan2() Calculate Arc Tangent of y/x

atexit() Register Exit Function

atof() Convert String to Double

Page 28: Sistema de Program as Ion c++ Nivel1

atoi() Convert String to Integer

atol() Convert String to Long

bdos() Invoke DOS Function, Short Form

bdosptr() MS-DOS System Callbioscom() Communications I/O

biosdisk() Hard Disk / Floppy I/O

biosequip() Check Equipment

bioskey() Keyboard Interface

biosmemory() Return Memory Size

biosprint() Printer I/O

biostime() Return the Time of Day

brk() Change Data-Segment Space Allocation

bsearch() Perform Binary Search

cabs() Calculate Absolute Value of Complex Number

calloc() Allocate and Zero Memory

ceil() Calculate Ceiling of Value

cgets() Get a Character String from the Console

chdir() Change Current Working Directory

chmod() Change File Permission Setting

_chmod() Change Access Mode of File

_clear87() Get and Clear 8087/80287 Status Word

clearerr() Clear Error Indicator for a Stream

close() Close File

_close() Close a File Handle

coreleft() Return a Measure of Unused Memory

cos() Calculate Cosine

cosh() Calculate Hyperbolic Cosine

Page 29: Sistema de Program as Ion c++ Nivel1

country() Return Country-Dependent Information

cprintf() Formatted Write to Console

cputs() Write a String to the Console

creat() Create a New File

_creat() Create a New File

creatnew() Create a New File

creattemp() Create a New File or Rewrite an Existing One

cscanf() Read Formatted Data from Console

ctime() Convert Time from Long Integer to String

ctrlbrk() Set Control-Break Handler

difftime() Find the Difference between Two Times

disable() Disable Interrupts

dosexterr() Get DOS Extended Error Values

dostounix() Convert Date and Time to UNIX Time Format

dup() Create Second Handle for Open File

dup2() Reassign a File Handle

ecvt() Convert Double to String

enable() Enable Interrupts

eof() Test for End of File

exec…() An Overview of the Eight Exec Functions

execl() Execute Program Using: Arg List

execle() Execute Program Using: Arg List, Environment

execlp() Execute Program Using: Arg List, PATH

execlpe() Execute Program Using: Arg List, PATH, Environment

execv() Execute Program Using: Arg Array

execve() Execute Program Using: Arg Array, Environment

Page 30: Sistema de Program as Ion c++ Nivel1

execvp() Execute Program Using: Arg Array, PATH

execvpe() Execute Program Using: Arg Array, PATH, Environment

exit() Terminate Process after Cleanup

_exit() Terminate Process without Cleanup

exp() Calculate Exponential

fabs() Calculate Absolute Value of Floating-Point

farcalloc() Allocate Memory from Far Heap

farcoreleft() Return Measure of Unused Memory in Far Heap

farfree() Free a Block from Far Heap

farmalloc() Allocate Memory from Far Heap

farrealloc() Adjust Allocated Block in Far Heap

fclose() Close a Stream

fcloseall() Close All Open Streams

fcvt() Convert Double to String

fdopen() Open a Stream Using a Handle

feof() Detect Stream End-of-File (Macro)

ferror() Test for Error on a Stream (Macro)

fflush() Flush a Stream

fgetc() Read a Character from a Stream

fgetchar() Read a Character from Stdin

fgets() Read a String from Stream

filelength() Return File Length

fileno() Get File Handle Associated with Stream (Macro)

findfirst() Search Disk Directory

findnext() Fetch Files That Match findfirst()

floor() Calculate Floor of Value

Page 31: Sistema de Program as Ion c++ Nivel1

flushall() Flush All Streams and Clear All Buffers

fmod() Calculate Floating-Point Remainder

fnmerge() Make New File Name

fnsplit() Split a Full Path Name into Its Components

fopen() Open a File

FP_OFF() Get or Set Offset Portion of a Far Pointer (Macro)

FP_SEG() Get or Set Segment Portion of a Far Pointer (Macro)

_fpreset() Reinitialize Floating-Point Math Package

fprintf() Write Formatted Data to Stream

fputc() Write a Character to a Stream

fputs() Write a String to Stream

fread() Read Unformatted Data from Stream

free() Deallocate Memory Block

freemem() Free a Previously Allocated DOS Memory Block

freopen() Reassign a File Pointer

frexp() Get Mantissa and Exponent of Floating-Point Value

fscanf() Read Formatted Data from Screen

fseek() Reposition File Pointer to Given Location

fstat() Get Information about Open File

ftell() Get Current File Pointer Position

fwrite() Write Unformatted Data to Stream

gcvt() Convert Double to String

geninterrupt() Generate Software Interrupt

getc() Read a Character from a Stream (Macro)

getchar() Read a Character from 'Stdin'

getch() Get a Character from the Console without Echo

Page 32: Sistema de Program as Ion c++ Nivel1

getche() Get a Character from Console with Echo

getcwd() Get Path Name of Current Working Directory

getenv() Get a Value from the Environment Table

getpid() Get Process ID

getcbrk() Get Control-Break Setting

getcurdir() Get Current Directory

getdate() Get Date

getdfree() Get Disk Free Space

getdisk() Get Current Drive

getdta() Get Disk Transfer Address

getfat() Get File Allocation Table Information

getfatd() Get File Allocation Table Information

getftime() Get File Date and Time

getpass() Read a Password

getpsp() Get the Program Segment Prefix

gets() Read a Line from 'Stdin'

gettime() Get System Time

getvect() Get Interrupt Vector Entry

getverify() Get Verify State

getw() Read an Integer from a Stream

gmtime() Convert Time from Long Integer to Structure

gsignal() Software Signals

harderr() Establish a Hardware Error Handler

hardresume() Hardware Error Handler Function

hardretn() Hardware Error Handler Function

hypot() Calculate the Hypotenuse of a Right Triangle

Page 33: Sistema de Program as Ion c++ Nivel1

inport() Input from Hardware Port

inportb() Input from Hardware Port

intr() Alternate 8086 Software Interrupt Interface

int86() Execute 8086 Software Interrupt

int86x() Set Segment Registers and Execute Software Interrupt

intdos() Invoke DOS Function, Long Form

intdosx() Set Seg Regs and Invoke DOS Function, Long Form

ioctl() Control I/O Device

isalnum() Test for Alphanumeric Character (Macro)

isalpha() Test for Alphabetic Character (Macro)

isascii() Test for ASCII Character (Macro)isatty() Check for Character Device

iscntrl() Test for Control Character

isdigit() Test for Digit

isgraph() Test for Printable Character Except Space

islower() Test for Lowercase

isprint() Test for Printable Character

ispunct() Test for Punctuation Character

isspace() Test for White-Space Character

isupper() Test for Uppercase

isxdigit() Test for Hexadecimal Digit

itoa() Convert Integer to String

kbhit() Check Keyboard Input Buffer for Character Waiting

keep() Exit and Remain Resident

labs() Calculate Absolute Value of Long Integer

ldexp() Convert Mantissa and Exponent to Floating Point

lfind() Linear Search for Key

Page 34: Sistema de Program as Ion c++ Nivel1

localtime() Convert Time from Int to Structure–Local Correction

lock() Set File Sharing Locks

log() Calculate Natural Logarithm

log10() Calculate Base 10 Logarithm

longjmp() Restore Program State

lsearch() Linear Search for Key; Add Key If Not Found

lseek() Reposition File Pointer to Specified Location

ltoa() Convert Long to String

malloc() Allocate Memory Block

matherr() Handle Math Error

_matherr() Floating-Point Error Handling Routine

memccpy() Copy Characters from Buffer

memchr() Find Character in Buffer

memcmp() Compare Characters from Two Buffers

memcpy() Copy Characters between Buffers

memicmp() Compare Characters in Two Buffers

memmove() Move a Block of Bytes

memset() Initialize Buffer

mkdir() Create a New Directory

MK_FP() Make a Far Pointer

mktemp() Create a Unique File Name

modf() Split Floating Point into Mantissa and Exponent

movedata() Copy Characters to a Different Segment

movmem() Move a Block of Bytes

open() Open a File

_open() Open a File For Reading or Writing

Page 35: Sistema de Program as Ion c++ Nivel1

outport() Output to a Hardware Port

outportb() Output to a Hardware Port

parsfnm() Parse File Name

peek() Examine Memory Location

peekb() Examine Memory Location

perror() Print Error Message

poke() Store Value at a Given Memory Location

pokeb() Store Value at a Given Memory Location

poly() Generate a Polynomial from Arguments

pow() Calculate X Raised to the Yth Power

pow10() Power Function

printf() Write Formatted String to Stdout

putc() Write a Character to Stream

putchar() Write a Character to Stdout

putch() Write a Character to the Console

putenv() Create New Environment Variables

puts() Write String to Stdout

putw() Write an Integer to Stream

qsort() Perform Quick Sort

rand() Get Pseudorandom Integer

randbrd() Random Block Read

randbwr() Random Block Write

read() Read Data from File

_read() Read Data from a File

realloc() Reallocate Memory Block

rename() Rename a File or Directory

Page 36: Sistema de Program as Ion c++ Nivel1

rewind() Reposition File Pointer to Beginning of Stream

rmdir() Remove a Directory

sbrk() Reset Break Value for Calling Process

scanf() Read Formatted Data from Stdin

searchpath() Search the DOS Path

segread() Return Current Values of Segment Registers

setblock() Modify Size of DOS Memory Segment

setbuf() Control Stream Buffering

setcbrk() Set Control-Break Setting

setdate() Set MS-DOS Datesetdisk() Set Current Disk Drive

setdta() Set Disk Transfer Address

setftime() Set File Date and Time

setjmp() Save Program State

setmem() Assign a Value to Memory

setmode() Set File-Translation Mode

settime() Set System Time

setvbuf() Control Stream Buffering and Buffer Size

setvect() Set Interrupt Vector Entry

setverify() Set Verify State

sin() Calculate Sine

sinh() Calculate Hyperbolic Sine

sleep() Suspend Execution for Interval

spawn…() An Overview of the Eight Spawn Functions

spawnl() Execute Program Using: Arg List

spawnle() Execute Program Using: Arg List, Environment

spawnlp() Execute Program Using Arg List, PATH

Page 37: Sistema de Program as Ion c++ Nivel1

spawnlpe() Execute Program Using Arg List, PATH, Environment

spawnv() Execute Program Using Arg Array

spawnve() Execute Program Using Arg Array, Environment

spawnvp() Execute Program Using Arg Array, PATH

spawnvpe() Execute Program Using Arg Array, PATH, Environment

sprintf() Write Formatted Data to String

sqrt() Calculate Square Root

srand() Set Random Starting Point

sscanf() Read Formatted Data from String

ssignal() Implement Software Signals

stackavail() Return Size of Available Stack Memory

stat() Get File-Status Information on Named File

_status87() Get 8087/80287 Floating-Point Status Word

stime() Set Time

strcat() Append a String

strchr() Find a Character in a String

strcmp() Compare Two Strings, Case Sensitive

strcmpi() Compare Two Strings, Case Insensitive

stricmp() Compare Two Strings, Case Insensitive

strcpy() Copy One String to Another

strcspn() Scan One String for Another

strdup() Duplicate String

strerror() Save System Error Message

strlen() Get String Length

strlwr() Convert String to Lower Case

strncat() Append Specified Number of Characters to a String

Page 38: Sistema de Program as Ion c++ Nivel1

strncmp() Compare n Characters of Two Strings, Case Sensitive

strnicmp() Compare n Characters of Strings, Case Insensitive

strncpy() Copy a Specified Number of Characters

strnset() Initialize n Characters of String

strpbrk() Scan String for Character from Character Set

strrchr() Scan String for Last Occurrence of Character

strrev() Reverse Characters in String

strset() Set All Characters in String

strspn() Find First Substring

strstr() Find Substring

strtod() Convert String to Double

strtol() Convert String to Long Decimal Integer

strtok() Finds Next Token in String

strupr() Convert String to Uppercase

swab() Swap Bytes

system() Execute DOS Command

tan() Calculate Tangent

tanh() Calculate Hyperbolic Tangent

tell() Get Current File Pointer Position

time() Get Current System Time as Long Integer

toascii() Convert 'c' to ASCII Charactertolower() Convert 'c' To Lowercase, If Appropriate

_tolower() Convert 'c' to Lowercase

toupper() Convert 'c' to Uppercase, If Appropriate

_toupper() Convert 'c' to Uppercase

tzset() Set External Time Variables, Environment Variables

ultoa() Convert Unsigned Long to String

Page 39: Sistema de Program as Ion c++ Nivel1

ungetc() Push Character Back onto the Stream

ungetch() Push Back the Last Character Read from the Console

unixtodos() Convert Date and Time to DOS Format

unlink() Delete a File

unlock() Release File-Sharing Locks

va_arg() Access Variable Number of Arguments, ANSI C Style

vfprintf() Write Formatted Data to Stream

vfscanf() Perform Formatted Input from a Stream

vprintf() Write Formatted Data to Stdout

vscanf() Perform Formatted Input from Stdin

vsprintf() Write Formatted Data to String

vsscanf() Perform Formatted Input from String

write() Write Data to a File

_write() Write Data to a File

FUENTE: http://www.clipx.net/