SlideShare una empresa de Scribd logo
1 de 38
PARTE I
FUNDAMENTOS DE LENGUAJE DE PROGRAMACION ANSI C
CAPITULO I FUNDAMENTOS DE PROGRAMACIÓN
1.1 CONCEPTOS DE SISTEMAS.-
1.1.1. Definición de sistemas.- http://www.alegsa.com.ar/Dic/sistema.php
Un sistema (system). Es un conjunto de partes o elementos organizadas y relacionadas
que interactúan entre sí para lograr un objetivo. Los sistemas reciben (entrada) datos,
energía o materia del ambiente y proveen (salida) información, energía o materia.
Un sistema puede ser físico o concreto (una computadora, un televisor, un humano) o
puede ser abstracto o conceptual (un software)
Cada sistema existe dentro de otro más grande, por lo tanto un sistema puede estar
formado por subsistemas y partes, y a la vez puede ser parte de un supersistema.
1.1.2 Elementos o componentes de un sistema
En el siguiente diagrama se muestra los elementos o componentes de un sistema
Figura. 1.1 Esquema simplificado de un sistema
Elementos
1. Entrada (INPUT) insumo.
2. Salida (OUTPUT) producto.
3. Proceso o fenómenos.
4. Ambiente o mundo de las cosas próximas.
5. Retroalimentación (Feeback).- Retroinformación compara el producto con un criterio
En informática podemos distinguir dos clases de elementos:
Hardware : es la parte física del ordenador, todos los elementos que se pueden
“tocar”, por ejemplo el teclado, la pantalla, el procesador, etc.
Software : son los programas, sistemas operativos y datos que se utilizan en el
ordenador (la parte que no se puede “tocar”).
ENTRADA SALIDAPROCESO
RETROALIMENTACION
1.2 CONCEPTOS DE PROGRAMACION Y APLICACIONES
 Programa. La definición de la RAE es: Conjunto unitario de instrucciones que
permite a un ordenador realizar funciones diversas, como el tratamiento de textos,
el diseño de gráficos, la resolución de problemas matemáticos, el manejo de
bancos de datos, etc. Pero normalmente se entiende por programa un conjunto de
instrucciones ejecutables por un ordenador.
 Programación La programación consiste en pasar algoritmos a algún lenguaje de
ordenador a fin de que pueda ser entendido por el ordenador. La programación de
ordenadores comienza en los años 50 y su evolución ha pasado por diversos pasos.
 Lenguajes de programación Los lenguajes de programación permiten codificar
algoritmos en el ordenador. Son una serie de símbolos e instrucciones de acuerdo
con una sintaxis que facilita su posterior traducción a código entendible por el
ordenador,
En realidad los ordenadores sólo reconocen un lenguaje formado por los unos y ceros
Del código binario. Según la disposición de esos unos y ceros entenderá unas
Instrucciones u otras. De esa forma hay lenguajes más próximos al lenguaje de las
Computadores (lenguajes de bajo nivel) y lenguajes más próximos al lenguaje
humano (lenguajes de alto nivel)
1.3 METODOLOGIA DE LA PROGRAMACION
Independientemente de la metodología utilizada suele haber una serie de pasos
Comunes a todas ellas (relacionados con el ciclo de vida de la aplicación):
1.3.1 análisis
El análisis estudia los requisitos que ha de cumplir la aplicación. El resultado del
análisis es una hoja de especificaciones en la que aparecen los requerimientos de la
aplicación. Esta hoja es redactada por el o la analista, la persona responsable del
proceso de creación de la aplicación.
En la creación de algoritmos sencillos, el análisis consistiría únicamente en:
 Determinar las entradas. Es decir, los datos que posee el algoritmo cuando
comienza su ejecución. Esos datos permiten obtener el resultado.
 Determinar las salidas. Es decir, los datos que obtiene el algoritmo como
resultado. Lo que el algoritmo devuelve al usuario.
 Determinar el proceso. Se estudia cuál es el proceso que hay que realizar.
1.3.2 diseño En esta fase se crean esquemas que simbolizan a la aplicación. Estos
esquemas los elaboran analistas. Gracias a estos esquemas se simboliza la aplicación.
Estos esquemas en definitiva se convierten en la documentación fundamental para
plasmar en papel lo que el programador debe hacer.
En estos esquemas se pueden simbolizar: la organización de los datos de la aplicación,
el orden de los procesos que tiene que realizar la aplicación, la estructura física (en
cuanto a archivos y carpetas) que utilizará la aplicación, etc.
La creación de estos esquemas se puede hacer en papel, o utilizar una herramienta
CASE para hacerlo.
1.3.4 codificación
Escritura de la aplicación utilizando un lenguaje de programación (C, Pascal, C++,
Java,...). Normalmente la herramienta utilizada en el diseño debe ser compatible con el
Lenguaje que se utilizará para codificar. Es decir si se utiliza un lenguaje orientado a
objetos, la herramienta de diseño debe ser una herramienta que permita utilizar
objetos.
1.3.5 ejecución
Tras la escritura del código, mediante un software especial se traduce a código
interpretable por el ordenador (código máquina). En este proceso pueden detectarse
errores en el código que impiden su transformación. En ese caso el software encargado
de la traducción (normalmente un compilador o un intérprete) avisa de esos errores
para que el programador los pueda corregir.
1.3.6 prueba
Se trata de testear la aplicación para verificar que su funcionamiento es el correcto.
Para ello se comprueban todas las entradas posibles, comprobando que las salidas son
las correspondientes.
1.3.7 mantenimiento
En esta fase se crea la documentación del programa (paso fundamental en la creación
De aplicaciones). Gracias a esa documentación se pueden corregir futuros errores o
Renovar el programa para incluir mejoras detectadas, operaciones que también se
Realizan en esta fase.
1.4. ALGORITMOS
Según la RAE: conjunto ordenado y finito de operaciones que permite hallar la
Solución de un problema en notaciones para el diseño de algoritmos
1.4.1 diagramas de flujo
 Es el esquema más viejo de la informática. Se trata de una notación que pretende
facilitar la escritura o la comprensión de algoritmos. Gracias a ella se esquematiza
el flujo del algoritmo.
 Fue muy útil al principio y todavía se usa como apoyo para explicar ciertos
algoritmos.
 Si los algoritmos son complejos, este tipo de esquemas no son adecuados.
 No obstante cuando el problema se complica, resulta muy complejo de realizar y de
entender.
 De ahí que actualmente, sólo se use con fines educativos y no en la práctica.
 Pero sigue siendo interesante en el aprendizaje de la creación de algoritmos.
 Los diagramas utilizan símbolos especiales que ya están normalizados por
organismos de estandarización como ANSI e ISO.
1.4.2 Representación gráfica de los algoritmos.-
Figura
1.4.2.-
Represent
ación
gráfica de
los
algoritmos
.
Pseudocó
digo.
Considerado como un lenguaje falso, el pseudocódigo es un lenguaje intermedio entre
nuestro lenguaje y el de programación, se escribe la lógica de programación con el
lenguaje español
Problema.- Intercambiar dos variables
Análisis. (Especificaciones)- entrada a=10 b=20
Salida a=20 b=10
Programación (algoritmo)
Pseudocódigo
paso1. Iniciar
paso2 ingresar las dos variables y guardarlos en N1 y N2
paso3 realizar el intercambio
3.1 Crear una variable temporal
3.2 poner el valor de N1 en temporal
3.3 Poner el valor de N2 en N1
3.4 poner el valor de temporal en N2
Inicio o Fin Decisión Documento
Proceso Datos
Entrada manual
Visualización Bucle o ciclo
Conector de
proceso
Sub-Programa
Datos
guardados Flujo de Diagrama
N1, N2
Inicio
Temp <---- N1
N1<--- N2
N2<----Temp
N1,N2
Fin
Paso 4 mostrar el contenido de N1 y N2
Paso 5 terminar
Elaborar diagrama de flujo, prueba de datos y programa
Programa en visual C++ 2008
#include<conio.h>
#include<stdio.h>
int main()
{int n1,n2,temp;
printf("ningrese los valores de n1 y n2");
scanf("%d%d",&n1,&n2);
printf("n Valores antiguos de n1 =%d y n2=%d",n1,n2);
temp=n1;
n1=n2; n2=temp;
printf("n Valores nuevos de n1 =%d y n2=%d",n1,n2);
getch();
}
1.4.3.- Ejercicios. Elaborar el Pseudocódigo y su diagrama de flujo para:
1. Sumar dos Números,
2. Sumar tres Números,3 y luego 5 Números
1. Sumar n Números
2. Encontrar el mayor de dos números
3. Encontrar el mayor de 10 números.
4. Encontrar el mayor, menor y promedio de n números.
5. Intercambiar dos variables.
6. Mostrar la serie 1,2,3,4,5,.... N;
7. Encontrar el factorial de un número
8. Calcular los valores de una función, dado el límite inicial, límite final y el
incremento
9. Elaborar una tabla de Multiplicar de 1 al 12
10. Elaborar el algoritmo y el programa para sacar la nota final del curso
11. Proponer un problema interesante y resolverlo
1.5 CARACTERÍSTICAS DEL LENGUAJE C.
1.5.1 Versiones de lenguaje C
1 LENGUAJE C ESTÁNDAR ANSI C.
C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los
Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL
Paradigma: Imperativo (Procedural), Estructurado
Apareció en: 1972
Diseñado por: Dennis M. Ritchie
Desarrollador: Dennis Ritchie y Bell Labs
Última versión estable: C99 (Marzo de 2000)
Sistema operativo: Multiplataforma
Características
a) Lenguaje de propósito general.
b) Lenguaje de nivel medio.- Permite la manipulación de bits, bytes y direcciones de
código, el C es muy portable.
c) Lenguaje estructurado.- (no estructurado en bloques), dado que C no permite la
creación de funciones dentro de funciones, pero si funciones y funciones
secundarias.
d) Programación modular.- Se puede escribir programas independientes (módulos)
constituyendo librerías de programas para ser usadas posteriormente en librería
#include.
e) Transportabilidad.- Los programas escritos en este lenguaje pueden ser ejecutados
en distintos computadoras.
f) Lenguaje generalmente compilado.-
2. C++
C++ es un lenguaje de programación diseñado a mediados de los años 1980 por
Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de
programación C con mecanismos que permitan la manipulación de objetos. En ese
sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un
lenguaje híbrido
C ++
Paradigma :multiparadigma: orientado a objetos, imperativo, programación genérica.
Apareció en: 1983
Diseñado por: Bjarne Stroustrup
Desarrollador: Bjarne Stroustrup, Bell Labs
Tipo de dato: fuerte, estático
3 C++ BUILDER
C++Builder es un entorno de Desarrollo rápido de aplicaciones en lenguaje C++ para
Windows inicialmente propiedad de la empresa Borland, y actualmente de la empresa
Embarcadero quien compró de Borland
4. MICROSOFT VISUAL STUDIO
Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus siglas en
inglés) para sistemas operativos Windows. Soporta varios lenguajes de programación
tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET, aunque
actualmente se han desarrollado las extensiones necesarias para muchos otros.
Información general
Lanzamiento inicial 30 de julio de 1998; hace 12 años
Última versión estable 10.0.30319.1 RTM (Visual Studio 2010) (Microsoft Visual Studio
2010- El sitio oficial de Visual Studio 2010 info)
12 de abril de 2010; hace 11 meses
Entorno de desarrollo integrado
Sistema operativo Windows
4.a Visual C++
Visual C++ (también conocido como MSVC, Microsoft Visual C++) es un entorno de
desarrollo integrado (IDE) para lenguajes de programación C, C++ y C++/CLI. Esta
especialmente diseñado para el desarrollo y depuración de código escrito para las
API's de Microsoft Windows, DirectX y la tecnología Microsoft .NET Framework.
Visual C++ hace uso extensivo del framework Microsoft Foundation Classes (o
simplemente MFC), el cual es un conjunto de clases C++ para el desarrollo de
aplicaciones en Windows.
El IDE cuenta con herramientas poderosas como el IntelliSense, RemoteDebuging,
Editar y Continuar, y Texto Resaltado.
4.b C#
Paradigma: Orientado a objetos Apareció en: 2001
Diseñado por: Microsoft Corporation
Última versión estable: 4.0 (12 de abril 2010)
Tipo de dato: Fuerte, Estático
Implementaciones: Visual Studio .NET, Mono
Sistema operativo: Multiplataforma
Web: http://www.microsoft.com/net
1.5.2 Ejemplo del programa de 4 operaciones en las 5 versiones de C
Para las pruebas se usara Microsoft visual estudio 2008
1 LENGUAJE C ESTÁNDAR ANSI C.
#include <conio.h>
#include <stdio.h>
main ()
{ float n1,n2;
clrscr();
printf(" ingrese 2 numeros ");
scanf("%f%f",&n1,&n2);
printf("n la suma es %f " ,n1+n2);
getch();
}
2 En C++
#include <conio.h>
#include <iostream.h>
int main ()
{ float n1,n2;
cout<< " ingrese 2 numeros ";
cin>>n1>>n2;
cout<< "n la suma es "<< n1+n2;
getch();
return 0;
}
3 Con visual C++ 2008 usando printf
#include <windows.h>
#include <stdio.h>
int main ()
{ float n1,n2;
system("cls");
printf(" ingrese 2 numeros ");
scanf("%f %f",&n1,&n2);
printf("n la suma es %f " ,n1+n2);
system("pause");
return 0;
}
4 Con visual C++ usando cin y cout
#include <conio.h>
#include <iostream>
using std::cout;
using std::cin;
int main ()
{ float n1,n2;
cout<< " ingrese 2 numeros ";
cin>>n1>>n2;
cout<< "n la suma es "<< n1+n2;
getch();
return 0;
}
5 Con C#
using System;
namespace
ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{ float n1, n2;
Console.Write(" ingrese el nro 1 ");
n1=Convert.ToSingle (Console.ReadLine());
Console.Write(" ingrese el nro 1 ");
n2 = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("n la suma de {0} y {1} es {2} ",n1,n2,n1+n2);
Console.ReadLine ();
}
}
}
6 Con Visual C++ Aplicación de consola CLR
#include "stdafx.h"
#include <conio.h>
using namespace System;
int main(array<System::String ^> ^args)
{
float n1,n2;
Console::Write( "Ingrese nro 1 " );
n1=Convert::ToSingle ( Console::ReadLine());
Console::Write( "Ingrese nro 2 " );
n2=Convert::ToSingle(Console::ReadLine());
Console::WriteLine( "la suma es {0} ",n1+n2 );
getch();
}
7. Con Visual C++ Aplicación Form Windows
private: System::Void btnSumar_Click(System::Object^ sender,
System::EventArgs^ e) {
float r;
r= Convert::ToSingle(textBox1->Text)+ Convert::ToSingle (textBox2->Text);
textBox3->Text=Convert::ToString (r);
Nota. El asistente de IntelliSense de visual estudio nos muestra los tipos de
conversión que existen para convertir cadenas a números
8. Con Visual C++ usando clases y objetos
#include <stdio.h>
#include <conio.h>
class suma
{ float n1,n2,r;
public: void ingresar();
float sumar();
};
void suma ::ingresar ()
{ printf("n ingrese dos numeros ");
scanf("%f%f",&n1,&n2);
};
float suma::sumar()
{ return n1+n2;};
int main()
{ suma objeto;
objeto.ingresar();
printf("n la suma de los numeros es
%f",objeto.sumar());
getch();
}
Nota. El asistente de IntelliSense de visual estudio nos muestra los componentes de
la clase que hemos creado (suma), además visual C ++ 2008 no permite trabajar
jerárquicamente o sea se puede esconder parte del programa con el signo menos (-) y
expandir con el (+) . De esa manera los programas se minimizan,
Nota tambien se podria trabajar en Visual basic 2008 en modo consola
Programa
Module Module1
Sub Main()
Dim n1 As Single, n2 As Single, suma As Single = 0
Console.WriteLine(" Ingrese primer numero ")
n1 = Console.ReadLine()
Console.WriteLine(" Ingrese segundo numero ")
n1 = Console.ReadLine()
suma = n1 + n2
Console.WriteLine(" la suma es {0} ", suma)
Console.ReadLine()
End Sub
End Module
Con Visual Basic en modo formulario
Diseño
Código
Public Class Form1
Dim n1 As Single, n2 As Single, resul As Single = 0
Private Sub operacion(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles _
BtnSuma.Click, BtnResta.Click, BtnMultiplicacion.Click, BtnDivision.Click
n1 = Val(TextBox1.Text)
n2 = Val(TextBox2.Text)
Select Case sender.text
Case "+" : resul = n1 + n2
Case "-" : resul = n1 - n2
Case "*" : resul = n1 * n2
Case "/" : resul = n1 / n2
End Select
Label2.Text = sender.text
TextBox3.Text = resul
End Sub
End Class
Trabajo con con varios archivos
La clase suma se puede usar como archivo de cabecera , y luego adjuntarlo como se
muestra, de esa manera los programas que se trabaja se reducen bastante.
.
1.6 LENGUAJE DE PROGRAMACION VISUAL C++ DE VISUAL ESTUDIO 2008
MOTIVOS
Se enseñara este lenguaje porque es parecido a lo enseñado en semestres anteriores
Bibliografía Beginning Visual C++®2008 Ivor Horton
Entorno de desarrollo integrado (IDE) que viene con Visual C++ 2008
http://www.alegsa.com.ar/Dic/.net%20framework.php
Definición de .NET Framework
El Microsoft .NET Framework, es un componente de software que puede ser o es
incluido en los sistemas operativos Microsoft Windows. Provee soluciones pre-
codificadas para requerimientos comunes de los programas y gestiona la ejecución de
programas escritos específicamente para este framework
.
Microsoft desea que todas las aplicaciones creadas para la plataforma Windows, sean
basadas en el .NET Framework. Su objetivo es crear un marco de desarrollo de software
sencillo, reduciendo las vulnerabilidades y aumentando la seguridad de los programas
desarrollados
Common Language Runtime
El Common Language Runtime o CLR (Lenguaje común en tiempo de ejecución) es la
implementación del estándar Common Language Infrastructure (CLI) que define un
ambiente de ejecución para los códigos de los programas que corren sobre la plataforma
.Net de Microsoft. El CLR es el encargado de compilar una forma de código intermedio
llamada Common Intermediate Language (CIL, anteriormente conocido como MSIL --
Microsoft Intermediate Language), a lenguaje de maquina nativo, mediante un JIT
Versiones de C++
Visual C++ 2008 apoya plenamente dos versiones de C++ definidas por dos distintas
normas:
 El estándar ANSI/ISO C++ es para la implementación de aplicaciones nativas: no
administrado de C++. Esta versión de C++ es compatible con la mayoría de las
plataformas de ordenador.
 C + c++ / CLI estándar está diseñado específicamente para escribir programas que
destino CLR y es una extensión de ANSI/ISO C++.
Usando el IDE
Todo programa de desarrollo y ejecución en este libro se realiza desde dentro del IDE.
Al iniciar Visual C++ 2008, observe una ventana de aplicación similar al que se muestra
en la figura 1-3
Pasos para ejecutar en programa en C en visual estudio 2008
Paso 1 ingrese al visual estudio 2008
2 Pagina inicial de visual estudio 2008
3 Escoger archivo nuevo  proyecto Visual C++
4 Elegir aplicación de consola Win 32
5 Ponga un nombre por ejemplo proyecto1
6. configure la aplicación como aplicación de consola
7 Ponga finalizar y sale proyecto de este tipo
// PROYECTO1.cpp: define el punto de entrada de la aplicación de consola.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
8. Agregue el siguiente código
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{ printf("n HOLA MUNDO ");
getch();
return 0;
}
9 Ejecute el programa con o la tecla f5
10 .modifique el programa a
#include<conio.h>
#include<stdio.h>
int main()
{ printf("n HOLA MUNDO ");
getch();
return 0;
}
Y obtendra el mismo resultado
MODO DE EJECUTAR EL PROGRAMA ADJUNTANDO EL ARCHIVO CPP (
recomendado)
Pasos
1. Ingrese archivo  Nuevo  Proyecto  aplicación de consola win32
Poner un nombre  aceptarsiguiente
2. En configuracion de aplicación ponga proyecto vacio
3. Estando en explorador de soluciones ponga agregar luego nuevo elemento
4 escoja archivo C++
5 Sale un proyecto blanco
6 Agregue el siguiente código(escriba)
#include <conio.h>
#include <stdio.h>
int main ()
{ printf("n HOLA MUNDO ");
getch();
return 0;
}
7 ejecute el programa con f5 y se mostrara lo siguiente
Puede copiar el programa a word con control+c y pegar con control +v
Para caputar la pantalla use alt + imp pantalla( printf screen)
1.7 LA ESTRUCTURA DE UN PROGRAMA C++
Un programa en C++ consta de una o más funciones. Cada programa de C++ estándar
de ANSI/ISO contiene la función main(),Una función es simplemente un bloque
independiente de código con un nombre único que se invoca para ejecución utilizando
el nombre de la función.
#include <math.h>
#include <conio.h>
#include <stdio.h>
int main ()
{ float n1,n2,Resul;
printf(" ingrese 2 numeros ");
scanf("%f%f",&n1,&n2);
printf("n la suma es %f " ,n1+n2);
printf("n la resta e %f " ,n1-n2);
printf("n la multiplicacion es %f " ,n1*n2);
printf("n la division entera es %d " ,(int)n1/(int) n2);
printf("n la division real es es %f " ,n1/n2);
printf("n El modulo es %d " ,(int)n1%(int) n2);
printf("*/n la potencia de %f elevado a %f es %f " , n1,n2,pow(n1,n2));
printf("n la raiz cuadrada del primer numero es %f " ,sqrt(n1));
getch();
}
Probar
1.7.1 Reglas de escritura de un Programa C y C++
1. Mayúsculas y minúsculas.- C++ es sensible al tamaño Nombre es diferente a
nombre.
2. Espacios en blanco.- (líneas en blanco, tabulaciones y sangrados), su buen uso
aumentar la legibilidad del código fuente.
3. El carácter de separación de instrucciones es el; (punto y coma).
4. Los paréntesis.- proporcionan máxima prioridad en el uso de los operadores
5. Comentarios.- C y C++ admiten como comentario todo texto encerrado entre
delimitador /* ... */ Ej. /* este es un comentario */.
6. C++ admite otro tipo de separador de comentario, la doble barra inclinada //. Ej.. //
este es un comentario usado en C++
Nota : para poner y quitar comentarios visual C++ utilice
1.8 PALABRAS RESERVADAS,TIPOS DE DATOS, CONSTANTES Y VARIABLES
1.8.1 Palabras reservadas
O palabras clave en minúsculas, una palabra clave no puede ser usada para otro
propósito en un programa en C es decir, no debe servir como nombre de variable o
función, estas palabras en visual C++ son:
asm auto break case cdecl char
class const continue default delete do
double else enum _export extern far
float for friend goto huge if
inline int interrupt _loadds long near
new operator pascal private protected public
register return _saveregs _seg short signed
sizeof static struct switch template this
typedef union unsigned virtual void volatile while
1.8.2 Identificadores
Nombres usados para referirse a las variables, las funciones etiquetas y otros objetos
definidos por el usuario.
Características.-Longitud 1-30 caracteres, primer carácter una letra o Símbolo de
subrayado
1.8-3 Constantes
En C la constantes de tipo carácter se trata siempre como enteros (int), en C++ las
constantes carácter son de tipo char. Una constante se puede definir de dos formas:
#define pi 3.14159265; const float pi=3.14158265;
Const int N=100; o define N 100
En el caso const, N es un lvalue no modificable; en el caso define, N es un literal.
Constantes numéricas Ej. decimal 25 octal '023' equivalente a 19 en decimal
hexadecimal 0x23 equivalente a 35 en decimal
Constantes carácter 'A', 't', 'nt',
constante tipo cadena "El mundo cambia constantemente";
char frase[20]= "UNIVERSIDAD NACIONAL DE SAN AGUSTIN";
char *frase2 ="Ingeniería Industrial ";
1.8.4.- Variables.-Son posiciones o Áreas de memoria y que tipo de dato
almacenan(nombres que se asigna a una posición de memoria).
formato [clase][tipo] id_var [= valor]
los nombres entre corchetes son opcionales
Clase.- De almacenamiento o especificaciones indican al compilador como debe
almacenarse la variable que sigue, y si esta tiene carácter global (static o extern) o
local (auto o register).
Clase auto.- Es la clase por omisión de un variable, su alcance se extiende desde la
declaración hasta el final del bloque en el que ha sido declarado.
- Son variable automáticas o locales se inicializan en el bloque y finalizan en el bloque
por defecto tiene cualquier valor.
- Se crean cada vez que se ingresa a un bloque y mueren en el bloque.
static.- Se crean y se inicializan en el bloque y quedan en el bloque no mueren.
- Son variables permanentes y por defecto se inicializan en cero.
- Una variable declarada de clase static tiene su zona de memoria asignada.
- Las variables static conservan su valor entre llamadas sucesivas a funciones.
register.- Igual que las automáticas pero trabajan en el mismo procesador. Las
variables de tipo register se almacenan en los registros del microprocesador de tal
manera que acceso a ellas es muy rápida. ( f
extern.- Sirven par traer variable desde afuera, variable por parámetros, no se deben
inicializarse ninguna. “Este archivo utiliza una variable que está declarad en otro
archivo fuente”. Una variable utilizada en varios archivos debe estar definido en uno
solo de los archivos y declarada en los restantes mediante la palabra reservada extern
1.8.4.1 pasos para declarar una variable de tipo extern
a. Declarar la variable como global int x antes de la función main
b. En cualquier archivo fuente que necesite acceder a la variable global declarar
como extern Ej. extern int x
Nota:- las variables globales y de static se inicializa a 0
Las variables globales permanecen en la memoria durante toda la vida del programa
las locales no por lo tanto es conveniente usar variables locales
1.9.- TIPOS DE DATOS EN C++
Un tipo de datos en C++ es la manera como el compilador almacena la información en
la memoria
La siguiente tabla contiene un resumen de todos los tipos fundamentales de ANSI/ISO
C++ y el intervalo de valores que son:
Type Size in
Bytes
Range of Values
bool 1 true or false
char 1 Por defecto es lo mismo que el de tipo signed char:
Opcionalmente se puede hae que su rango se de
unsigned char
unsigned char. 1 –128 to +127
signed char 1 –128 to +127
unsigned char 1 0 a 255
wchar_t 2 0 a 65,535
short 2 –32,768 a +32,767
unsigned short 2 0 a 65,535
int 4 –2,147,483,648 a 2,147,483,647
unsigned int 4 0 a 4,294,967,295
long 4 –2,147,483,648 a 2,147,483,647
unsigned long 4 0 a 4,294,967,295
float 4 ±3.4×10±38 con aproximadamente 7 dígitos de precisión
double 8 ±1.7×10±308 con aproximadamente 15 dígitos de
precisión
long double 8 ±1.7×10±308 con aproximadamente 15 dígitos de
precisión
El tipo void sirve para:
- Declarar explícitamente una función que no devuelve valor alguno
- Declarar funciones sin parámetros
- Generar punteros gen‚ricos void
Modificadores de tipos.- Si usa para alterar el significado de tipo base para que se
ajuste más precisamente a las necesidades de cada momento y son: Signed .- tipo por
defecto redundante, unsigned(sin signo),long y short
1.10 OPERADORES
Los operadores se utilizan para manipular datos: ejecutan cálculos, buscar igualdades,
realizan asignaciones, trabajan con variables y se encargan de muchas tareas que los
programadores nunca llevan a cabo. Los operadores de C++ mas utilizados son
Operador Descripción Ejemplo
Operadores matemáticos
+ Adición x= y + z
- Sustracción x= y - z
* Multiplicación x= y * z
/ División x= y / z
Operadores de asignación
= Asignación n= 10
+= asignación suma n+= 3 equivale n=n+3
-= asignación resta n-= 3 equivale n=n-3
*= asignación producto n*= 3 equivale n=n*3
/= asignación cociente n/= 3 equivale n=n/3
&= asignar operador AND x&= 0x02
&= asignar operador OR x¦= 0x02
Operadores lógicos
&& AND Lógico if(X&& 0xFF) {...}
|| OR Lógico if(X&& || FF ) {...}
Operadores relacionales
== Igual que if(x== 10) {...}
!= No igual que if(x != 10) {...}
< Menor que if(x== 10) {...}
> Mayor que if(x== 10) {...}
<= Menor o igual que if(x== 10) {...}
>= Mayor o igual que if(x== 10) {...}
-------------------------------------------------------------------------
en resultado falso = 0 verdadero <>0
Operadores unarios
* Operador de in dirección int x= *y;
& Dirección de operador int *x= &y;
~ NOT a nivel de bits x&= -=0x02;
! NOT lógico if( !valid){…}
++ Operador de incremento x++;(lo mismo que x=x+1)
-- Operador de decremento x --
Operadores de clase y estructura
:: Resolución de alcance MyClass::SomeFunction();
-> Miembro indirecto MyClass->SomeFunction();
. Miembro directo MyClass.SomeFunction();
-----------------------------------------------------------------------------------------
En C++ lo operadores se pueden sobrecargar
Ejercicios sobre operadores
1. x=7; y= x++ ; primero se almacena el valor de x a y i después se incrementa x;
luego y=7 i, x=8,
2. x=7; y= ++x; primero se incrementa x a 8 y después se almacena ese valor en y
luego al final x vale 8 i y también vale 8
#include <conio.h>
int main()
{ int x=7,y=5;
y=x++; // probar luego con y= ++x;
cprintf("n x= %d, y= %d", x,y);
getch();
}
1.10.2.otros operadores
operador acción
-----------------------------------------------------------------
? Devuelve un resultado en función de la condición comprobada
operador1 ? operador2 : operador3
sizeof Devuelve el tamaño en bytes de su operando
,(coma) encadena variables, evalúa la expresión de izquierda a derecha.
(tipo) Moldeado de tipos, efectúa conversiones de tipo explícitas.
[] Designa un elemento de un arreglo
Ejemplos
? a>b? printf("n %d> %d", a,b):printf("n %d < %d", a,b);
#include <stdio.h>
{ int x=10,r;
r= sizeof(x);
}
r vale 2 (bytes)
operador coma
1.- x= (v=3,v*5); equivale v=3; x= v*5; 3*5 x toma el valor de 15 z= 26;
2.- v= (z=z+10,72/z)
z= 26+10= 36;
v= 72/z; ===> z= 2;
Conversión de tipos .Si los operadores dentro de una expresión son de tipos
diferentes se convierten al tipo de operando de precisión mas alta. El tipo entero es
convertido a float
Operador de moldeado ( Conversión Cast).- Indica al compilador que considere
temporalmente un tipo de datos como se fuera otro.
Un moldeado sirve para cambiar el tipo de datos
Eje 2. a= 3; x= 8.1416; a= int(x);
flota x= (float)10*5.5;
float resul = multiply ( (float) x, , y) para pasar
Ej. int a=5, b=2; double c; c= a/b= 2 c= a/(double) b = 2.5
1.10.3 Precedencia de operadores
x= 8, y= 7
Operador Asociatividad
:: Left
() [] -> . Left
! ~ +(unary) -(unary) ++ -- &(unary) *(unary) (typecast)
static_cast const_cast dynamic_cast reinterpret_cast sizeof
new delete typeid
Right
.*(unary) ->* Left
* / % Left
+ - Left
<< >> Left
< <= > >= Left
== != Left
& Left
^ Left
| Left
&& Left
|| Left
?:(conditional operator) Right
= *= /= %= += -= &= ^= |= <<= >>= Right
, Left
Ejemplo de precedencia de operadores
Paso 1 Y = 2*5*5 + 3*5+7 ; Multiplicación mas a la izquierda
Paso 2 Y = 10*5 +3*5 +7 ; Multiplicación mas a la izquerda
Paso 3 Y = 50 + 3*5 +7; Multiplicación antes que la suma
Paso 4 Y = 50+15 + 7 ; Suma mas a la izquierda
Paso 5 Y = 65+7; Ultima operación de suma
Paso 6 Y = 72 ; Asignación
1.11 FUNCIONES EN C++
Son secciones de código separadas del programa principal que realizan un servicio
único y bien definido
Las funciones son parte importante de cualquier lenguaje de programación
Parámetro.- es un valor enviado a una función y se emplea para alterar su operación
o indicar el alcance de ésta.
Prototipo.- es una declaración de aspecto de una función o una anticipación de una
definición
Anatomía de una función 24
int SomeFunction(int x, int y)
{
int z= x+y
return z;
}
Tipo devuelto Nombre de la función Lista de parámetros
Cuerpo de la función
Instrucción de devolución
1.11.1. La función main()
Todo programa en C++ debe contener la función main(). Esta función sirve como punto
de entrada al programa. Los programas de Windows escritos en C y C++ disponen de
una función de inicio llamado WinMain en lugar de la tradicional main().
Esta forma de main() toma dos parámetros y devuelve un valor entero( se explicará
posteriormente en funciones)
1 12.- SALIDA CON FORMATO LA FUNCION printf
El término con formato se refiere al hecho de que estas funciones lean y escriban
datos en varios formatos bajo control del programador. Las operaciones de entrada y
salida no forman parte del conjunto de sentencias del C sino que pertenecen la
conjunto de funciones de librería standard de C.
1.8.1 La función printf().-
La función printf() escribe datos en la salida standard stdout(pantalla) de acuerdo a un
formato especificado. Todo fichero fuente que utilice funciones de entrada/salida y en
general funciones de librería standard deberá contener la línea:
#include <stdio.h> que significa, incluya el fichero de cabecera stdio.h en el programa
fuente
#include "stdio.h" busca el fichero en el directorio actual de trabajo, si no lo encuentra,
busca en el directorio por defecto especificado
#include <stdio.h> Busca en el directorio standard para los ficheros de cabecera por
defecto especificado
formato #include <stdio.h>
int printf(const *formato[,argumentos]..);
Esta función devuelve cuantos argumentos tiene.
formato: Especifica como va a ser la salida. Esta formado por caracteres ordinarios,
secuencia de escape y especificaciones de formato. El formato se lee de izquierda a
derecha. Cada argumento debe tener su correspondiente especificación y en el mismo
orden. Si hay más argumentos que especificaciones de formatos, los argumentos en
exceso se ignoran.
Argumentos.- Representa el valor o valores a escribir
Una especificación de formato esta compuesto por: %[flag][ancho][.precisión][h/i/l]
tipo;
Una especificación de formato siempre comienza con el signo de %
flag significado
-----------------------------------------------------------------
- Justifica el resultado a la izquierda, dentro del ancho especificado, por defecto la
justificación se hace a la derecha.
+ Antepone el signo + (m s) o - (menos) al valor de salida. Por defecto solo se
pone - a los valores negativos.
blancoAntepone un espacio en blanco al valor de salida si es positivo.
# cuando se utiliza con la especificación de formato O, x o X antepone el valor de
salida 0, OX o X respectivamente.
ancho Numero de posiciones para la salida. Si el valor ocupa m s posiciones que
lo especificado el ancho se incrementa en lo necesario. Si el valor a escribir
ocupa menos posiciones de las especificadas se rellena con blancos o con ceros
si el ancho empieza con cero.
precisión.- El significado depende del tipo de salida
Ej. float valor=12.347; printf(%8.2f",valor); la salida es BBB12.38.
donde B significa espacios.
h/i/l se utiliza como prefijos
tipo es uno de los siguientes caracteres
--------------------------------------------------
%c int un solo carácter
%1 int enteros con signo en base 10
%i int enteros con signo en base 10
%u int enteros sin signo en base 10
%o int enteros sin signo en base 8
%x int enteros sin signo en base 16(01...abcdef)
%X int enteros sin signo en base 16(01...ABCDEF)
%b int enteros sin signo en base 2
%f double valor con signo de la forma [-]dddd.dddd. El número de dígitos
antes del punto decimal depende de la magnitud del número y de la
cantidad de decimales de la precisión lo cual es 6 por defecto.
%e,%E, Valor con signo de la forma [-]d.ddddddd[ñ]ddd.Introduce las
%g,%G letras e ¢ E ¢ g ¢ G de acuerdo al formato
%s Cadena de caracteres
%n Puntero a un entero. En el entero es almacenado el número de caracteres
almacenados en le buffer
%p Escribe una dirección segmentada de la forma xxxx:yyyy para un puntero
far(lejos) o yyyy para un puntero near(cerca);
Ej. void far *pt; //pt es un puntero far a un objeto de tipo no especificado
printf(" dirección segmentada"); scanf("%p",&pt); printf("%pn"),pt);
%% Escribe carácter de porcentaje
--------------------------------------------------
Ejemplo 1
sentencia printf salida
--------------------------------
"%-5.2f",123.234 23.23
" %5.2f", 3.234 B3.23 // B significa espacio en blanco
"%10s","hola" BBBBBBhola
"%-10s","hola holaBBBBBB
"%5.7s",123456789 12345
--------------------------------
Caracteres imprimibles.- Los que se imprimen en pantalla y/o papel.
Caracteres no imprimibles.- Caracteres de las teclas que no se imprimen en la pantalla
y/o papel como son retorno de carro, tabulaciones, etc.
1.12.2. Códigos de Escape
Nombre del carácter Repres.en C V.decimal V.hexadecimal
--------------------------------------------------------------------------------------
alerta(pitido) a 7 0x07
Retroceso b 8 0x08
Avance página f 13 0x0C
Nueva línea n 10 0x0A
Retorno de carro r 13 0x0D
Tabulación horizontal t 9 0x09
Tabulación vertical v 12 0x0B
barra inversa  47 0x5C
Apóstrofo ' 39 0x27
Dobles comillas " 34 0x22
Interrogación ? 63 0x37
------------------------------------------------------------------------------
Ejemplo.- Programa explicativo de salida con formato
#include <conio.h>
#include <stdio.h>
int main()
{ char car; char nombre[]="la temperatura ambiente ";
int a,b,c,n;
float x,y,z;
car='C'; a=20; b=350; c=1995;n=242 ;
x= 34.5; y=1234; z=1.248;
printf("n %s es de %c grados",nombre,car);
printf("nn"); printf("a=%6dtb=%6dtc=%6dn",a,b,c);
printf("n Valores decimal,octales y hexacimales y carácter de n");
printf(" n %u, %o, %X, %x, %c",n,n,n,n);
printf("nLos resultados son los siguientes :n");
printf("n%5stt%5stt%5sn","X","Y","Z");
printf("=======================================");
printf("n%8.2ft%8.2ft%8.2fn",x,y,z);
printf("n %8.2ft%8.2ft%8.2ftn",x+y,y/5,z*z);
z=x+y;
printf("nValor resultante %f,%e,%10.2f %dn",z,z,z,z);
getch();
return(0);
}
1.13 ENTRADA CON FORMATO LA FUNCION scanf()
La función scanf() lee datos de la entrada standard Stdin(teclado) interpreta de acuerdo
con el formato indicado y los almacena en los argumentos especificados, cada
argumento debe ser un puntero a una variable cuyo tipo debe corresponderse con el
tipo especificado en el formato
formato: #include <stdio.h>
int scanf(conct char *formato[,argumentos]..);
formato.- Interpreta cada dato de entrada. Esta formada por caracteres en blanco ('
','t','n'), caracteres ordinarios y especificaciones de formato. Cada argumento debe
tener su correspondiente especificación de formato y en el mismo orden. Si un carácter
en la entrada standard no se corresponde con la entrada especificada por el formato,
se interrumpe la entrada de datos.
Argumento.- Es un puntero a la variable que se quiere leer
1.13.1. Especificaciones de formato
Una especificación de formato esta compuesto por %[*][ancho][{h/i}]tipo
* suprime la asignación del siguiente dato en la entrada
scanf(%d %*s %d %*s",&hora,&minutos); entrada: 12 horas 30 minutos
las cadenas horas y minutos no se asignan
Ancho.-Máximo Nro. de caracteres a leer de la entrada, los caracteres en exceso(en
cadenas) no son tenidos en cuenta
Tipo.- Determina el tipo de dato de entrada que son:
código Significado
--------------------------------------------------
%c Lee un único carácter
%d Lee un entero decimal
%i Lee un entero decimal, octal o hexadecimal
%e Lee un número en coma flotante
%f Lee un número en coma flotante
%h Lee un entero corto
%o Lee un entero octal
%s Lee una cadena
%x Lee un número hexadecimal
%p Lee un puntero signo en base 16
%n Escribe un valor entero igual al número de caracteres leídos hasta entonces
%u Lee un entero sin signo en base 10
--------------------------------------------------
Ejemplos
int a, float b, char c;
scanf("%d %f %c",&a,&b,&c); ingrese 5 23.4 b Separado por espacios
scanf("%d,%f,%c",&a,&b,&c); ingrese 5,23.4,b Separado por comas
scanf("%d:%f:%c",&a,&b,&c); ingrese 5,23.4,b Separado por dos puntos
Ejemplos 2 // entrada con formato
#include <conio.h>
#include <stdio.h>
int main()
{ int a,r; float b; char c;
printf("Ingresar un valor entero, real char separado por espaciosn");
r= scanf("%d %f %c",&a,&b,&c);
printf("nNumero de datos leídos %d n",r);
printf(" datos leídos del teclado %d %f %c n",a,b,c);
printf("ingrese un numero exhadecimal con formato 0xNron");
scanf("%i",&a);
printf("nvalor decimal y hexadecimal de %d %xn",a,a);
printf("Ingresar un valor entero, real char separado por comasn");
scanf("%d,%d,%c",&a,&b,&c);
printf("nlos datos leídos del teclado son %8d,%8.2f,%8cn",a,b,c);
getch();
return 0;
}
Ejemplo 3
// entrada con formato
#include <conio.h>
#include <stdio.h>
int main()
{ char nombre[10];// recomendable poner char *nombre;
int a,b,c;
printf("ningrese en la forma PRIMERO_Segundo_terceron");
scanf("PRIMERO%dSegundo%dtercero%d",&a,&b,&c);
printf(" valores ingresados %d %d %d",a,b,c);
printf("ningrese su nombre ");
scanf("%s",&nombre); // en ese caso ya no poner &
printf("n su nombre es %s",nombre);
getch();
return 0;
}
1.14 ENTRADAS Y SALIDAS EN C++
Una de las características más sobresalientes de C++ es la flexibilidad en la utilización
de las entradas y salidas. C++ tiene todas las funciones típicas de C estándar,
incluyendo , getchar, putchar, scanf y printf.
1.14.1 La Biblioteca iostream.h
Esta biblioteca es una implementación orientada a objetos y está basado al igual que la
biblioteca stdio.h en el concepto de flujos(stream) es un medio de describir el flujo o
secuencia de datos de una fuente ( productor) a un destino o sumidero (consumidor)
Dispositivos estándar
C++ realiza todas las entradas y salidas como flujo de caracteres , El flujo es como una
tubería que lleva (conduce) caracteres desde un dispositivo a otro
Tenemos los siguientes objetos ( que se describirán mas adelante)
cin.- es el flujo de entrada conectado a la entrada estándar(teclado) es análogo a stdin
de C.
cout.- es el flujo de salida conectado a la salida estándar(pantalla) análogo a stdout de
C.
Salida de datos.- Se realiza con cout y el operador << y es análogo a printf
Entrada de datos.-El Objeto de flujo cin actúa como su teclado y combinado con
Operador de inserción <<.- introducir datos en un flujo de salida
Operador de extracción >> Para obtener datos del flujo de entrada. Produce una
pausa en el programa y espera a que el usuario introduzca por teclado datos.
Ejemplo1.- Entrada y salida en C estándar
#include<windows.h>
#include<conio.h>
#include<stdio.h>
void main(void)
{ system("cls");//clrscr();
int x; float y;
printf("n Ingrese un numero entero y otro real ");
scanf("%d%f",&x,&y);
printf("n la suma es %f ",x+y);
getch();
}
Ejecución
Ingrese un numero entero y otro real 1 3.5
la suma es 4.500000
Ejemplo 2 Entrada y salida en C++
#include<windows.h> // para usar libreria system
#include<conio.h>
#include<iostream>
using std::cout;
using std::cin;
void main(void)
{ system("cls");//clrscr();
int x; float y;
cout<<"n Ingrese un numero entero y otro real ";
cin>>x>>y;
cout<<"n la suma es " << x+y << "n";
getch();
}
El resultado es el mismo del programas anteriores
1.15 PROBLEMAS RESUELTOS
Problema C101 Escriba el programa hola mundo en visual c++ 2008
Tipo de proyecto Win32 Aplicación de consola win32
Nombre del proyecto p1
Proyecto vacio
Agregar archivo de codigo fuente p1
Escriba el siguiente codigo
#include < conio.h>
#include < stdio.h>
int main()
{ printf ("n HOLA MUNDO");
getch();
}
Con control + A se selecciona , control +*c se copia y control + V pega
Para capturar la pantalla de salida use Allt Print Screen
Problema C102.Calcule una formula (una estrada y una salida) por ejemplo se ingresa
el radio de un circulo el programa debe a obtener el area del circulo de acuerdo a la
fórmula Area= pi*radio2
#include <conio.h>
#include <stdio.h>
#define pi 3.1416
int main()
{ float radio, Area;
printf ("n ingrese radio del circulo");
scanf("%f",&radio);
Area=pi*radio*radio;
printf ("n El area es %f ",Area);
getch();
}
Para obtener la salida como texto clic derecho sobre el raton y aparecerá lo
siguiente:
ingrese radio del circulo 10
El area es 314.160004
Puede tambien capturar la pantalla de salida con alt+imp pantallla y despues control+ v
Problema C103 . Calcular el area del triángulo ( 2 entradas y una salida”)
#include <conio.h>
#include <stdio.h>
int main()
{ float base, altura, Area;
printf ("n ingrese base y altura del triangulo");
scanf("%f%f",&base,&altura);
Area=base*altura/2;
printf ("n El area del triangulo es %f ",Area);
getch();
}
Salida
ingrese base y altura del triangulo 10 20
El area del triangulo es 100.000000
Problema C104 Ingreso de una variable tipo cadena . Ingrese su nombre y la
computadora que le salude
#include <conio.h>
#include <stdio.h>
int main()
{ char nombre[20];
printf ("n ingrese su nombre");
scanf("%s",&nombre);
printf ("n Hola %s", nombre);
getch();
}
Salida
ingrese su nombre JUAN
Hola JUAN
Problema C105 Averigurar el tamaño de las variables
#include <conio.h>
#include <stdio.h>
int main()
{ char letra;
char nombre[20];
short v1=10;
int v2;
long v3;
float v4;
double v5;
printf ("n Tamaño de la variable letra %d", sizeof(letra));
printf ("n Tamaño de la variable nombre %d", sizeof(nombre));
printf ("n Tamaño de la variable short %d", sizeof(v1));
printf ("n Tamaño de la variable int %d", sizeof(v2));
printf ("n Tamaño de la variable long %d", sizeof(v3));
printf ("n Tamaño de la variable float %d", sizeof(v4));
printf ("n Tamaño de la variable double %d", sizeof(v5));
getch();
}
salida
Tama±o de la variable letra 1
Tama±o de la variable nombre 20
Tama±o de la variable short 2
Tama±o de la variable int 4
Tama±o de la variable long 4
Tama±o de la variable float 4
Tama±o de la variable double 8
Problema C106 el operador coma
#include <conio.h>
#include <stdio.h>
int main()
{ int x, y,z=0;
y= (x=3,x*5);
z=(z=y,z=z+10,z=z/2)+10;
printf("n valor de x= %d",x);
printf("n valor de y= %d",y);
printf("n valor de z= %d",z);
getch();
}
salida
valor de x= 3
valor de y= 15
valor de z= 22
Problema C107 Precedencia de operaciones
#include <conio.h>
#include <stdio.h>
int main()
{ float x= 10, y=20,z;
z= x+y/2;
printf("n caso 1 valor de z %f",z);
z=(x+y)/2;
printf("n caso 2 valor de z %f",z);
getch();
}
Salida
caso 1 valor de z 20.000000
caso 2 valor de z 15.000000
Problema C108 Ejemplo de salida con formato
#include <conio.h>
#include <stdio.h>
int main()
{ int x=10;
float y=3.1416;
printf("n x sin formato %d ",x);
printf("n x con 4 espacios %4d",x);
printf("n y sin formato %f",y);
printf("n y con 8 espacios y 4 decimales %8.2f",y);
getch();
}
Problema C109. Ejemplo de printf ,caracteres de escape
#include <conio.h>
#include <stdio.h>
int main()
{ printf("Hola");
printf("Hola");
printf("n Hola");
printf("n Hola");
printf("n "Hola"");
getch();
}
Problema C110. Ejemplo de lectura de un carácter hexadecimal
#include <conio.h>
#include <stdio.h>
int main(void )
{ int valor;
printf("ningrese un Número hexadecimal :");
scanf("%X",&valor);
printf("el numero ingresado es %x %X ", valor,valor);
getch();
return 0;
}
Salida
ingrese un N·mero hexadecimal :AF03
el numero ingresado es af03 AF03
Problema C110 Ingrese dos puntos calcule la distancia rectangular y la Euclidiana y
encuentre el punto medio
#include <math.h>
#include <conio.h>
#include <stdio.h>
int main()
HolaHola
Hola
Hola
"Hola"
{float x1,y1,x2,y2,direc,die;
printf("n ingrese primer punto x1 y1 ");
scanf("%f%f",&x1,&y1);
printf("n ingrese segundo punto x2,y2 ");
scanf("%f%f",&x2,&y2);
direc=fabs(x2-x1)+fabs(y2-y1);
die=sqrt( pow(x2-x1,2) + pow(y2-y1,2) );
printf("n distancia rectelinea es %f", direc);
printf("n distancia euclediana es %f",die);
printf("n punto medio es x= %f y= %f", (x1+x2)/2,(y1+y2)/2);
getch();
}
1.16 PROBLEMAS PROPUESTOS
1) Pruebe todos los ejemplos
2) Elaborar una programa para calcular una formula ejemplo se ingresan 3 notas que
calcule el promedio de las notas
3) Probar los operadores y su precedencia
4) Pruebe la función printf con diferentes formatos y codigos de escape
5) Pruebe la funcion scan como leer diferentes tipos de numeros
6) Pruebe las funcions cin y cout
7) Pruebe ejercicios en programación visual

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Manual de Uso PseInt
Manual de Uso PseIntManual de Uso PseInt
Manual de Uso PseInt
 
Greenfoot 6
Greenfoot 6Greenfoot 6
Greenfoot 6
 
PESEINT MANUAL
PESEINT MANUALPESEINT MANUAL
PESEINT MANUAL
 
Algoritmos computacionales y programación: 3
Algoritmos computacionales y programación: 3Algoritmos computacionales y programación: 3
Algoritmos computacionales y programación: 3
 
Graficos por Computadora (1)
Graficos por Computadora (1)Graficos por Computadora (1)
Graficos por Computadora (1)
 
Ejercicios básicos HTML
Ejercicios básicos HTMLEjercicios básicos HTML
Ejercicios básicos HTML
 
Greenfoot 3
Greenfoot 3Greenfoot 3
Greenfoot 3
 
Repaso del lenguaje C++
Repaso del lenguaje C++Repaso del lenguaje C++
Repaso del lenguaje C++
 
PRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNPRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓN
 
Tema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constanteTema 1-2 identificadores - variable y constante
Tema 1-2 identificadores - variable y constante
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Strrev
StrrevStrrev
Strrev
 
Algoritmos secuenciales resueldos
Algoritmos  secuenciales resueldosAlgoritmos  secuenciales resueldos
Algoritmos secuenciales resueldos
 
Lenguajes De Bajo Nivel
Lenguajes De Bajo NivelLenguajes De Bajo Nivel
Lenguajes De Bajo Nivel
 
Documentación de Proyecto de Software.
Documentación de Proyecto de Software.Documentación de Proyecto de Software.
Documentación de Proyecto de Software.
 
Arrays, arreglos o vectores en c++
Arrays, arreglos o vectores en c++Arrays, arreglos o vectores en c++
Arrays, arreglos o vectores en c++
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programación
 
Alice 1
Alice 1Alice 1
Alice 1
 
Manual de oracle sql
Manual de oracle sqlManual de oracle sql
Manual de oracle sql
 

Destacado

Manual c++
Manual c++Manual c++
Manual c++slent
 
Introduccion al lenguaje c
Introduccion al lenguaje cIntroduccion al lenguaje c
Introduccion al lenguaje cMaylin25
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeDunkherz
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++cemayoral
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CCristian Maza
 
Lenguaje de programacion c
Lenguaje de programacion cLenguaje de programacion c
Lenguaje de programacion c1002pc1
 
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++DarioManzano
 
Librerias en-lenguaje-c
Librerias en-lenguaje-cLibrerias en-lenguaje-c
Librerias en-lenguaje-cKevin2811
 
Programa c++
Programa c++Programa c++
Programa c++Pablo
 
Compilador para calcular el área de figuras Triangulo, Cuadrado y Rectángulo.
Compilador para calcular el área de figuras Triangulo, Cuadrado y Rectángulo.Compilador para calcular el área de figuras Triangulo, Cuadrado y Rectángulo.
Compilador para calcular el área de figuras Triangulo, Cuadrado y Rectángulo.Paola Morocho Arévalo
 
Introducción al Lenguaje C
Introducción al Lenguaje CIntroducción al Lenguaje C
Introducción al Lenguaje CMauricio López
 
Cei 309 curso básico de fox - pro
Cei 309   curso básico de fox - proCei 309   curso básico de fox - pro
Cei 309 curso básico de fox - proProcasecapacita
 
Guia visual fox pro 1
Guia visual fox pro 1Guia visual fox pro 1
Guia visual fox pro 1Leotom
 

Destacado (20)

Introducción al lenguaje c++
Introducción al lenguaje c++Introducción al lenguaje c++
Introducción al lenguaje c++
 
Introduccion del Lenguaje C
Introduccion del Lenguaje CIntroduccion del Lenguaje C
Introduccion del Lenguaje C
 
Manual c++
Manual c++Manual c++
Manual c++
 
Introduccion al lenguaje c
Introduccion al lenguaje cIntroduccion al lenguaje c
Introduccion al lenguaje c
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Manual del dev c++
Manual del dev c++Manual del dev c++
Manual del dev c++
 
Ejemplos Para Dev C++
Ejemplos Para Dev C++Ejemplos Para Dev C++
Ejemplos Para Dev C++
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
 
Lenguaje de programacion c
Lenguaje de programacion cLenguaje de programacion c
Lenguaje de programacion c
 
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
 
Librerias en-lenguaje-c
Librerias en-lenguaje-cLibrerias en-lenguaje-c
Librerias en-lenguaje-c
 
Programa c++
Programa c++Programa c++
Programa c++
 
Programación C++ - DEV C++
Programación C++ - DEV C++Programación C++ - DEV C++
Programación C++ - DEV C++
 
Compilador para calcular el área de figuras Triangulo, Cuadrado y Rectángulo.
Compilador para calcular el área de figuras Triangulo, Cuadrado y Rectángulo.Compilador para calcular el área de figuras Triangulo, Cuadrado y Rectángulo.
Compilador para calcular el área de figuras Triangulo, Cuadrado y Rectángulo.
 
Introducción al Lenguaje C
Introducción al Lenguaje CIntroducción al Lenguaje C
Introducción al Lenguaje C
 
Introducción a lenguaje Visual Basic
Introducción a lenguaje Visual BasicIntroducción a lenguaje Visual Basic
Introducción a lenguaje Visual Basic
 
Cei 309 curso básico de fox - pro
Cei 309   curso básico de fox - proCei 309   curso básico de fox - pro
Cei 309 curso básico de fox - pro
 
Guia visual fox pro 1
Guia visual fox pro 1Guia visual fox pro 1
Guia visual fox pro 1
 
Manual visual fox pro
Manual visual fox proManual visual fox pro
Manual visual fox pro
 

Similar a LENGUAJE DE PROGRAMACION C++ INTRODUCCION

Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionjoel210696
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionBoris Salleg
 
El software 2
El software 2El software 2
El software 2Naudelyn
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxDavidGarca147527
 
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1kfacu
 
Programación
ProgramaciónProgramación
ProgramaciónGraceelml
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacionCecilia Díaz
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continaciondetlefsen
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continaciondetlefsen
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
9º Algoritmos
9º Algoritmos9º Algoritmos
9º Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 

Similar a LENGUAJE DE PROGRAMACION C++ INTRODUCCION (20)

Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Clase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacionClase 1 de introduccion a la programacion
Clase 1 de introduccion a la programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Algoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacionAlgoritmos, programas, compiladores y lenguajes de programacion
Algoritmos, programas, compiladores y lenguajes de programacion
 
El software 2
El software 2El software 2
El software 2
 
Programacion
ProgramacionProgramacion
Programacion
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
 
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1C:\Documents And Settings\Alumnos\Escritorio\Programaion1
C:\Documents And Settings\Alumnos\Escritorio\Programaion1
 
Generacionlenguajes
GeneracionlenguajesGeneracionlenguajes
Generacionlenguajes
 
Programación
ProgramaciónProgramación
Programación
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
9º Algoritmos
9º Algoritmos9º Algoritmos
9º Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 

LENGUAJE DE PROGRAMACION C++ INTRODUCCION

  • 1. PARTE I FUNDAMENTOS DE LENGUAJE DE PROGRAMACION ANSI C CAPITULO I FUNDAMENTOS DE PROGRAMACIÓN 1.1 CONCEPTOS DE SISTEMAS.- 1.1.1. Definición de sistemas.- http://www.alegsa.com.ar/Dic/sistema.php Un sistema (system). Es un conjunto de partes o elementos organizadas y relacionadas que interactúan entre sí para lograr un objetivo. Los sistemas reciben (entrada) datos, energía o materia del ambiente y proveen (salida) información, energía o materia. Un sistema puede ser físico o concreto (una computadora, un televisor, un humano) o puede ser abstracto o conceptual (un software) Cada sistema existe dentro de otro más grande, por lo tanto un sistema puede estar formado por subsistemas y partes, y a la vez puede ser parte de un supersistema. 1.1.2 Elementos o componentes de un sistema En el siguiente diagrama se muestra los elementos o componentes de un sistema Figura. 1.1 Esquema simplificado de un sistema Elementos 1. Entrada (INPUT) insumo. 2. Salida (OUTPUT) producto. 3. Proceso o fenómenos. 4. Ambiente o mundo de las cosas próximas. 5. Retroalimentación (Feeback).- Retroinformación compara el producto con un criterio En informática podemos distinguir dos clases de elementos: Hardware : es la parte física del ordenador, todos los elementos que se pueden “tocar”, por ejemplo el teclado, la pantalla, el procesador, etc. Software : son los programas, sistemas operativos y datos que se utilizan en el ordenador (la parte que no se puede “tocar”). ENTRADA SALIDAPROCESO RETROALIMENTACION
  • 2. 1.2 CONCEPTOS DE PROGRAMACION Y APLICACIONES  Programa. La definición de la RAE es: Conjunto unitario de instrucciones que permite a un ordenador realizar funciones diversas, como el tratamiento de textos, el diseño de gráficos, la resolución de problemas matemáticos, el manejo de bancos de datos, etc. Pero normalmente se entiende por programa un conjunto de instrucciones ejecutables por un ordenador.  Programación La programación consiste en pasar algoritmos a algún lenguaje de ordenador a fin de que pueda ser entendido por el ordenador. La programación de ordenadores comienza en los años 50 y su evolución ha pasado por diversos pasos.  Lenguajes de programación Los lenguajes de programación permiten codificar algoritmos en el ordenador. Son una serie de símbolos e instrucciones de acuerdo con una sintaxis que facilita su posterior traducción a código entendible por el ordenador, En realidad los ordenadores sólo reconocen un lenguaje formado por los unos y ceros Del código binario. Según la disposición de esos unos y ceros entenderá unas Instrucciones u otras. De esa forma hay lenguajes más próximos al lenguaje de las Computadores (lenguajes de bajo nivel) y lenguajes más próximos al lenguaje humano (lenguajes de alto nivel) 1.3 METODOLOGIA DE LA PROGRAMACION Independientemente de la metodología utilizada suele haber una serie de pasos Comunes a todas ellas (relacionados con el ciclo de vida de la aplicación): 1.3.1 análisis El análisis estudia los requisitos que ha de cumplir la aplicación. El resultado del análisis es una hoja de especificaciones en la que aparecen los requerimientos de la aplicación. Esta hoja es redactada por el o la analista, la persona responsable del proceso de creación de la aplicación. En la creación de algoritmos sencillos, el análisis consistiría únicamente en:  Determinar las entradas. Es decir, los datos que posee el algoritmo cuando comienza su ejecución. Esos datos permiten obtener el resultado.  Determinar las salidas. Es decir, los datos que obtiene el algoritmo como resultado. Lo que el algoritmo devuelve al usuario.  Determinar el proceso. Se estudia cuál es el proceso que hay que realizar. 1.3.2 diseño En esta fase se crean esquemas que simbolizan a la aplicación. Estos esquemas los elaboran analistas. Gracias a estos esquemas se simboliza la aplicación. Estos esquemas en definitiva se convierten en la documentación fundamental para plasmar en papel lo que el programador debe hacer. En estos esquemas se pueden simbolizar: la organización de los datos de la aplicación, el orden de los procesos que tiene que realizar la aplicación, la estructura física (en cuanto a archivos y carpetas) que utilizará la aplicación, etc.
  • 3. La creación de estos esquemas se puede hacer en papel, o utilizar una herramienta CASE para hacerlo. 1.3.4 codificación Escritura de la aplicación utilizando un lenguaje de programación (C, Pascal, C++, Java,...). Normalmente la herramienta utilizada en el diseño debe ser compatible con el Lenguaje que se utilizará para codificar. Es decir si se utiliza un lenguaje orientado a objetos, la herramienta de diseño debe ser una herramienta que permita utilizar objetos. 1.3.5 ejecución Tras la escritura del código, mediante un software especial se traduce a código interpretable por el ordenador (código máquina). En este proceso pueden detectarse errores en el código que impiden su transformación. En ese caso el software encargado de la traducción (normalmente un compilador o un intérprete) avisa de esos errores para que el programador los pueda corregir. 1.3.6 prueba Se trata de testear la aplicación para verificar que su funcionamiento es el correcto. Para ello se comprueban todas las entradas posibles, comprobando que las salidas son las correspondientes. 1.3.7 mantenimiento En esta fase se crea la documentación del programa (paso fundamental en la creación De aplicaciones). Gracias a esa documentación se pueden corregir futuros errores o Renovar el programa para incluir mejoras detectadas, operaciones que también se Realizan en esta fase. 1.4. ALGORITMOS Según la RAE: conjunto ordenado y finito de operaciones que permite hallar la Solución de un problema en notaciones para el diseño de algoritmos 1.4.1 diagramas de flujo  Es el esquema más viejo de la informática. Se trata de una notación que pretende facilitar la escritura o la comprensión de algoritmos. Gracias a ella se esquematiza el flujo del algoritmo.  Fue muy útil al principio y todavía se usa como apoyo para explicar ciertos algoritmos.  Si los algoritmos son complejos, este tipo de esquemas no son adecuados.  No obstante cuando el problema se complica, resulta muy complejo de realizar y de entender.  De ahí que actualmente, sólo se use con fines educativos y no en la práctica.  Pero sigue siendo interesante en el aprendizaje de la creación de algoritmos.  Los diagramas utilizan símbolos especiales que ya están normalizados por organismos de estandarización como ANSI e ISO.
  • 4. 1.4.2 Representación gráfica de los algoritmos.- Figura 1.4.2.- Represent ación gráfica de los algoritmos . Pseudocó digo. Considerado como un lenguaje falso, el pseudocódigo es un lenguaje intermedio entre nuestro lenguaje y el de programación, se escribe la lógica de programación con el lenguaje español Problema.- Intercambiar dos variables Análisis. (Especificaciones)- entrada a=10 b=20 Salida a=20 b=10 Programación (algoritmo) Pseudocódigo paso1. Iniciar paso2 ingresar las dos variables y guardarlos en N1 y N2 paso3 realizar el intercambio 3.1 Crear una variable temporal 3.2 poner el valor de N1 en temporal 3.3 Poner el valor de N2 en N1 3.4 poner el valor de temporal en N2 Inicio o Fin Decisión Documento Proceso Datos Entrada manual Visualización Bucle o ciclo Conector de proceso Sub-Programa Datos guardados Flujo de Diagrama N1, N2 Inicio Temp <---- N1 N1<--- N2 N2<----Temp N1,N2 Fin
  • 5. Paso 4 mostrar el contenido de N1 y N2 Paso 5 terminar Elaborar diagrama de flujo, prueba de datos y programa
  • 6. Programa en visual C++ 2008 #include<conio.h> #include<stdio.h> int main() {int n1,n2,temp; printf("ningrese los valores de n1 y n2"); scanf("%d%d",&n1,&n2); printf("n Valores antiguos de n1 =%d y n2=%d",n1,n2); temp=n1; n1=n2; n2=temp; printf("n Valores nuevos de n1 =%d y n2=%d",n1,n2); getch(); } 1.4.3.- Ejercicios. Elaborar el Pseudocódigo y su diagrama de flujo para: 1. Sumar dos Números, 2. Sumar tres Números,3 y luego 5 Números 1. Sumar n Números 2. Encontrar el mayor de dos números 3. Encontrar el mayor de 10 números. 4. Encontrar el mayor, menor y promedio de n números. 5. Intercambiar dos variables. 6. Mostrar la serie 1,2,3,4,5,.... N; 7. Encontrar el factorial de un número 8. Calcular los valores de una función, dado el límite inicial, límite final y el incremento 9. Elaborar una tabla de Multiplicar de 1 al 12 10. Elaborar el algoritmo y el programa para sacar la nota final del curso 11. Proponer un problema interesante y resolverlo 1.5 CARACTERÍSTICAS DEL LENGUAJE C. 1.5.1 Versiones de lenguaje C 1 LENGUAJE C ESTÁNDAR ANSI C. C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL Paradigma: Imperativo (Procedural), Estructurado Apareció en: 1972 Diseñado por: Dennis M. Ritchie
  • 7. Desarrollador: Dennis Ritchie y Bell Labs Última versión estable: C99 (Marzo de 2000) Sistema operativo: Multiplataforma Características a) Lenguaje de propósito general. b) Lenguaje de nivel medio.- Permite la manipulación de bits, bytes y direcciones de código, el C es muy portable. c) Lenguaje estructurado.- (no estructurado en bloques), dado que C no permite la creación de funciones dentro de funciones, pero si funciones y funciones secundarias. d) Programación modular.- Se puede escribir programas independientes (módulos) constituyendo librerías de programas para ser usadas posteriormente en librería #include. e) Transportabilidad.- Los programas escritos en este lenguaje pueden ser ejecutados en distintos computadoras. f) Lenguaje generalmente compilado.- 2. C++ C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido C ++ Paradigma :multiparadigma: orientado a objetos, imperativo, programación genérica. Apareció en: 1983 Diseñado por: Bjarne Stroustrup Desarrollador: Bjarne Stroustrup, Bell Labs Tipo de dato: fuerte, estático 3 C++ BUILDER C++Builder es un entorno de Desarrollo rápido de aplicaciones en lenguaje C++ para Windows inicialmente propiedad de la empresa Borland, y actualmente de la empresa Embarcadero quien compró de Borland 4. MICROSOFT VISUAL STUDIO Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus siglas en inglés) para sistemas operativos Windows. Soporta varios lenguajes de programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET, aunque actualmente se han desarrollado las extensiones necesarias para muchos otros. Información general Lanzamiento inicial 30 de julio de 1998; hace 12 años Última versión estable 10.0.30319.1 RTM (Visual Studio 2010) (Microsoft Visual Studio 2010- El sitio oficial de Visual Studio 2010 info)
  • 8. 12 de abril de 2010; hace 11 meses Entorno de desarrollo integrado Sistema operativo Windows 4.a Visual C++ Visual C++ (también conocido como MSVC, Microsoft Visual C++) es un entorno de desarrollo integrado (IDE) para lenguajes de programación C, C++ y C++/CLI. Esta especialmente diseñado para el desarrollo y depuración de código escrito para las API's de Microsoft Windows, DirectX y la tecnología Microsoft .NET Framework. Visual C++ hace uso extensivo del framework Microsoft Foundation Classes (o simplemente MFC), el cual es un conjunto de clases C++ para el desarrollo de aplicaciones en Windows. El IDE cuenta con herramientas poderosas como el IntelliSense, RemoteDebuging, Editar y Continuar, y Texto Resaltado. 4.b C# Paradigma: Orientado a objetos Apareció en: 2001 Diseñado por: Microsoft Corporation Última versión estable: 4.0 (12 de abril 2010) Tipo de dato: Fuerte, Estático Implementaciones: Visual Studio .NET, Mono Sistema operativo: Multiplataforma Web: http://www.microsoft.com/net 1.5.2 Ejemplo del programa de 4 operaciones en las 5 versiones de C Para las pruebas se usara Microsoft visual estudio 2008 1 LENGUAJE C ESTÁNDAR ANSI C. #include <conio.h> #include <stdio.h> main () { float n1,n2; clrscr(); printf(" ingrese 2 numeros "); scanf("%f%f",&n1,&n2); printf("n la suma es %f " ,n1+n2); getch(); } 2 En C++ #include <conio.h> #include <iostream.h> int main () { float n1,n2; cout<< " ingrese 2 numeros "; cin>>n1>>n2;
  • 9. cout<< "n la suma es "<< n1+n2; getch(); return 0; } 3 Con visual C++ 2008 usando printf #include <windows.h> #include <stdio.h> int main () { float n1,n2; system("cls"); printf(" ingrese 2 numeros "); scanf("%f %f",&n1,&n2); printf("n la suma es %f " ,n1+n2); system("pause"); return 0; } 4 Con visual C++ usando cin y cout #include <conio.h> #include <iostream> using std::cout; using std::cin; int main () { float n1,n2; cout<< " ingrese 2 numeros "; cin>>n1>>n2; cout<< "n la suma es "<< n1+n2; getch(); return 0; } 5 Con C# using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { float n1, n2; Console.Write(" ingrese el nro 1 "); n1=Convert.ToSingle (Console.ReadLine()); Console.Write(" ingrese el nro 1 "); n2 = Convert.ToSingle(Console.ReadLine()); Console.WriteLine("n la suma de {0} y {1} es {2} ",n1,n2,n1+n2);
  • 10. Console.ReadLine (); } } } 6 Con Visual C++ Aplicación de consola CLR #include "stdafx.h" #include <conio.h> using namespace System; int main(array<System::String ^> ^args) { float n1,n2; Console::Write( "Ingrese nro 1 " ); n1=Convert::ToSingle ( Console::ReadLine()); Console::Write( "Ingrese nro 2 " ); n2=Convert::ToSingle(Console::ReadLine()); Console::WriteLine( "la suma es {0} ",n1+n2 ); getch(); } 7. Con Visual C++ Aplicación Form Windows private: System::Void btnSumar_Click(System::Object^ sender, System::EventArgs^ e) { float r; r= Convert::ToSingle(textBox1->Text)+ Convert::ToSingle (textBox2->Text); textBox3->Text=Convert::ToString (r); Nota. El asistente de IntelliSense de visual estudio nos muestra los tipos de conversión que existen para convertir cadenas a números 8. Con Visual C++ usando clases y objetos #include <stdio.h> #include <conio.h> class suma { float n1,n2,r; public: void ingresar(); float sumar(); }; void suma ::ingresar () { printf("n ingrese dos numeros ");
  • 11. scanf("%f%f",&n1,&n2); }; float suma::sumar() { return n1+n2;}; int main() { suma objeto; objeto.ingresar(); printf("n la suma de los numeros es %f",objeto.sumar()); getch(); } Nota. El asistente de IntelliSense de visual estudio nos muestra los componentes de la clase que hemos creado (suma), además visual C ++ 2008 no permite trabajar jerárquicamente o sea se puede esconder parte del programa con el signo menos (-) y expandir con el (+) . De esa manera los programas se minimizan, Nota tambien se podria trabajar en Visual basic 2008 en modo consola
  • 12. Programa Module Module1 Sub Main() Dim n1 As Single, n2 As Single, suma As Single = 0 Console.WriteLine(" Ingrese primer numero ") n1 = Console.ReadLine() Console.WriteLine(" Ingrese segundo numero ") n1 = Console.ReadLine() suma = n1 + n2 Console.WriteLine(" la suma es {0} ", suma) Console.ReadLine() End Sub End Module Con Visual Basic en modo formulario Diseño
  • 13. Código Public Class Form1 Dim n1 As Single, n2 As Single, resul As Single = 0 Private Sub operacion(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _ BtnSuma.Click, BtnResta.Click, BtnMultiplicacion.Click, BtnDivision.Click n1 = Val(TextBox1.Text) n2 = Val(TextBox2.Text) Select Case sender.text Case "+" : resul = n1 + n2 Case "-" : resul = n1 - n2 Case "*" : resul = n1 * n2 Case "/" : resul = n1 / n2 End Select Label2.Text = sender.text TextBox3.Text = resul End Sub End Class Trabajo con con varios archivos La clase suma se puede usar como archivo de cabecera , y luego adjuntarlo como se muestra, de esa manera los programas que se trabaja se reducen bastante. . 1.6 LENGUAJE DE PROGRAMACION VISUAL C++ DE VISUAL ESTUDIO 2008 MOTIVOS
  • 14. Se enseñara este lenguaje porque es parecido a lo enseñado en semestres anteriores Bibliografía Beginning Visual C++®2008 Ivor Horton Entorno de desarrollo integrado (IDE) que viene con Visual C++ 2008 http://www.alegsa.com.ar/Dic/.net%20framework.php Definición de .NET Framework El Microsoft .NET Framework, es un componente de software que puede ser o es incluido en los sistemas operativos Microsoft Windows. Provee soluciones pre- codificadas para requerimientos comunes de los programas y gestiona la ejecución de programas escritos específicamente para este framework . Microsoft desea que todas las aplicaciones creadas para la plataforma Windows, sean basadas en el .NET Framework. Su objetivo es crear un marco de desarrollo de software sencillo, reduciendo las vulnerabilidades y aumentando la seguridad de los programas desarrollados Common Language Runtime El Common Language Runtime o CLR (Lenguaje común en tiempo de ejecución) es la implementación del estándar Common Language Infrastructure (CLI) que define un ambiente de ejecución para los códigos de los programas que corren sobre la plataforma .Net de Microsoft. El CLR es el encargado de compilar una forma de código intermedio llamada Common Intermediate Language (CIL, anteriormente conocido como MSIL -- Microsoft Intermediate Language), a lenguaje de maquina nativo, mediante un JIT Versiones de C++ Visual C++ 2008 apoya plenamente dos versiones de C++ definidas por dos distintas normas:  El estándar ANSI/ISO C++ es para la implementación de aplicaciones nativas: no administrado de C++. Esta versión de C++ es compatible con la mayoría de las plataformas de ordenador.  C + c++ / CLI estándar está diseñado específicamente para escribir programas que destino CLR y es una extensión de ANSI/ISO C++. Usando el IDE Todo programa de desarrollo y ejecución en este libro se realiza desde dentro del IDE. Al iniciar Visual C++ 2008, observe una ventana de aplicación similar al que se muestra en la figura 1-3 Pasos para ejecutar en programa en C en visual estudio 2008 Paso 1 ingrese al visual estudio 2008
  • 15. 2 Pagina inicial de visual estudio 2008 3 Escoger archivo nuevo proyecto Visual C++ 4 Elegir aplicación de consola Win 32
  • 16. 5 Ponga un nombre por ejemplo proyecto1 6. configure la aplicación como aplicación de consola 7 Ponga finalizar y sale proyecto de este tipo // PROYECTO1.cpp: define el punto de entrada de la aplicación de consola. // #include "stdafx.h"
  • 17. int _tmain(int argc, _TCHAR* argv[]) { return 0; } 8. Agregue el siguiente código #include "stdafx.h" #include <conio.h> #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) { printf("n HOLA MUNDO "); getch(); return 0; } 9 Ejecute el programa con o la tecla f5 10 .modifique el programa a #include<conio.h> #include<stdio.h> int main() { printf("n HOLA MUNDO "); getch(); return 0; } Y obtendra el mismo resultado MODO DE EJECUTAR EL PROGRAMA ADJUNTANDO EL ARCHIVO CPP ( recomendado) Pasos 1. Ingrese archivo Nuevo Proyecto aplicación de consola win32 Poner un nombre aceptarsiguiente
  • 18. 2. En configuracion de aplicación ponga proyecto vacio 3. Estando en explorador de soluciones ponga agregar luego nuevo elemento
  • 19. 4 escoja archivo C++ 5 Sale un proyecto blanco 6 Agregue el siguiente código(escriba) #include <conio.h> #include <stdio.h> int main ()
  • 20. { printf("n HOLA MUNDO "); getch(); return 0; } 7 ejecute el programa con f5 y se mostrara lo siguiente Puede copiar el programa a word con control+c y pegar con control +v Para caputar la pantalla use alt + imp pantalla( printf screen) 1.7 LA ESTRUCTURA DE UN PROGRAMA C++ Un programa en C++ consta de una o más funciones. Cada programa de C++ estándar de ANSI/ISO contiene la función main(),Una función es simplemente un bloque independiente de código con un nombre único que se invoca para ejecución utilizando el nombre de la función. #include <math.h> #include <conio.h> #include <stdio.h> int main () { float n1,n2,Resul; printf(" ingrese 2 numeros "); scanf("%f%f",&n1,&n2); printf("n la suma es %f " ,n1+n2); printf("n la resta e %f " ,n1-n2); printf("n la multiplicacion es %f " ,n1*n2); printf("n la division entera es %d " ,(int)n1/(int) n2); printf("n la division real es es %f " ,n1/n2); printf("n El modulo es %d " ,(int)n1%(int) n2); printf("*/n la potencia de %f elevado a %f es %f " , n1,n2,pow(n1,n2)); printf("n la raiz cuadrada del primer numero es %f " ,sqrt(n1)); getch(); } Probar
  • 21. 1.7.1 Reglas de escritura de un Programa C y C++ 1. Mayúsculas y minúsculas.- C++ es sensible al tamaño Nombre es diferente a nombre. 2. Espacios en blanco.- (líneas en blanco, tabulaciones y sangrados), su buen uso aumentar la legibilidad del código fuente. 3. El carácter de separación de instrucciones es el; (punto y coma). 4. Los paréntesis.- proporcionan máxima prioridad en el uso de los operadores 5. Comentarios.- C y C++ admiten como comentario todo texto encerrado entre delimitador /* ... */ Ej. /* este es un comentario */. 6. C++ admite otro tipo de separador de comentario, la doble barra inclinada //. Ej.. // este es un comentario usado en C++ Nota : para poner y quitar comentarios visual C++ utilice 1.8 PALABRAS RESERVADAS,TIPOS DE DATOS, CONSTANTES Y VARIABLES 1.8.1 Palabras reservadas O palabras clave en minúsculas, una palabra clave no puede ser usada para otro propósito en un programa en C es decir, no debe servir como nombre de variable o función, estas palabras en visual C++ son: asm auto break case cdecl char class const continue default delete do double else enum _export extern far float for friend goto huge if inline int interrupt _loadds long near new operator pascal private protected public register return _saveregs _seg short signed sizeof static struct switch template this typedef union unsigned virtual void volatile while 1.8.2 Identificadores Nombres usados para referirse a las variables, las funciones etiquetas y otros objetos definidos por el usuario.
  • 22. Características.-Longitud 1-30 caracteres, primer carácter una letra o Símbolo de subrayado 1.8-3 Constantes En C la constantes de tipo carácter se trata siempre como enteros (int), en C++ las constantes carácter son de tipo char. Una constante se puede definir de dos formas: #define pi 3.14159265; const float pi=3.14158265; Const int N=100; o define N 100 En el caso const, N es un lvalue no modificable; en el caso define, N es un literal. Constantes numéricas Ej. decimal 25 octal '023' equivalente a 19 en decimal hexadecimal 0x23 equivalente a 35 en decimal Constantes carácter 'A', 't', 'nt', constante tipo cadena "El mundo cambia constantemente"; char frase[20]= "UNIVERSIDAD NACIONAL DE SAN AGUSTIN"; char *frase2 ="Ingeniería Industrial "; 1.8.4.- Variables.-Son posiciones o Áreas de memoria y que tipo de dato almacenan(nombres que se asigna a una posición de memoria). formato [clase][tipo] id_var [= valor] los nombres entre corchetes son opcionales Clase.- De almacenamiento o especificaciones indican al compilador como debe almacenarse la variable que sigue, y si esta tiene carácter global (static o extern) o local (auto o register). Clase auto.- Es la clase por omisión de un variable, su alcance se extiende desde la declaración hasta el final del bloque en el que ha sido declarado. - Son variable automáticas o locales se inicializan en el bloque y finalizan en el bloque por defecto tiene cualquier valor. - Se crean cada vez que se ingresa a un bloque y mueren en el bloque. static.- Se crean y se inicializan en el bloque y quedan en el bloque no mueren. - Son variables permanentes y por defecto se inicializan en cero. - Una variable declarada de clase static tiene su zona de memoria asignada. - Las variables static conservan su valor entre llamadas sucesivas a funciones. register.- Igual que las automáticas pero trabajan en el mismo procesador. Las variables de tipo register se almacenan en los registros del microprocesador de tal manera que acceso a ellas es muy rápida. ( f extern.- Sirven par traer variable desde afuera, variable por parámetros, no se deben inicializarse ninguna. “Este archivo utiliza una variable que está declarad en otro archivo fuente”. Una variable utilizada en varios archivos debe estar definido en uno solo de los archivos y declarada en los restantes mediante la palabra reservada extern 1.8.4.1 pasos para declarar una variable de tipo extern
  • 23. a. Declarar la variable como global int x antes de la función main b. En cualquier archivo fuente que necesite acceder a la variable global declarar como extern Ej. extern int x Nota:- las variables globales y de static se inicializa a 0 Las variables globales permanecen en la memoria durante toda la vida del programa las locales no por lo tanto es conveniente usar variables locales 1.9.- TIPOS DE DATOS EN C++ Un tipo de datos en C++ es la manera como el compilador almacena la información en la memoria La siguiente tabla contiene un resumen de todos los tipos fundamentales de ANSI/ISO C++ y el intervalo de valores que son: Type Size in Bytes Range of Values bool 1 true or false char 1 Por defecto es lo mismo que el de tipo signed char: Opcionalmente se puede hae que su rango se de unsigned char unsigned char. 1 –128 to +127 signed char 1 –128 to +127 unsigned char 1 0 a 255 wchar_t 2 0 a 65,535 short 2 –32,768 a +32,767 unsigned short 2 0 a 65,535 int 4 –2,147,483,648 a 2,147,483,647 unsigned int 4 0 a 4,294,967,295 long 4 –2,147,483,648 a 2,147,483,647 unsigned long 4 0 a 4,294,967,295 float 4 ±3.4×10±38 con aproximadamente 7 dígitos de precisión double 8 ±1.7×10±308 con aproximadamente 15 dígitos de precisión long double 8 ±1.7×10±308 con aproximadamente 15 dígitos de precisión El tipo void sirve para: - Declarar explícitamente una función que no devuelve valor alguno - Declarar funciones sin parámetros - Generar punteros gen‚ricos void Modificadores de tipos.- Si usa para alterar el significado de tipo base para que se ajuste más precisamente a las necesidades de cada momento y son: Signed .- tipo por defecto redundante, unsigned(sin signo),long y short 1.10 OPERADORES Los operadores se utilizan para manipular datos: ejecutan cálculos, buscar igualdades, realizan asignaciones, trabajan con variables y se encargan de muchas tareas que los programadores nunca llevan a cabo. Los operadores de C++ mas utilizados son
  • 24. Operador Descripción Ejemplo Operadores matemáticos + Adición x= y + z - Sustracción x= y - z * Multiplicación x= y * z / División x= y / z Operadores de asignación = Asignación n= 10 += asignación suma n+= 3 equivale n=n+3 -= asignación resta n-= 3 equivale n=n-3 *= asignación producto n*= 3 equivale n=n*3 /= asignación cociente n/= 3 equivale n=n/3 &= asignar operador AND x&= 0x02 &= asignar operador OR x¦= 0x02 Operadores lógicos && AND Lógico if(X&& 0xFF) {...} || OR Lógico if(X&& || FF ) {...} Operadores relacionales == Igual que if(x== 10) {...} != No igual que if(x != 10) {...} < Menor que if(x== 10) {...} > Mayor que if(x== 10) {...} <= Menor o igual que if(x== 10) {...} >= Mayor o igual que if(x== 10) {...} ------------------------------------------------------------------------- en resultado falso = 0 verdadero <>0 Operadores unarios * Operador de in dirección int x= *y; & Dirección de operador int *x= &y; ~ NOT a nivel de bits x&= -=0x02; ! NOT lógico if( !valid){…} ++ Operador de incremento x++;(lo mismo que x=x+1) -- Operador de decremento x -- Operadores de clase y estructura :: Resolución de alcance MyClass::SomeFunction(); -> Miembro indirecto MyClass->SomeFunction(); . Miembro directo MyClass.SomeFunction(); ----------------------------------------------------------------------------------------- En C++ lo operadores se pueden sobrecargar Ejercicios sobre operadores 1. x=7; y= x++ ; primero se almacena el valor de x a y i después se incrementa x; luego y=7 i, x=8,
  • 25. 2. x=7; y= ++x; primero se incrementa x a 8 y después se almacena ese valor en y luego al final x vale 8 i y también vale 8 #include <conio.h> int main() { int x=7,y=5; y=x++; // probar luego con y= ++x; cprintf("n x= %d, y= %d", x,y); getch(); } 1.10.2.otros operadores operador acción ----------------------------------------------------------------- ? Devuelve un resultado en función de la condición comprobada operador1 ? operador2 : operador3 sizeof Devuelve el tamaño en bytes de su operando ,(coma) encadena variables, evalúa la expresión de izquierda a derecha. (tipo) Moldeado de tipos, efectúa conversiones de tipo explícitas. [] Designa un elemento de un arreglo Ejemplos ? a>b? printf("n %d> %d", a,b):printf("n %d < %d", a,b); #include <stdio.h> { int x=10,r; r= sizeof(x); } r vale 2 (bytes) operador coma 1.- x= (v=3,v*5); equivale v=3; x= v*5; 3*5 x toma el valor de 15 z= 26; 2.- v= (z=z+10,72/z) z= 26+10= 36; v= 72/z; ===> z= 2; Conversión de tipos .Si los operadores dentro de una expresión son de tipos diferentes se convierten al tipo de operando de precisión mas alta. El tipo entero es convertido a float Operador de moldeado ( Conversión Cast).- Indica al compilador que considere temporalmente un tipo de datos como se fuera otro. Un moldeado sirve para cambiar el tipo de datos Eje 2. a= 3; x= 8.1416; a= int(x); flota x= (float)10*5.5; float resul = multiply ( (float) x, , y) para pasar Ej. int a=5, b=2; double c; c= a/b= 2 c= a/(double) b = 2.5 1.10.3 Precedencia de operadores x= 8, y= 7
  • 26. Operador Asociatividad :: Left () [] -> . Left ! ~ +(unary) -(unary) ++ -- &(unary) *(unary) (typecast) static_cast const_cast dynamic_cast reinterpret_cast sizeof new delete typeid Right .*(unary) ->* Left * / % Left + - Left << >> Left < <= > >= Left == != Left & Left ^ Left | Left && Left || Left ?:(conditional operator) Right = *= /= %= += -= &= ^= |= <<= >>= Right , Left Ejemplo de precedencia de operadores Paso 1 Y = 2*5*5 + 3*5+7 ; Multiplicación mas a la izquierda Paso 2 Y = 10*5 +3*5 +7 ; Multiplicación mas a la izquerda Paso 3 Y = 50 + 3*5 +7; Multiplicación antes que la suma Paso 4 Y = 50+15 + 7 ; Suma mas a la izquierda Paso 5 Y = 65+7; Ultima operación de suma Paso 6 Y = 72 ; Asignación 1.11 FUNCIONES EN C++ Son secciones de código separadas del programa principal que realizan un servicio único y bien definido Las funciones son parte importante de cualquier lenguaje de programación Parámetro.- es un valor enviado a una función y se emplea para alterar su operación o indicar el alcance de ésta. Prototipo.- es una declaración de aspecto de una función o una anticipación de una definición Anatomía de una función 24 int SomeFunction(int x, int y) { int z= x+y return z; } Tipo devuelto Nombre de la función Lista de parámetros Cuerpo de la función Instrucción de devolución
  • 27. 1.11.1. La función main() Todo programa en C++ debe contener la función main(). Esta función sirve como punto de entrada al programa. Los programas de Windows escritos en C y C++ disponen de una función de inicio llamado WinMain en lugar de la tradicional main(). Esta forma de main() toma dos parámetros y devuelve un valor entero( se explicará posteriormente en funciones) 1 12.- SALIDA CON FORMATO LA FUNCION printf El término con formato se refiere al hecho de que estas funciones lean y escriban datos en varios formatos bajo control del programador. Las operaciones de entrada y salida no forman parte del conjunto de sentencias del C sino que pertenecen la conjunto de funciones de librería standard de C. 1.8.1 La función printf().- La función printf() escribe datos en la salida standard stdout(pantalla) de acuerdo a un formato especificado. Todo fichero fuente que utilice funciones de entrada/salida y en general funciones de librería standard deberá contener la línea: #include <stdio.h> que significa, incluya el fichero de cabecera stdio.h en el programa fuente #include "stdio.h" busca el fichero en el directorio actual de trabajo, si no lo encuentra, busca en el directorio por defecto especificado #include <stdio.h> Busca en el directorio standard para los ficheros de cabecera por defecto especificado formato #include <stdio.h> int printf(const *formato[,argumentos]..); Esta función devuelve cuantos argumentos tiene. formato: Especifica como va a ser la salida. Esta formado por caracteres ordinarios, secuencia de escape y especificaciones de formato. El formato se lee de izquierda a derecha. Cada argumento debe tener su correspondiente especificación y en el mismo orden. Si hay más argumentos que especificaciones de formatos, los argumentos en exceso se ignoran. Argumentos.- Representa el valor o valores a escribir Una especificación de formato esta compuesto por: %[flag][ancho][.precisión][h/i/l] tipo; Una especificación de formato siempre comienza con el signo de % flag significado -----------------------------------------------------------------
  • 28. - Justifica el resultado a la izquierda, dentro del ancho especificado, por defecto la justificación se hace a la derecha. + Antepone el signo + (m s) o - (menos) al valor de salida. Por defecto solo se pone - a los valores negativos. blancoAntepone un espacio en blanco al valor de salida si es positivo. # cuando se utiliza con la especificación de formato O, x o X antepone el valor de salida 0, OX o X respectivamente. ancho Numero de posiciones para la salida. Si el valor ocupa m s posiciones que lo especificado el ancho se incrementa en lo necesario. Si el valor a escribir ocupa menos posiciones de las especificadas se rellena con blancos o con ceros si el ancho empieza con cero. precisión.- El significado depende del tipo de salida Ej. float valor=12.347; printf(%8.2f",valor); la salida es BBB12.38. donde B significa espacios. h/i/l se utiliza como prefijos tipo es uno de los siguientes caracteres -------------------------------------------------- %c int un solo carácter %1 int enteros con signo en base 10 %i int enteros con signo en base 10 %u int enteros sin signo en base 10 %o int enteros sin signo en base 8 %x int enteros sin signo en base 16(01...abcdef) %X int enteros sin signo en base 16(01...ABCDEF) %b int enteros sin signo en base 2 %f double valor con signo de la forma [-]dddd.dddd. El número de dígitos antes del punto decimal depende de la magnitud del número y de la cantidad de decimales de la precisión lo cual es 6 por defecto. %e,%E, Valor con signo de la forma [-]d.ddddddd[ñ]ddd.Introduce las %g,%G letras e ¢ E ¢ g ¢ G de acuerdo al formato %s Cadena de caracteres %n Puntero a un entero. En el entero es almacenado el número de caracteres almacenados en le buffer %p Escribe una dirección segmentada de la forma xxxx:yyyy para un puntero far(lejos) o yyyy para un puntero near(cerca); Ej. void far *pt; //pt es un puntero far a un objeto de tipo no especificado printf(" dirección segmentada"); scanf("%p",&pt); printf("%pn"),pt); %% Escribe carácter de porcentaje -------------------------------------------------- Ejemplo 1 sentencia printf salida -------------------------------- "%-5.2f",123.234 23.23 " %5.2f", 3.234 B3.23 // B significa espacio en blanco "%10s","hola" BBBBBBhola "%-10s","hola holaBBBBBB "%5.7s",123456789 12345 -------------------------------- Caracteres imprimibles.- Los que se imprimen en pantalla y/o papel. Caracteres no imprimibles.- Caracteres de las teclas que no se imprimen en la pantalla y/o papel como son retorno de carro, tabulaciones, etc.
  • 29. 1.12.2. Códigos de Escape Nombre del carácter Repres.en C V.decimal V.hexadecimal -------------------------------------------------------------------------------------- alerta(pitido) a 7 0x07 Retroceso b 8 0x08 Avance página f 13 0x0C Nueva línea n 10 0x0A Retorno de carro r 13 0x0D Tabulación horizontal t 9 0x09 Tabulación vertical v 12 0x0B barra inversa 47 0x5C Apóstrofo ' 39 0x27 Dobles comillas " 34 0x22 Interrogación ? 63 0x37 ------------------------------------------------------------------------------ Ejemplo.- Programa explicativo de salida con formato #include <conio.h> #include <stdio.h> int main() { char car; char nombre[]="la temperatura ambiente "; int a,b,c,n; float x,y,z; car='C'; a=20; b=350; c=1995;n=242 ; x= 34.5; y=1234; z=1.248; printf("n %s es de %c grados",nombre,car); printf("nn"); printf("a=%6dtb=%6dtc=%6dn",a,b,c); printf("n Valores decimal,octales y hexacimales y carácter de n"); printf(" n %u, %o, %X, %x, %c",n,n,n,n); printf("nLos resultados son los siguientes :n"); printf("n%5stt%5stt%5sn","X","Y","Z"); printf("======================================="); printf("n%8.2ft%8.2ft%8.2fn",x,y,z); printf("n %8.2ft%8.2ft%8.2ftn",x+y,y/5,z*z); z=x+y; printf("nValor resultante %f,%e,%10.2f %dn",z,z,z,z); getch(); return(0); }
  • 30. 1.13 ENTRADA CON FORMATO LA FUNCION scanf() La función scanf() lee datos de la entrada standard Stdin(teclado) interpreta de acuerdo con el formato indicado y los almacena en los argumentos especificados, cada argumento debe ser un puntero a una variable cuyo tipo debe corresponderse con el tipo especificado en el formato formato: #include <stdio.h> int scanf(conct char *formato[,argumentos]..); formato.- Interpreta cada dato de entrada. Esta formada por caracteres en blanco (' ','t','n'), caracteres ordinarios y especificaciones de formato. Cada argumento debe tener su correspondiente especificación de formato y en el mismo orden. Si un carácter en la entrada standard no se corresponde con la entrada especificada por el formato, se interrumpe la entrada de datos. Argumento.- Es un puntero a la variable que se quiere leer 1.13.1. Especificaciones de formato Una especificación de formato esta compuesto por %[*][ancho][{h/i}]tipo * suprime la asignación del siguiente dato en la entrada scanf(%d %*s %d %*s",&hora,&minutos); entrada: 12 horas 30 minutos las cadenas horas y minutos no se asignan Ancho.-Máximo Nro. de caracteres a leer de la entrada, los caracteres en exceso(en cadenas) no son tenidos en cuenta Tipo.- Determina el tipo de dato de entrada que son: código Significado -------------------------------------------------- %c Lee un único carácter %d Lee un entero decimal %i Lee un entero decimal, octal o hexadecimal %e Lee un número en coma flotante %f Lee un número en coma flotante %h Lee un entero corto %o Lee un entero octal
  • 31. %s Lee una cadena %x Lee un número hexadecimal %p Lee un puntero signo en base 16 %n Escribe un valor entero igual al número de caracteres leídos hasta entonces %u Lee un entero sin signo en base 10 -------------------------------------------------- Ejemplos int a, float b, char c; scanf("%d %f %c",&a,&b,&c); ingrese 5 23.4 b Separado por espacios scanf("%d,%f,%c",&a,&b,&c); ingrese 5,23.4,b Separado por comas scanf("%d:%f:%c",&a,&b,&c); ingrese 5,23.4,b Separado por dos puntos Ejemplos 2 // entrada con formato #include <conio.h> #include <stdio.h> int main() { int a,r; float b; char c; printf("Ingresar un valor entero, real char separado por espaciosn"); r= scanf("%d %f %c",&a,&b,&c); printf("nNumero de datos leídos %d n",r); printf(" datos leídos del teclado %d %f %c n",a,b,c); printf("ingrese un numero exhadecimal con formato 0xNron"); scanf("%i",&a); printf("nvalor decimal y hexadecimal de %d %xn",a,a); printf("Ingresar un valor entero, real char separado por comasn"); scanf("%d,%d,%c",&a,&b,&c); printf("nlos datos leídos del teclado son %8d,%8.2f,%8cn",a,b,c); getch(); return 0; } Ejemplo 3 // entrada con formato #include <conio.h> #include <stdio.h> int main() { char nombre[10];// recomendable poner char *nombre; int a,b,c; printf("ningrese en la forma PRIMERO_Segundo_terceron");
  • 32. scanf("PRIMERO%dSegundo%dtercero%d",&a,&b,&c); printf(" valores ingresados %d %d %d",a,b,c); printf("ningrese su nombre "); scanf("%s",&nombre); // en ese caso ya no poner & printf("n su nombre es %s",nombre); getch(); return 0; } 1.14 ENTRADAS Y SALIDAS EN C++ Una de las características más sobresalientes de C++ es la flexibilidad en la utilización de las entradas y salidas. C++ tiene todas las funciones típicas de C estándar, incluyendo , getchar, putchar, scanf y printf. 1.14.1 La Biblioteca iostream.h Esta biblioteca es una implementación orientada a objetos y está basado al igual que la biblioteca stdio.h en el concepto de flujos(stream) es un medio de describir el flujo o secuencia de datos de una fuente ( productor) a un destino o sumidero (consumidor) Dispositivos estándar C++ realiza todas las entradas y salidas como flujo de caracteres , El flujo es como una tubería que lleva (conduce) caracteres desde un dispositivo a otro Tenemos los siguientes objetos ( que se describirán mas adelante) cin.- es el flujo de entrada conectado a la entrada estándar(teclado) es análogo a stdin de C. cout.- es el flujo de salida conectado a la salida estándar(pantalla) análogo a stdout de C. Salida de datos.- Se realiza con cout y el operador << y es análogo a printf Entrada de datos.-El Objeto de flujo cin actúa como su teclado y combinado con Operador de inserción <<.- introducir datos en un flujo de salida Operador de extracción >> Para obtener datos del flujo de entrada. Produce una pausa en el programa y espera a que el usuario introduzca por teclado datos. Ejemplo1.- Entrada y salida en C estándar #include<windows.h> #include<conio.h> #include<stdio.h> void main(void)
  • 33. { system("cls");//clrscr(); int x; float y; printf("n Ingrese un numero entero y otro real "); scanf("%d%f",&x,&y); printf("n la suma es %f ",x+y); getch(); } Ejecución Ingrese un numero entero y otro real 1 3.5 la suma es 4.500000 Ejemplo 2 Entrada y salida en C++ #include<windows.h> // para usar libreria system #include<conio.h> #include<iostream> using std::cout; using std::cin; void main(void) { system("cls");//clrscr(); int x; float y; cout<<"n Ingrese un numero entero y otro real "; cin>>x>>y; cout<<"n la suma es " << x+y << "n"; getch(); } El resultado es el mismo del programas anteriores 1.15 PROBLEMAS RESUELTOS Problema C101 Escriba el programa hola mundo en visual c++ 2008 Tipo de proyecto Win32 Aplicación de consola win32 Nombre del proyecto p1 Proyecto vacio Agregar archivo de codigo fuente p1 Escriba el siguiente codigo #include < conio.h> #include < stdio.h> int main() { printf ("n HOLA MUNDO"); getch(); }
  • 34. Con control + A se selecciona , control +*c se copia y control + V pega Para capturar la pantalla de salida use Allt Print Screen Problema C102.Calcule una formula (una estrada y una salida) por ejemplo se ingresa el radio de un circulo el programa debe a obtener el area del circulo de acuerdo a la fórmula Area= pi*radio2 #include <conio.h> #include <stdio.h> #define pi 3.1416 int main() { float radio, Area; printf ("n ingrese radio del circulo"); scanf("%f",&radio); Area=pi*radio*radio; printf ("n El area es %f ",Area); getch(); } Para obtener la salida como texto clic derecho sobre el raton y aparecerá lo siguiente: ingrese radio del circulo 10 El area es 314.160004 Puede tambien capturar la pantalla de salida con alt+imp pantallla y despues control+ v Problema C103 . Calcular el area del triángulo ( 2 entradas y una salida”) #include <conio.h> #include <stdio.h> int main() { float base, altura, Area; printf ("n ingrese base y altura del triangulo");
  • 35. scanf("%f%f",&base,&altura); Area=base*altura/2; printf ("n El area del triangulo es %f ",Area); getch(); } Salida ingrese base y altura del triangulo 10 20 El area del triangulo es 100.000000 Problema C104 Ingreso de una variable tipo cadena . Ingrese su nombre y la computadora que le salude #include <conio.h> #include <stdio.h> int main() { char nombre[20]; printf ("n ingrese su nombre"); scanf("%s",&nombre); printf ("n Hola %s", nombre); getch(); } Salida ingrese su nombre JUAN Hola JUAN Problema C105 Averigurar el tamaño de las variables #include <conio.h> #include <stdio.h> int main() { char letra; char nombre[20]; short v1=10; int v2; long v3; float v4; double v5; printf ("n Tamaño de la variable letra %d", sizeof(letra)); printf ("n Tamaño de la variable nombre %d", sizeof(nombre)); printf ("n Tamaño de la variable short %d", sizeof(v1)); printf ("n Tamaño de la variable int %d", sizeof(v2)); printf ("n Tamaño de la variable long %d", sizeof(v3)); printf ("n Tamaño de la variable float %d", sizeof(v4)); printf ("n Tamaño de la variable double %d", sizeof(v5)); getch(); } salida Tama±o de la variable letra 1 Tama±o de la variable nombre 20
  • 36. Tama±o de la variable short 2 Tama±o de la variable int 4 Tama±o de la variable long 4 Tama±o de la variable float 4 Tama±o de la variable double 8 Problema C106 el operador coma #include <conio.h> #include <stdio.h> int main() { int x, y,z=0; y= (x=3,x*5); z=(z=y,z=z+10,z=z/2)+10; printf("n valor de x= %d",x); printf("n valor de y= %d",y); printf("n valor de z= %d",z); getch(); } salida valor de x= 3 valor de y= 15 valor de z= 22 Problema C107 Precedencia de operaciones #include <conio.h> #include <stdio.h> int main() { float x= 10, y=20,z; z= x+y/2; printf("n caso 1 valor de z %f",z); z=(x+y)/2; printf("n caso 2 valor de z %f",z); getch(); } Salida caso 1 valor de z 20.000000 caso 2 valor de z 15.000000 Problema C108 Ejemplo de salida con formato #include <conio.h> #include <stdio.h> int main() { int x=10; float y=3.1416; printf("n x sin formato %d ",x); printf("n x con 4 espacios %4d",x); printf("n y sin formato %f",y);
  • 37. printf("n y con 8 espacios y 4 decimales %8.2f",y); getch(); } Problema C109. Ejemplo de printf ,caracteres de escape #include <conio.h> #include <stdio.h> int main() { printf("Hola"); printf("Hola"); printf("n Hola"); printf("n Hola"); printf("n "Hola""); getch(); } Problema C110. Ejemplo de lectura de un carácter hexadecimal #include <conio.h> #include <stdio.h> int main(void ) { int valor; printf("ningrese un Número hexadecimal :"); scanf("%X",&valor); printf("el numero ingresado es %x %X ", valor,valor); getch(); return 0; } Salida ingrese un N·mero hexadecimal :AF03 el numero ingresado es af03 AF03 Problema C110 Ingrese dos puntos calcule la distancia rectangular y la Euclidiana y encuentre el punto medio #include <math.h> #include <conio.h> #include <stdio.h> int main() HolaHola Hola Hola "Hola"
  • 38. {float x1,y1,x2,y2,direc,die; printf("n ingrese primer punto x1 y1 "); scanf("%f%f",&x1,&y1); printf("n ingrese segundo punto x2,y2 "); scanf("%f%f",&x2,&y2); direc=fabs(x2-x1)+fabs(y2-y1); die=sqrt( pow(x2-x1,2) + pow(y2-y1,2) ); printf("n distancia rectelinea es %f", direc); printf("n distancia euclediana es %f",die); printf("n punto medio es x= %f y= %f", (x1+x2)/2,(y1+y2)/2); getch(); } 1.16 PROBLEMAS PROPUESTOS 1) Pruebe todos los ejemplos 2) Elaborar una programa para calcular una formula ejemplo se ingresan 3 notas que calcule el promedio de las notas 3) Probar los operadores y su precedencia 4) Pruebe la función printf con diferentes formatos y codigos de escape 5) Pruebe la funcion scan como leer diferentes tipos de numeros 6) Pruebe las funcions cin y cout 7) Pruebe ejercicios en programación visual