You are on page 1of 54

Lenguaje de programacin 2013 A \1.

Fundamentos \ Ismael Vliz Vilca

-1-

PARTE I
FUNDAMENTOS DE LENGUAJE DE PROGRAMACION ANSI C
CAPITULO I FUNDAMENTOS DE PROGRAMACIN
1.1 CONCEPTOS DE SISTEMAS.1.1.1. Definicin de sistemas.- http://www.alegsa.com.ar/Dic/sistema.php
Un sistema (system). Es un conjunto de partes o elementos organizadas y relacionadas
que interactan entre s para lograr un objetivo. Los sistemas reciben (entrada) datos,
energa o materia del ambiente y proveen (salida) informacin, energa o materia.
Un sistema puede ser fsico o concreto (una computadora, un televisor, un humano) o
puede ser abstracto o conceptual (un software)
Cada sistema existe dentro de otro ms 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

ENTRADA

PROCESO

SALIDA

RETROALIMENTACION

Figura. 1.1 Esquema simplificado de un sistema


Elementos
1. Entrada (INPUT) insumo.
2. Salida (OUTPUT) producto.
3. Proceso o fenmenos.
4. Ambiente o mundo de las cosas prximas.
5. Retroalimentacin (Feeback).- Retroinformacin compara el producto con un criterio
En informtica podemos distinguir dos clases de elementos:
Hardware : es la parte fsica 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).

1.2 CONCEPTOS DE PROGRAMACION Y APLICACIONES

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

-2-

Programa. La definicin de la RAE es: Conjunto unitario de instrucciones que


permite a un ordenador realizar funciones diversas, como el tratamiento de textos,
el diseo de grficos, la resolucin de problemas matemticos, el manejo de
bancos de datos, etc. Pero normalmente se entiende por programa un conjunto de
instrucciones ejecutables por un ordenador.

Programacin La programacin consiste en pasar algoritmos a algn lenguaje de


ordenador a fin de que pueda ser entendido por el ordenador. La programacin de
ordenadores comienza en los aos 50 y su evolucin ha pasado por diversos pasos.
Lenguajes de programacin Los lenguajes de programacin permiten codificar
algoritmos en el ordenador. Son una serie de smbolos e instrucciones de acuerdo
con una sintaxis que facilita su posterior traduccin a cdigo entendible por el
ordenador,
En realidad los ordenadores slo reconocen un lenguaje formado por los unos y ceros
Del cdigo binario. Segn la disposicin de esos unos y ceros entender unas
Instrucciones u otras. De esa forma hay lenguajes ms prximos al lenguaje de las
Computadores (lenguajes de bajo nivel) y lenguajes ms prximos al lenguaje
humano (lenguajes de alto nivel)
1.3 METODOLOGIA DE LA PROGRAMACION
Independientemente de la metodologa utilizada suele haber una serie de pasos
Comunes a todas ellas (relacionados con el ciclo de vida de la aplicacin):
1.3.1 anlisis
El anlisis estudia los requisitos que ha de cumplir la aplicacin. El resultado del
anlisis es una hoja de especificaciones en la que aparecen los requerimientos de la
aplicacin. Esta hoja es redactada por el o la analista, la persona responsable del
proceso de creacin de la aplicacin.
En la creacin de algoritmos sencillos, el anlisis consistira nicamente en:

Determinar las entradas. Es decir, los datos que posee el algoritmo cuando
comienza su ejecucin. 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 cul es el proceso que hay que realizar.
1.3.2 diseo En esta fase se crean esquemas que simbolizan a la aplicacin. Estos
esquemas los elaboran analistas. Gracias a estos esquemas se simboliza la aplicacin.
Estos esquemas en definitiva se convierten en la documentacin fundamental para
plasmar en papel lo que el programador debe hacer.
En estos esquemas se pueden simbolizar: la organizacin de los datos de la aplicacin,
el orden de los procesos que tiene que realizar la aplicacin, la estructura fsica (en
cuanto a archivos y carpetas) que utilizar la aplicacin, etc.
La creacin de estos esquemas se puede hacer en papel, o utilizar una herramienta

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

-3-

CASE para hacerlo.


1.3.4 codificacin
Escritura de la aplicacin utilizando un lenguaje de programacin (C, Pascal, C++,
Java,...). Normalmente la herramienta utilizada en el diseo debe ser compatible con el
Lenguaje que se utilizar para codificar. Es decir si se utiliza un lenguaje orientado a
objetos, la herramienta de diseo debe ser una herramienta que permita utilizar
objetos.
1.3.5 ejecucin
Tras la escritura del cdigo, mediante un software especial se traduce a cdigo
interpretable por el ordenador (cdigo mquina). En este proceso pueden detectarse
errores en el cdigo que impiden su transformacin. En ese caso el software encargado
de la traduccin (normalmente un compilador o un intrprete) avisa de esos errores
para que el programador los pueda corregir.
1.3.6 prueba
Se trata de testear la aplicacin 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 documentacin del programa (paso fundamental en la creacin
De aplicaciones). Gracias a esa documentacin se pueden corregir futuros errores o
Renovar el programa para incluir mejoras detectadas, operaciones que tambin se
Realizan en esta fase.
1.4. ALGORITMOS
Segn la RAE: conjunto ordenado y finito de operaciones que permite hallar la
Solucin de un problema en notaciones para el diseo de algoritmos
1.4.1 diagramas de flujo
Es el esquema ms viejo de la informtica. Se trata de una notacin que pretende
facilitar la escritura o la comprensin de algoritmos. Gracias a ella se esquematiza
el flujo del algoritmo.
Fue muy til al principio y todava 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, slo se use con fines educativos y no en la prctica.
Pero sigue siendo interesante en el aprendizaje de la creacin de algoritmos.
Los diagramas utilizan smbolos especiales que ya estn normalizados por
organismos de estandarizacin como ANSI e ISO.
1.4.2 Representacin grfica de los algoritmos.-

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

Inicio o Fin

Proceso

Visualizacin

Sub-Programa

Decisin

Datos

Documento

Entrada manual

Conector
de proceso

Bucle o ciclo

Datos
guardados

-4-

Flujo de Diagrama

Figura 1.4.2.- Representacin grfica de los algoritmos.


Pseudocdigo.
Considerado como un lenguaje falso, el pseudocdigo es un lenguaje intermedio entre
nuestro lenguaje y el de programacin, se escribe la lgica de programacin con el
lenguaje espaol
Problema.- Intercambiar dos variables
Anlisis. (Especificaciones)- entrada
Salida
Programacin (algoritmo)
Pseudocdigo

a=10 b=20
a=20 b=10

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
Paso 4 mostrar el contenido de N1 y N2
Paso 5 terminar
Elaborar diagrama de flujo, prueba de datos y programa

Inicio
N1, N2
Temp <---- N1
N1<--- N2
N2<----Temp

N1,N2

Fin

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

-5-

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 Pseudocdigo y su diagrama de flujo para:


1. Sumar dos Nmeros,
2. Sumar tres Nmeros,3 y luego 5 Nmeros
1. Sumar n Nmeros
2. Encontrar el mayor de dos nmeros
3. Encontrar el mayor de 10 nmeros.
4. Encontrar el mayor, menor y promedio de n nmeros.
5. Intercambiar dos variables.
6. Mostrar la serie 1,2,3,4,5,.... N;
7. Encontrar el factorial de un nmero
8. Calcular los valores de una funcin, dado el lmite inicial, lmite 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 CARACTERSTICAS DEL LENGUAJE C.
1.5.1 Versiones de lenguaje C
1 LENGUAJE C ESTNDAR ANSI C.
C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en los
Laboratorios Bell como evolucin del anterior lenguaje B, a su vez basado en BCPL
Paradigma: Imperativo (Procedural), Estructurado
Apareci en: 1972
Diseado por:
Dennis M. Ritchie

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

-6-

Desarrollador:
Dennis Ritchie y Bell Labs
ltima versin estable:
C99 (Marzo de 2000)
Sistema operativo: Multiplataforma
Caractersticas
a) Lenguaje de propsito general.
b) Lenguaje de nivel medio.- Permite la manipulacin de bits, bytes y direcciones de
cdigo, el C es muy portable.
c) Lenguaje estructurado.- (no estructurado en bloques), dado que C no permite la
creacin de funciones dentro de funciones, pero si funciones y funciones
secundarias.
d) Programacin modular.- Se puede escribir programas independientes (mdulos)
constituyendo libreras de programas para ser usadas posteriormente en librera
#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 programacin diseado a mediados de los aos 1980 por


Bjarne Stroustrup. La intencin de su creacin fue el extender al exitoso lenguaje de
programacin C con mecanismos que permitan la manipulacin de objetos. En ese
sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un
lenguaje hbrido
C ++
Paradigma :multiparadigma: orientado a objetos, imperativo, programacin genrica.
Apareci en: 1983
Diseado por: Bjarne Stroustrup
Desarrollador: Bjarne Stroustrup, Bell Labs
Tipo de dato: fuerte, esttico
3 C++ BUILDER
C++Builder es un entorno de Desarrollo rpido 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
ingls) para sistemas operativos Windows. Soporta varios lenguajes de programacin
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.
Informacin general
Lanzamiento inicial 30 de julio de 1998; hace 12 aos
ltima versin estable 10.0.30319.1 RTM (Visual Studio 2010) (Microsoft Visual Studio
2010- El sitio oficial de Visual Studio 2010 info)

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

-7-

12 de abril de 2010; hace 11 meses


Entorno de desarrollo integrado
Sistema operativo Windows
4.a Visual C++
Visual C++ (tambin conocido como MSVC, Microsoft Visual C++) es un entorno de
desarrollo integrado (IDE) para lenguajes de programacin C, C++ y C++/CLI. Esta
especialmente diseado para el desarrollo y depuracin de cdigo escrito para las
API's de Microsoft Windows, DirectX y la tecnologa 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
Diseado por:
Microsoft Corporation
ltima versin estable:
4.0 (12 de abril 2010)
Tipo de dato: Fuerte, Esttico
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 ESTNDAR 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;

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

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#

-8-

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

-9-

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
float n1, n2;
Console.Write(" ingrese el nro 1 ");
n1 = Convert.ToSingle(Console.ReadLine());
Console.Write(" ingrese el nro 2 ");
n2 = Convert.ToSingle(Console.ReadLine());
Console.WriteLine(" la suma de {0} y {1} es {2} ", n1, n2, n1 + n2);
Console.WriteLine(" la resta de {0} y {1} es {2} ", n1, n2, n1 - n2);
Console.WriteLine(" la multiplicacion de {0} y {1} es {2} ", n1, n2, n1 * n2);
Console.WriteLine(" la division de {0} y {1} es {2} ", n1, n2, n1 / n2);
Console.WriteLine(" la division de entera{0} y {1} es {2} ", n1, n2, (int)n1 / (int)n2);
Console.WriteLine(" la el residuo de {0} y {1} es {2} ", n1, n2, n1 % n2);
Console.ReadLine();
}
}
}
Se puede tambien aun simplificar mas

using System;
class Program
{
static void Main()
{
float n1, n2;
Console.Write(" ingrese el nro 1 ");
n1 = Convert.ToSingle(Console.ReadLine());
Console.Write(" ingrese el nro 2 ");
n2 = Convert.ToSingle(Console.ReadLine());
Console.WriteLine(" la suma de {0} y {1} es {2} ", n1, n2, n1 + n2);
Console.WriteLine(" la resta de {0} y {1} es {2} ", n1, n2, n1 - n2);
Console.WriteLine(" la multiplicacion de {0} y {1} es {2} ", n1, n2, n1 * n2);

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 10 -

Console.WriteLine(" la division de {0} y {1} es {2} ", n1, n2, n1 / n2);


Console.WriteLine(" la division de entera{0} y {1} es {2} ", n1, n2, (int)n1 / (int)n2);
Console.WriteLine(" la el residuo de {0} y {1} es {2} ", n1, n2, n1 % n2);
Console.ReadLine();
}
}
Aplicacin C# con formulario

Escriba el siguiente cdigo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
float n1, n2,r;
public Form1()
{
InitializeComponent();
}
private void btnSuma_Click(object sender, EventArgs e)
{
n1 =Convert.ToSingle(txtOper1.Text) ;
n2 = Convert.ToSingle(txtOper2.Text);
r = n1 + n2;
txtResult.Text = Convert.ToString(r);
label2.Text = "+";
}
private void btnResta_Click(object sender, EventArgs e)
{
n1 = Convert.ToSingle(txtOper1.Text);
n2 = Convert.ToSingle(txtOper2.Text);
r = n1 - n2;
txtResult.Text = Convert.ToString(r);
label2.Text = "-";
}
private void btnMultiplicacion_Click(object sender, EventArgs e)
{
n1 = Convert.ToSingle(txtOper1.Text);
n2 = Convert.ToSingle(txtOper2.Text);
r = n1 * n2;
txtResult.Text = Convert.ToString(r);
label2.Text = "*";
}
private void btnDivision_Click(object sender, EventArgs e)
{
n1 = Convert.ToSingle(txtOper1.Text);
n2 = Convert.ToSingle(txtOper2.Text);
r = n1 / n2;
txtResult.Text = Convert.ToString(r);
label2.Text = "/";
}
}
}

- 11 -

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 12 -

6 Con Visual C++ Aplicacin 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++ Aplicacin Form Windows

private:
System::Void
btnSumar_Click(System::Object^
System::EventArgs^ e) {
float r;
r= Convert::ToSingle(textBox1->Text)+ Convert::ToSingle (textBox2->Text);
textBox3->Text=Convert::ToString (r);

sender,

Nota. El asistente
de IntelliSense de visual estudio nos muestra los tipos de
conversin que existen para convertir cadenas a nmeros
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;};

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 13 -

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), adems visual C ++ 2008 no permite trabajar
jerrquicamente 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

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

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

Diseo

Cdigo
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)

- 14 -

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 15 -

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 2010

Lenguaje C#
Arquitectura de la plataforma .NET Framework
Los programas de C# se ejecutan en .NET Framework, un componente que forma
parte de Windows y que incluye un sistema de ejecucin virtual denominado Common
Language Runtime (CLR) y un conjunto unificado de bibliotecas de clases. CLR es la
implementacin comercial de Microsoft de CLI (Common Language Infrastructure), un
estndar internacional que constituye la base para crear entornos de ejecucin y
desarrollo en los que los lenguajes y las bibliotecas trabajan juntos sin ningn
problema.
El cdigo fuente escrito en C# se compila en un lenguaje intermedio (IL) conforme con
la especificacin CLI. El cdigo de lenguaje intermedio y recursos tales como mapas de
bits y cadenas se almacenan en disco en un archivo ejecutable denominado
ensamblado, cuya extensin es .exe o .dll generalmente. Un ensamblado contiene un
manifiesto que proporciona informacin sobre los tipos, la versin, la referencia cultural
y los requisitos de seguridad del ensamblado.
Cuando se ejecuta un programa de C#, el ensamblado se carga en CLR, con lo que se
pueden realizar diversas acciones en funcin de la informacin del manifiesto. A
continuacin, si se cumplen los requisitos de seguridad, CLR realiza una compilacin
Just In Time (JIT) para convertir el cdigo de lenguaje intermedio en instrucciones

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 16 -

mquina nativas. CLR tambin proporciona otros servicios relacionados con la


recoleccin de elementos no utilizados automtica, el control de excepciones y la
administracin de recursos. El cdigo ejecutado por CLR se denomina algunas veces
"cdigo administrado", en contraposicin al "cdigo no administrado" que se compila en
lenguaje mquina nativo destinado a un sistema especfico. En el diagrama siguiente
se muestran las relaciones en tiempo de compilacin y tiempo de ejecucin de los
archivos de cdigo fuente de C#, las bibliotecas de clases de .NET Framework, los
ensamblados y CLR.

La interoperabilidad del lenguaje es una caracterstica clave de .NET


Framework. Como el cdigo de lenguaje intermedio generado por el compilador de C#
cumple la especificacin de tipos comn (CTS), este cdigo generado en C# puede
interactuar con el cdigo generado en las versiones .NET de Visual Basic, Visual C++ o
cualquiera de los ms de 20 lenguajes conformes a CTS. Un nico ensamblado puede
contener varios mdulos escritos en diferentes lenguajes .NET, y los tipos admiten
referencias entre s como si estuvieran escritos en el mismo lenguaje.
Adems de los servicios en tiempo de ejecucin, .NET Framework tambin incluye una
amplia biblioteca de ms de 4.000 clases organizadas en espacios de nombres que
proporcionan una gran variedad de funciones tiles para la entrada y salida de
archivos, la manipulacin de cadenas, el anlisis XML, los controles de los formularios
Windows Forms y muchas tareas ms. La aplicacin de C# tpica utiliza continuamente
la biblioteca de clases de .NET Framework para el tratamiento de las tareas comunes
de "infraestructura".

MOTIVOS
Se enseara este lenguaje porque es parecido a lo enseado en semestres anteriores
Bibliografa Beginning Visual C++2008 Ivor Horton
Entorno de desarrollo integrado (IDE) que viene con Visual C++ 2008

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 17 -

http://www.alegsa.com.ar/Dic/.net%20framework.php
Definicin 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 precodificadas para requerimientos comunes de los programas y gestiona la ejecucin de
programas escritos especficamente 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 comn en tiempo de ejecucin) es la
implementacin del estndar Common Language Infrastructure (CLI) que define un
ambiente de ejecucin para los cdigos de los programas que corren sobre la plataforma
.Net de Microsoft. El CLR es el encargado de compilar una forma de cdigo 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 estndar ANSI/ISO C++ es para la implementacin de aplicaciones nativas: no


administrado de C++. Esta versin de C++ es compatible con la mayora de las
plataformas de ordenador.
C + c++ / CLI estndar est diseado especficamente para escribir programas que
destino CLR y es una extensin de ANSI/ISO C++.

Usando el IDE
Todo programa de desarrollo y ejecucin en este libro se realiza desde dentro del IDE.
Al iniciar Visual C++ 2008, observe una ventana de aplicacin 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

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

2 Pagina inicial de visual estudio 2008


3 Escoger archivo\ nuevo \ proyecto \Visual C++

4 Elegir aplicacin de consola Win 32

5 Ponga un nombre por ejemplo proyecto1

- 18 -

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

6. configure la aplicacin como aplicacin de consola

7 Ponga finalizar y sale proyecto de este tipo


// PROYECTO1.cpp: define el punto de entrada de la aplicacin de consola.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])

- 19 -

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 20 -

{
return 0;
}
8. Agregue el siguiente cdigo
#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
10 .modifique el programa a

o la tecla f5

El programa en C#

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(" HOLA MUNDO ");
Console.ReadLine();
}
}
}

Y obtendra el mismo resultado


MODO DE EJECUTAR EL PROGRAMA
recomendado)

ADJUNTANDO EL ARCHIVO CPP (

Pasos
1. Ingrese archivo \ Nuevo \ Proyecto \ aplicacin de consola win32
Poner un nombre \ aceptar\siguiente

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 21 -

2. En configuracion de aplicacin ponga proyecto vacio

3. Estando en explorador de soluciones ponga agregar luego nuevo elemento

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

4 escoja archivo C++

5 Sale un proyecto blanco

6 Agregue el siguiente cdigo(escriba)


using System;
class Program
{

- 22 -

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 23 -

static void Main(string[] args)


{
Console.WriteLine(" HOLA MUNDO ");
Console.ReadLine();
}
}

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 ms funciones. Cada programa de C++ estndar
de ANSI/ISO contiene la funcin main(),Una funcin es simplemente un bloque
independiente de cdigo con un nombre nico que se invoca para ejecucin utilizando
el nombre de la funcin.

using System;
class Program
{
static void Main(string[] args)
{
float n1,n2;
Console.Write(" ingrese primer numero ");
n1= Convert.ToSingle (Console.ReadLine());
Console.Write(" ingrese segundo numero ");
n2 = Convert.ToSingle(Console.ReadLine());
Console.Write("\n la suma es {0} " ,n1+n2);
Console.WriteLine(" la resta e {0} " ,n1-n2);
Console.WriteLine(" la multiplicacion es {0} " ,n1*n2);
Console.WriteLine(" la division entera es {0} " ,(int)n1/(int) n2);
Console.WriteLine(" la division real es es {0} " ,n1/n2);
Console.WriteLine(" El modulo es {0} " ,(int)n1%(int) n2);

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 24 -

Console.WriteLine(" la potencia de {0} elevado a {0} es {0} " ,


n1,n2,Math.Pow(n1,n2));
Console.WriteLine(" la raiz cuadrada del primer numero es {0} " ,Math.Sqrt(n1));
Console.ReadLine();
}
}

Probar

Estructura general de un programa de C# (Gua de programacin de C#)


Visual Studio 2013
Los programas en C# pueden constar de uno o varios archivos. Cada archivo puede
contener cero o varios espacios de nombres. Un espacio de nombres puede contener
tipos como clases, structs, interfaces, enumeraciones y delegados, adems de otros
espacios de nombres. A continuacin, se muestra el esqueleto de un programa en C#
que contiene todos estos elementos.
C#
// A skeleton of a C# program
using System;
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 25 -

{
}
namespace YourNestedNamespace
{
struct YourStruct
{
}
}
class YourMainClass
{
static void Main(string[] args)
{
//Your program starts here...
}
}
}

Secciones relacionadas
Para obtener ms informacin:
Clases (Gua de programacin de C#)
Structs (Gua de programacin de C#)
Espacios de nombres (Gua de programacin de C#)
Interfaces (Gua de programacin de C#)
Delegados (Gua de programacin de C#)

1.7.1 Reglas de escritura de un Programa C y C++


1.
2.
3.
4.
5.
6.

Maysculas y minsculas.- C++ es sensible al tamao Nombre es diferente a


nombre.
Espacios en blanco.- (lneas en blanco, tabulaciones y sangrados), su buen uso
aumentar la legibilidad del cdigo fuente.
El carcter de separacin de instrucciones es el; (punto y coma).
Los parntesis.- proporcionan mxima prioridad en el uso de los operadores
Comentarios.- C y C++ admiten como comentario todo texto encerrado entre
delimitador /* ... */ Ej. /* este es un comentario */.
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 minsculas, una palabra clave no puede ser usada para otro
propsito en un programa en C es decir, no debe servir como nombre de variable o
funcin, estas palabras en visual C++ son:

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

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

- 26 -

while

1.8.2 Identificadores
Nombres usados para referirse a las variables, las funciones etiquetas y otros objetos
definidos por el usuario.
Caractersticas.-Longitud 1-30 caracteres, primer carcter una letra o Smbolo de
subrayado
1.8-3 Constantes
En C la constantes de tipo carcter se trata siempre como enteros (int), en C++ las
constantes carcter son de tipo char. Una constante se puede definir de dos formas:
#define
pi 3.14159265;
const float
Const int N=100; o define N 100

pi=3.14158265;

En el caso const, N es un lvalue no modificable; en el caso define, N es un literal.


Constantes numricas Ej. decimal 25 octal '023' equivalente a 19 en decimal
hexadecimal 0x23 equivalente a 35 en decimal
Constantes carcter 'A', '\t', '\n\t',
constante tipo cadena "El mundo cambia constantemente";
char frase[20]= "UNIVERSIDAD NACIONAL DE SAN AGUSTIN";
char *frase2 ="Ingeniera Industrial ";
1.8.4.Variables.-Son posiciones o reas de memoria y que tipo de dato
almacenan(nombres que se asigna a una posicin 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 carcter global (static o extern) o
local (auto o register).
Clase auto.- Es la clase por omisin de un variable, su alcance se extiende desde la
declaracin hasta el final del bloque en el que ha sido declarado.
- Son variable automticas 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.

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 27 -

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 automticas 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 rpida. ( f
extern.- Sirven par traer variable desde afuera, variable por parmetros, 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 funcin 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++ C#
Un tipo de datos en C++ es la manera como el compilador almacena la informacin 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
bool
char

unsigned char.
signed char
unsigned char
wchar_t
short
unsigned short
int
unsigned int
long
unsigned long
float
double
long double

Size in Range of Values


Bytes
1
true or false
1
Por defecto es lo mismo que el de tipo signed char:
Opcionalmente se puede hae que su rango se de
unsigned char
1
128 to +127
1
128 to +127
1
0 a 255
2
0 a 65,535
2
32,768 a +32,767
2
0 a 65,535
4
2,147,483,648 a 2,147,483,647
4
0 a 4,294,967,295
4
2,147,483,648 a 2,147,483,647
4
0 a 4,294,967,295
4
3.41038 con aproximadamente 7 dgitos de precisin
8
1.710308
con aproximadamente
15 dgitos de
precisin
8
1.710308 con aproximadamente
15 dgitos de
precisin

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 28 -

El tipo void sirve para:


- Declarar explcitamente una funcin que no devuelve valor alguno
- Declarar funciones sin parmetros
- Generar punteros genricos void
Modificadores de tipos.- Si usa para alterar el significado de tipo base para que se
ajuste ms 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 clculos, 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

Descripcin

Ejemplo

Operadores matemticos
+
Adicin
Sustraccin
*
Multiplicacin
/
Divisin

x= y + z
x= y - z
x= y * z
x= y / z

Operadores de asignacin
=
Asignacin
+=
asignacin suma
-=
asignacin resta
*=
asignacin producto
/=
asignacin cociente
&=
asignar operador AND
&=
asignar operador OR

n= 10
n+= 3 equivale n=n+3
n-= 3 equivale n=n-3
n*= 3 equivale n=n*3
n/= 3 equivale n=n/3
x&= 0x02
x= 0x02

Operadores lgicos
&&
AND Lgico
||
OR Lgico

if(X&& 0xFF) {...}


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 direccin
&
Direccin de operador
~
NOT a nivel de bits
!
NOT lgico

int x= *y;
int *x= &y;
x&= -=0x02;
if( !valid){}

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

++
--

Operador de incremento
Operador de decremento

- 29 -

x++;(lo mismo que x=x+1)


x --

Operadores de clase y estructura


::
Resolucin 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 despus se incrementa x;
luego y=7 i, x=8,
2. x=7; y= ++x; primero se incrementa x a 8 y despus se almacena ese valor en y
luego al final x vale 8 i y tambin 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();
}

x= 8, y= 7

1.10.2.otros operadores
operador
accin
----------------------------------------------------------------?
Devuelve un resultado en funcin de la condicin comprobada
operador1 ? operador2 : operador3
sizeof
Devuelve el tamao en bytes de su operando
,(coma)
encadena variables, evala la expresin de izquierda a derecha.
(tipo)
Moldeado de tipos, efecta conversiones de tipo explcitas.
[]
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
2.- v= (z=z+10,72/z)
z= 26+10= 36;
v= 72/z; ===> z= 2;

v=3;

x= v*5; 3*5 x toma el valor de 15

z= 26;

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 30 -

Conversin de tipos .Si los operadores dentro de una expresin son de tipos
diferentes se convierten al tipo de operando de precisin mas alta. El tipo entero es
convertido a float
Operador de moldeado ( Conversin 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

Operador
::
() [] -> .
! ~ +(unary) -(unary) ++ -- &(unary) *(unary) (typecast)
static_cast const_cast dynamic_cast reinterpret_cast sizeof
new delete typeid
.*(unary) ->*
* / %
+<< >>
< <= > >=
== !=
&
^
|
&&
||
?:(conditional operator)
= *= /= %= += -= &= ^= |= <<= >>=
,

Asociatividad
Left
Left
Right

Left
Left
Left
Left
Left
Left
Left
Left
Left
Left
Left
Right
Right
Left

Ejemplo de precedencia de operadores


Paso 1 Y = 2*5*5 + 3*5+7 ; Multiplicacin mas a la izquierda
Paso 2 Y = 10*5 +3*5 +7 ; Multiplicacin mas a la izquerda
Paso 3 Y = 50 + 3*5 +7; Multiplicacin antes que la suma
Paso 4 Y = 50+15 + 7 ; Suma mas a la izquierda
Paso 5 Y = 65+7; Ultima operacin de suma
Paso 6 Y = 72 ; Asignacin
1.11 FUNCIONES EN C++
Son secciones de cdigo separadas del programa principal que realizan un servicio
nico y bien definido

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 31 -

Las funciones son parte importante de cualquier lenguaje de programacin


Parmetro.- es un valor enviado a una funcin y se emplea para alterar su operacin
o indicar el alcance de sta.
Prototipo.- es una declaracin de aspecto de una funcin o una anticipacin de una
definicin
Anatoma de una funcin 24
Tipo devuelto

Nombre de la funcin

Cuerpo de la funcin

Lista de parmetros

int SomeFunction(int x, int y)


{
int z= x+y
return z;
}

Instruccin de devolucin

1.11.1. La funcin main()


Todo programa en C++ debe contener la funcin main(). Esta funcin sirve como punto
de entrada al programa. Los programas de Windows escritos en C y C++ disponen de
una funcin de inicio llamado WinMain en lugar de la tradicional main().
Esta forma de main() toma dos parmetros y devuelve un valor entero( se explicar
posteriormente en funciones)

Ejemplo de precedencia de operadores


Paso 1 Y = 2*5*5 + 3*5+7 ; Multiplicacin mas a la izquierda
Paso 2 Y = 10*5 +3*5 +7 ; Multiplicacin mas a la izquerda
Paso 3 Y = 50 + 3*5 +7; Multiplicacin antes que la suma
Paso 4 Y = 50+15 + 7 ; Suma mas a la izquierda
Paso 5 Y = 65+7; Ultima operacin de suma
Paso 6 Y = 72 ; Asignacin
APLICACION DE CONSOLA
Una aplicacin de consola es aquella que se ejecuta dentro de una ventana de lnea de
comandos. Este tipo de ventana recibe diferentes denominaciones: Smbolo del
sistema, Sesin MS-DOS, Ventana de lnea de comandos, etc
Las aplicaciones de consola son muy tiles cuando necesitamos realizar pruebas que
no impliquen el uso del modo grfico del sistema operativo: formularios, controles,
imgenes, etc., ya que consumen menos recursos y su ejecucin es ms veloz.
Creacin de un proyecto de tipo aplicacin de consola
Para crear una aplicacin de consola bsica, despus de iniciar el IDE de VS.NET, y
seleccionar el men para crear un nuevo proyecto, elegiremos Aplicacin de consola

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 32 -

en el panel derecho de la ventana Nuevo proyecto. El resto de opciones de esta


ventana se configuran igual que para una aplicacin con formularios Windows. Ver
Figura

La clase Console
Esta clase se encuentra dentro del espacio de nombres System, y nos proporciona a
travs de sus mtodos, acceso a la consola para mostrar u obtener informacin del
usuario.
Debido a que los miembros de esta clase se encuentran compartidos (shared), no es
necesario crear una instancia previa de la misma en una variable, pudiendo ejecutar
directamente sus mtodos sobre el objeto Console
Escritura de informacin
Para mostrar texto utilizaremos el mtodo WriteLine( ) del objeto Console. Este
mtodo escribe en la lnea actual de la consola el valor que le pasemos como
parmetro, aadiendo automticamente las marcas de retorno de carro y nueva lnea,
por lo que la siguiente escritura se realizar en una nueva lnea.

using System;

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 33 -

namespace ConsoleApplication1
{
class Program
{
static void Main()
{
int n1,n2;
Console.Write("ingrese el primer numero n1 ");
n1 =Convert.ToInt32(Console.ReadLine());
Console.Write("ingrese el segundo numero n2 ");
n2 =Convert.ToInt32(Console.ReadLine());
Console.WriteLine(" La suma de los numeros es {0}", n1 + n2);
Console.WriteLine(" La resta de los numeros es {0}", n1 - n2);
Console.WriteLine(" El producto de los numeros es {0}", n1 * n2);
Console.WriteLine(" La Division real de los numeros es {0}", (float)n1 / (float)n2);
Console.WriteLine("La Division entera de los numeros es {0}", n1 / n2);
Console.WriteLine(" El modulo de de los numeros es {0}", n1 % n2 );
Console.ReadLine();
}
}
}

Write( ) es otro mtodo que nos permite tambin escribir valores en la consola. Su uso
es igual que WriteLine( ), aunque debemos tener en cuenta que Write( ) no separa los
valores a mostrar. Veamos un ejemplo en el Cdigo fuente
Cul es la diferencia entre el Writeline y el Write?
La diferencia es que el Write escribe y no pasa a la lnea siguiente, mientras que
Writeline escribe toda la lnea pasando a la lnea siguiente un ejemplo es el siguiente:
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
string Nombre;
System.Console.WriteLine("Digite Su Nombre: ");
Nombre = System.Console.ReadLine();
System.Console.WriteLine("\n Su nombre es {0}: ", Nombre);
Console.ReadLine();
}
}
}

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 34 -

Entonces esto a nivel de consola quedara as

Mientras que si ocupo el Write seria as:


using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
string Nombre;
System.Console.Write("Digite Su Nombre: ");
Nombre = System.Console.ReadLine();
System.Console.WriteLine("Su nombre es {0}: ", Nombre);
Console.ReadLine();
}
}
}
Entonces esto a nivel de consola quedara as:

Qu son los flujos de salida con formato?


Un flujo con formato no sera ms que el siguiente ejemplo:
using System;
class Example
{
public static void Main()
{
String Nombre= "Benjamin";
byte Edad = 21;
String Apellido = "Zepeda";
Console.WriteLine("Su nombre completo es: {0} {1} y tiene {2} aos ", Nombre,
Apellido, Edad);
Console.ReadLine();
}
}

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 35 -

Entonces esto a nivel de consola quedara as:

*Es de recordar que el orden debe ser el mismo, si le hemos aplicado al corchete {0}
{1} entonces la primer variable ira en el puesto 0, la segunda variable en el puesto 1 y
as sucesivamente.
Entonces:
Posicin: Posicin 0,1,2 y as sucesivamente.
Ancho (Opcional): Mnimo Numero de posiciones para la salida, pero si el ancho se
omite entonces o especificamos un valor mximo entonces el ancho incrementa
automticamente.
Tipo (Opcional): Es uno de los caracteres mostrado en la tabla de abajo.
Decimales (Opcional): Aqu se especifica el nmero de dgitos a mostrar en el caso de
enteros o de decimales en el caso de fraccionarios.
Cadenas con formato numrico estndar
Las cadenas de formato numrico estndar se utilizan para dar formato a tipos
numricos comunes. Una cadena de formato numrico estndar presenta la forma Axx,
dondeA es un carcter alfabtico que recibe el nombre de especificador de
formato y xx es un entero opcional que recibe el nombre de especificador de
precisin. El especificador de precisin est comprendido entre el 0 y el 99 y afecta al
nmero de dgitos del resultado. Cualquier cadena de formato numrico que contenga
ms de un carcter alfabtico, incluido el espacio en blanco, se interpreta como una
cadena de formato numrico personalizado.
En la tabla siguiente se describen los especificadores de formato numrico estndar y
se muestran los resultados de ejemplo generados por cada especificador de

Especific
ador de
formato

Nombre

Descripcin
Resultado: un valor de divisa.

"C" o "c"

Moneda

Ejemplos
123,456 ("C", enUS) -> $123,46
123,456 ("C", frFR) -> 123,46
123,456 ("C", jaJP) -> 123

Compatible con: todos los tipos


numricos.
Especificador de precisin: nmero
de dgitos decimales.
Especificador de precisin
-123,456 ("C3",
predeterminado: definido
en-US) ->
porSystem.Globalization.NumberForm
($123,456)
atInfo.
Ms informacin: Especificador de
-123,456 ("C3",
formato de divisa ("C").
fr-FR) -> -123,456
-123,456 ("C3",
ja-JP) -> -123,456

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

"D" o "d"

"E" o "e"

"F" o "f"

"G" o "g"

- 36 -

Resultado: dgitos enteros con signo


1234 ("D") ->
negativo opcional.
1234
-1234 ("D6") -> Compatible con: solo tipos enteros.
001234
Especificador de precisin: nmero
Decimal mnimo de dgitos.
Especificador de precisin
predeterminado: nmero mnimo de
dgitos necesarios.
Ms informacin: Especificador de
formato decimal ("D").
1052,032911275
Resultado: notacin exponencial.
6 ("E", en-US) ->
1,052033E+003
1052,032911275
Compatible con: todos los tipos
6 ("e", fr-FR) ->
numricos.
1,052033e+003
Exponen
Especificador de precisin: nmero 1052,0329112756
cial
de dgitos decimales.
("e2", en-US) -> (cientfico)
1,05e+003
Especificador de precisin
1052,0329112756
predeterminado: 6.
("E2", fr_FR) -> 1,05E+003
Ms informacin: Especificador de
formato exponencial ("E").
Resultado: dgitos integrales y
1234,567 ("F",
decimales con signo negativo
en-US) -> 1234,57
opcional.
Compatible con: todos los tipos
1234,567 ("F",
numricos.
de-DE) -> 1234,57
Especificador de precisin: nmero
1234 ("F1", ende dgitos decimales.
US) -> 1234,0
Especificador de precisin
Punto fijo predeterminado: definido
1234 ("F1", deporSystem.Globalization.NumberForm DE) -> 1234,0
atInfo.
-1234,56 ("F4",
Ms informacin: Especificador de
en-US) -> formato de punto fijo ("F").
1234,5600
-1234,56 ("F4",
de-DE) -> 1234,5600
Resultado: notacin de punto fijo o
-123,456 ("G",
cientfica, la que sea ms compacta.
en-US) -> -123,456
Compatible con: todos los tipos
123,456 ("G", svnumricos.
SE) -> -123,456
General
Especificador de precisin: nmero
123,4546 ("G4",
de dgitos significativos.
en-US) -> 123,5
Especificador de precisin
123,4546 ("G4",
predeterminado: depende del tipo
sv-SE) -> 123,5

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 37 -

numrico.
Ms informacin: Especificador de
formato general ("G").

"N" o "n"

Nmero

Resultado: dgitos integrales y


decimales, separadores de grupos y
un separador decimal con signo
negativo opcional.
Compatible con: todos los tipos
numricos.
Especificador de precisin: nmero
deseado de decimales.
Especificador de precisin
predeterminado: definido
porSystem.Globalization.NumberForm
atInfo.
Ms informacin: Especificador de
formato numrico ("N").

"P" o "p"

Percent

Resultado: nmero multiplicado por


100 y mostrado con un smbolo de
porcentaje.
Compatible con: todos los tipos
numricos.
Especificador de precisin: nmero
deseado de decimales.
Especificador de precisin
predeterminado: definido
porSystem.Globalization.NumberForm
atInfo.
Ms informacin: Especificador de
formato de porcentaje ("P").
Resultado: cadena que puede
aplicar acciones de ida y vuelta
(round-trip) a un nmero idntico.

"R" o "r"

Accin
de ida y
vuelta

Compatible
con: Single, Double y BigInteger.
Especificador de precisin: se
omite.
Ms informacin: Especificador de
formato de operacin de ida y vuelta
("R").

-1.234567890e25 ("G", en-US) -> 1,23456789E-25


-1,234567890e25 ("G", sv-SE) -> 1,23456789E-25
1234,567 ("N",
en-US) -> 1,234,57
1234,567 ("N",
ru-RU) -> 1 234,57
1234 ("N1", enUS) -> 1.234,0
1234 ("N1", ruRU) -> 1 234,0
-1234,56 ("N3",
en-US) -> 1,234,560
-1234,56 ("N3",
ru-RU) -> -1
234,560
1 ("P", en-US) ->
100,00 %
1 ("P", fr-FR) ->
100,00 %
-0,39678 ("P1",
en-US) -> -39,7 %
-0,39678 ("P1",
fr-FR) -> -39,7 %

123456789,1234
5678 ("R") ->
123456789,123456
78
1234567890,12345
678 ("R") -> 1234567890,12345
67

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

Resultado: cadena hexadecimal.


Compatible con: solo tipos enteros.
Hexadeci
Especificador de precisin: nmero
"X" o "x"
mal
de dgitos en la cadena de resultado.
Ms informacin: Especificador de
formato hexadecimal ("X").
Especific
Cualquier
Resultado:
ador
otro carcter
Produce FormatException en tiempo
desconocid
nico
de ejecucin.
o
Ejemplo de Cadenas con formato numrico estndar

- 38 -

255 ("X") -> FF


-1 ("x") -> ff
255 ("x4") -> 00ff
-1 ("X4") -> 00FF

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Console.WriteLine("FORMATOS EN MODO CONSOLA ");
Console.WriteLine(" Moneda {0:9:C2}", 4.5);
Console.WriteLine("Moneda {0:9:C2}", -4.5);
Console.WriteLine("Enteros {0:D5}", 45);
Console.WriteLine("Enteros {0:5:D}", 45);
Console.WriteLine("Cientifico {0:E}", 450000);
Console.WriteLine("Coma Fija{0:F2}", 45);
Console.WriteLine("Coma fija {0:F0}", 45);
Console.WriteLine("Coma fija {0,8:f2}", 45);
Console.WriteLine("Coma fija {0,8:F2}", 145.3);
Console.WriteLine(" General {0:G}", 4, 5);
Console.WriteLine("Numerico {0:N}", 4500000);
Console.WriteLine(" %{0:P}", 1.2345);
Console.WriteLine(" hexadecimal{0:X}", 450);
Console.ReadLine();

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 39 -

}
}
}
Formatos compuestos
La caracterstica de formato compuesto de .NET Framework toma una lista de objetos y
una cadena de formato compuesto como entrada. Una cadena de formato compuesto
est formada por texto fijo combinado con marcadores de posicin indizados, que
reciben el nombre de elementos de formato, y que se corresponden con los objetos de
la lista. La operacin de formato genera una cadena de resultado compuesta por el
texto fijo original combinado con la representacin de cadena de los objetos de la lista.
Sintaxis de elemento de formato
Cada elemento de formato presenta la siguiente sintaxis, formada por los siguientes
componentes:
{ index[,alignment][:formatString]}
Las llaves ("{" y "}") son necesarias.
Index (Componente)
El componente index obligatorio, denominado tambin especificador de parmetros, es
un nmero que empieza por 0, que identifica un elemento correspondiente de la lista de
objetos. O sea, el elemento de formato cuyo especificador de parmetro es 0 da
formato al primer objeto de la lista, el elemento de formato cuyo especificador de
parmetro es 1 da formato al segundo objeto de la lista, etc.
Los elementos de formato mltiple se pueden referir al mismo elemento de la lista de
objetos mediante la especificacin del mismo especificador de parmetro. Por ejemplo,
se puede dar formato al mismo valor numrico en formato hexadecimal, cientfico y de
nmero mediante la especificacin de una cadena de formato compuesto como sta:
"{0:X} {0:E} {0:N}".
Cada elemento de formato puede hacer referencia a cualquier objeto de la lista. Por
ejemplo, si existen tres objetos, se puede dar formato al segundo, primero y tercer
objeto mediante la especificacin de una cadena de formato compuesto como sta: "{1}
{0} {2}". Un objeto al que no hace referencia ningn elemento de formato se omite.Se
produce una excepcin en tiempo de ejecucin si un especificador de parmetro
designa un elemento fuera de los lmites de la lista de objetos.
Alignment (Componente)
El componente opcional alignment es un entero con signo que indica el ancho de
campo con formato preferido. Si el valor de alignment es menor que la longitud de la
cadena con formato, se omite alignment y se utiliza la longitud de la cadena con
formato como el ancho de campo. Los datos con formato del campo estn alineados a
la derecha si alignment es positivo y, a la izquierda, si alignment es negativo. Si hace
falta relleno, se utiliza un espacio en blanco. Si se especifica alignment, es necesaria la
coma.

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 40 -

Format String (Componente)


El componente formatString opcional es una cadena de formato adecuada para el tipo
de objeto al que se da formato.
Llaves de escape
Las llaves de apertura y de cierre se interpretan como el inicio y el final de un elemento
de formato. Por lo tanto, debe utilizar una secuencia de escape para que se muestre
una llave de apertura o de cierre literal. Especifique dos llaves de apertura ("{{") en el
texto fijo para que se muestre una llave de apertura ("{"), o dos llaves de cierre ("}}")
para que se muestre una llave de cierre ("}"). Las llaves de un elemento de formato se
interpretan secuencialmente, en el orden en que se encuentran. No se admite la
interpretacin de llaves anidadas.
Cadenas con formato numrico personalizado
Puede crear una cadena de formato numrico personalizado, formada por uno o varios
especificadores numricos personalizados, para definir cmo debe darse formato a los
datos numricos. Una cadena de formato numrico personalizado es cualquier cadena
que no sea una cadena de formato numrico estndar.

Especificador
Nombre
de formato

"0"

"#"

"."

","

Descripcin

Reemplaza el cero con el dgito


Marcador de correspondiente si hay alguno
posicin cero presente; de lo contrario, el cero
aparece en la cadena de resultado.
Reemplaza el smbolo "#" por el
Marcador de dgito correspondiente si hay
posicin de
alguno presente; de lo contrario, no
dgito.
aparece ningn dgito en la cadena
de resultado.
Determina la ubicacin del
Separador
separador decimal en la cadena de
decimal
resultado.
Acta como separador de grupos y
como especificador de escala
numrica. Como separador de
Separador de
grupos, inserta un carcter
grupos y
separador de grupos adaptado
escala
entre cada grupo. Como
numrica
especificador de escala numrica,
divide un nmero por 1000 por
cada coma especificada.

Ejemplos
1234.5678
("00000") ->
01235

1234.5678
("#####") -> 1235

0.45678 ("0.00",
en-US) -> 0.46

Especificador de
separador de
grupos:

2147483647
("##,#", en-US) ->
2,147,483,647

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

"%"

Marcador de
posicin de
porcentaje.

Multiplica un nmero por 100 e


inserta un smbolo de porcentaje
adaptado en la cadena de
resultado.

- 41 -

0.3697 ("%#0.00",
en-US) -> %36.97
0.3697 ("##.0 %",
el-GR) -> 37,0 %

""

"E0"

'string'

Otros

Multiplica un nmero por 1000 e


inserta un smbolo de "por mil"
adaptado en la cadena de
resultado.
Si va seguido al menos de un 0
(cero), da formato al resultado
usando notacin exponencial. El
modelo de maysculas de "E" o "e"
indica el modelo de maysculas
del smbolo de exponente en la
cadena de resultado. El nmero de
Notacin
ceros que siguen al carcter "E" o
exponencial "e" determina el nmero mnimo de
dgitos en el exponente. Un signo
ms (+) indica que un carcter de
signo precede siempre al
exponente. Un signo menos (-)
indica que un carcter de signo
solo precede a los exponentes
negativos.
Hace que el carcter siguiente se
Carcter de
interprete como un literal en lugar
escape
de como un especificador de
formato personalizado.
Delimitador
Indica que los caracteres que
de cadena
encierra se deben copiar en la
literal
cadena de resultado sin modificar.
Define secciones con cadenas de
Separador de formato diferentes para los
secciones
nmeros positivos, negativos y
cero.
Todos los
El carcter se copia en la cadena
dems
de resultado sin modificar.
caracteres
Marcador de
posicin de
"por mil"

0.03697
("#0.00", enUS) -> 36.97

987654 ("#0.0e0")
-> 98.8e4

987654
("\###00\#") ->
#987654#
68 ("# ' grados'") > 68 grados
12.345
("#0.0#;(#0.0#);\0-") -> 12.35
68 ("# ") -> 68

en las secciones siguientes se proporciona informacin detallada sobre cada uno de los
especificadores de formato numrico personalizado.
Ejemplo de El especificador personalizado "0"
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()

y #

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 42 -

{Double value;
value = 1.2;
Console.WriteLine(value.ToString("0.00"));
//' Displays 1.20
Console.WriteLine(value.ToString("00.00"));
//' Displays 01.20
Console.WriteLine(value.ToString("00,00"));
//' Displays 01,20
Console.WriteLine(value.ToString(" #0.000"));
value = 0.086;
Console.WriteLine(value.ToString("#0.##%"));
//' Displays 8.6%
value = 86000;
Console.WriteLine(value.ToString("0.###E+0"));
//' Displays 8.6E+4
value = 1234567890;
Console.WriteLine(value.ToString("#,#")) ;
// ' Displays 1,234,567,890
Console.WriteLine(value.ToString("#,##0,,")) ; // ' Displays 1,235
Console.ReadLine();
}
}
}

Tambin puede aplicar Format


using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{Double value;
value = 1.234;
Console.WriteLine("{0}", value.ToString("0.00"));
Console.WriteLine("{0}", value.ToString( "00.00"));
Console.WriteLine("{0}", value.ToString("00,00").PadRight(10));
Console.WriteLine("{0}", value.ToString("00,00").PadLeft(10));
Console.ReadLine();

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 43 -

}
}
}

Escritura de mltiples valores en la misma lnea


Al utilizar WriteLine( ) o Write( ) ocurrir con frecuencia que en el texto a mostrar
debamos incluir valores que se encuentran en variables o expresiones, por lo que
tendremos que realizar una combinacin e la cadena de texto principal con los dems
elementos para obtener la cadena final que mostraremos al usuario. Esto lo podemos
hacer empleando dos tcnicas:
Concatenacin.
Concatenando a la cadena principal las variables que contienen los valores a mostrar.
Ver Cdigo

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
//' concatenar mltiples valores ' declarar variables
String Nombre;
int Nota;
//' asignar valor a las variables
Nombre = "Juan";
Nota = 17;
Console.WriteLine("El alumno " + Nombre + " Tiene " + Nota + " de nota");
Console.ReadLine();
}
}
}
Parmetros sustituibles.
Pasando como primer parmetro la cadena a mostrar, y aadiendo tantos parmetros
adicionales como valores debamos mostrar en la cadena principal. En la cadena
principal indicaremos el lugar en donde visualizaremos los parmetros poniendo su
nmero entre los smbolos de llave { }. El Cdigo fuente muestra la misma situacin
del ejemplo anterior pero utilizando esta tcnica. El resultado final en la
consola es el mismo que el del ejemplo anterior.

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 44 -

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
//' concatenar mltiples valores ' declarar variables
String Nombre;
int Nota;
//' asignar valor a las variables
Nombre = "Juan";
Nota = 17;
Console.WriteLine("El alumno {0} Tiene {1} de nota", Nombre, Nota);
Console.ReadLine();
}
}
}
Como habr comprobado el lector, los parmetros sustituibles comienzan a numerarse
por cero, no estando obligados a mostrarlos en el mismo orden en el que los hemos
situado en la llamada al mtodo. El Cdigo fuente 45 muestra dos ejemplos de
sustitucin de parmetros, uno de ellos con el mismo orden en el que se han situado
en WriteLine( ), y otro con un orden distinto.

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
//' concatenar mltiples valores ' declarar variables
String Nombre;
int Nota;
//' asignar valor a las variables
Nombre = "Juan";
Nota = 17;
Console.WriteLine("El alumno {1} Tiene {0} de nota", Nota,Nombre);
Console.ReadLine();

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 45 -

}
}
}

Al ejecutar este fuente, la consola mostrar el aspecto de la Figura 164.

Lectura de informacin
Para obtener el texto escrito por el usuario en la lnea actual de la consola y hasta la
pulsacin de [INTRO] podemos utilizar el mtodo ReadLine( ) del objeto Console.
El Cdigo fuente 46 muestra como volcamos a una variable el contenido de la lnea
escrita por el usuario y posteriormente exponemos su contenido, tambin a travs de
la consola.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
//
' declaramos una variable para volcar el contenido
//' de una lnea de la consola
String LineaTexto;
Console.Write("Ingrese un texto");
LineaTexto = Console.ReadLine(); //' el texto se pasa a la variable
//' ahora mostramos lo que hemos escrito
Console.WriteLine();
Console.WriteLine("El usuario ha escrito la siguiente lnea:");
Console.WriteLine(LineaTexto);
//' aqu evitamos cerrar la consola, ' as podemos ver mejor el resultado
Console.ReadLine();
}
}
}

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 46 -

Read( ) es otro mtodo del objeto Console que permite tambin la lectura del
dispositivo de entrada de la consola, pero en este caso devuelve el cdigo de una sola
tecla pulsada por el usuario. Para ilustrar el uso de este mtodo tenemos el ejemplo del
Cdigo fuente 47, en el que despus de pulsar varias teclas, nos introducimos en un
bucle que va extrayendo cada uno de sus cdigos, que volvemos a
transformar en el carcter correspondiente a la tecla pulsada.
Cul es la diferencia entre el Read y el Readline?
Que el Readline lee toda una lnea de texto mientras para el Read podemos usar
conversiones para que leamos por ejemplo son un carcter.

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
int CodTecla;
Object NombreTecla;
Console.WriteLine("Pulsar varerias teclas");
Console.WriteLine();
while(true)
{ //' tomar los cdigos de las teclas uno a uno
CodTecla = Console.Read();
//' si se ha pulsado intro, salir
if (CodTecla == 13)
{
break;
}
Console.WriteLine("Cdigo de tecla pulsada: {0}", CodTecla);
//' convertir el cdigo al caracter de la tecla
NombreTecla = CodTecla;

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 47 -

Console.WriteLine("Tecla pulsada: {0}", NombreTecla);


}
Console.WriteLine("Ejemplo terminado, pulse intro");
Console.ReadLine();
Console.ReadLine();
}
}
}

Ayuda de visual basic


Para tener ayuda consulte en internet en la ayuda MSDN de visual estudio 2010

Ejecucin

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 48 -

1.15 PROBLEMAS RESUELTOS


Problema C101 Escriba el programa hola mundo en visual basic 2010

Tipo de proyecto Visual c# Aplicacin de consola


Nombre del proyecto ConsoleApplication1
Escriba el siguiente codigo
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Console.WriteLine(" INGENIERIA INDUSTRIAL 2014");
Console.ReadLine();
}
}
}
Ejecucin

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
frmula Area= pi*radio2

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 49 -

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
float radio, Area;
Console.Write(" Ingrese radio del circulo ");
radio = Convert.ToSingle(Console.ReadLine());
Area = Convert.ToSingle(Math.PI * radio * radio);
Console.Write(" El Area es {0} ", Area);
Console.ReadLine();
}
}
}
Ejecute con F5
Puede capturar la pantalla de salida con alt+imp pantallla y despues control+ v

Problema C103 . Calcular el area del tringulo ( 2 entradas y una salida)


using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
float base1, Altura, Area ;
Console.Write(" Ingrese base del triangulo ");
base1 =Convert.ToSingle(Console.ReadLine());
Console.Write(" Ingrese altura del triangulo ");
Altura =Convert.ToSingle(Console.ReadLine());
Area = base1 * Altura / 2;
Console.Write(" El Area es {0} ", Area);
Console.ReadLine();
}
}
}
Salida

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 50 -

Problema C104 Ingreso de una variable tipo cadena . Ingrese su nombre y la


computadora que le salude
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
String nombre;
Console.Write(" Ingrese su nombre ");
nombre = Console.ReadLine();
Console.Write(" Hola {0} ", nombre);
Console.ReadLine();
}
}
}

Salida

Problema C105 Precedencia de operaciones


using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
float x = 10, y = 20, z;
z =Convert.ToSingle(x + y / 2);
Console.WriteLine("caso 1 valor de z= {0} ", z);
z =Convert.ToSingle((x + y) / 2);
Console.WriteLine("caso 2 valor de z = {0} ", z);
Console.ReadLine();

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 51 -

}
}
}
Salida

Problema C106 Ejemplo de salida con formato y espacios

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
int x = 10;
double y = 3.1416;
Console.WriteLine("X sin formato= {0} ", x);
Console.WriteLine("X con 10 espacios izquierdo = {0,10} ", x);
Console.WriteLine("X con 10 espacios derecho = {0,-10} ", x);
Console.WriteLine("Y sin formato {0} ", y);
Console.ReadLine();
}
}
}
Problema C107. Ejemplo df ,caracteres de escape
Para escribir caracteres de escape
vbCrLf
retorno de carro y salto de linea
vbCr
retorno de carro
vbTab
tabulador
tambin se puede escribir como codio ASCCI por ejmeplo para el tabulador de debe
escribir chr(9)

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 52 -

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Console.WriteLine(" Hola \n Hola \t \"Hola \"
Console.ReadLine();
}
}
}

\b Hola ");

Problema C108. Ejemplo de readkey


using System;
class Example
{
public static void Main()
{
ConsoleKeyInfo cki;
// Prevent example from ending if CTL+C is pressed.
Console.TreatControlCAsInput = true;
Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console
key.");
Console.WriteLine("Press the Escape (Esc) key to quit: \n");
do
{
cki = Console.ReadKey();
Console.Write(" --- You pressed ");
if((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+");
if((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+");
if((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+");
Console.WriteLine(cki.Key.ToString());
} while (cki.Key != ConsoleKey.Escape);
}
}

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 53 -

Problema C109 Ejemplo de Especificador de formato de punto fijo ("F")

using System;
using System.Globalization;
class Example
{
public static void Main()
{
int integerNumber;
integerNumber = 17843;
Console.WriteLine(integerNumber.ToString("F", CultureInfo.InvariantCulture));
//' Displays 17843.00
integerNumber = -29541;
Console.WriteLine(integerNumber.ToString("F3", CultureInfo.InvariantCulture));
//' Displays -29541.000
double doubleNumber;
doubleNumber = 18934.1879;
Console.WriteLine(doubleNumber.ToString("F", CultureInfo.InvariantCulture));
//' Displays 18934.19
Console.WriteLine(doubleNumber.ToString("F0", CultureInfo.InvariantCulture));
//' Displays 18934
doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F1", CultureInfo.InvariantCulture));
//' Displays -1898300.2
Console.WriteLine(doubleNumber.ToString("F3",
CultureInfo.CreateSpecificCulture("es-ES")));
//' Displays -1898300,199
Console.ReadLine();
}
}

Lenguaje de programacin 2013 A \1.Fundamentos \ Ismael Vliz Vilca

- 54 -

Problema C110 Ejemplo de Especificador de formato de punto fijo ("#")

using System;
using System.Globalization;
class Example
{
public static void Main()
{
Double value;
value = 1.2;
Console.WriteLine(value.ToString("#.##", CultureInfo.InvariantCulture));
//' Displays 1.2
value = 123;
Console.WriteLine(value.ToString("#####"));
//' Displays 123
value = 123456;
Console.WriteLine(value.ToString("[##-##-##]"));
//' Displays [12-34-56]
value = 1234567890;
Console.WriteLine(value.ToString("#"));
//' Displays 1234567890
Console.WriteLine(value.ToString("(###) ###-####"));
//' Displays (123) 456-7890
Console.ReadLine();
}
}

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 funcin 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 programacin visual