PROGRAMACION VISUAL BASIC
description
Transcript of PROGRAMACION VISUAL BASIC
2014
By HG&HM
Programación
en
PROGRAMACION
[2] CEL: 990261494 - RPM: #966864606
VISUAL C# C# es un lenguaje diseñado para proporcionar combinación óptima entre sencillez, claridad y rendimientos, es el lenguaje en el que se han inscrito los servicios de la plataforma de .NET, los rasgos clave del lenguaje c# se pueden resumir en los Siguientes puntos:
C# permite la llamada a librerías nativas del API de Windows, llamada a componentes COM, y el acceso a bajo nivel si es necesario. Además, los programas y componentes diseñados en C# se integran perfectamente con los realizados en cualquier otro lenguaje del entorno .NET.
C# es el un lenguaje fuertemente orientado a objetos que trabaja en un entorno administrado, es decir controlado por el CLR, con seguridad de tipos. Ser fuertemente tipificado implica que todos los datos utilizados deben tener sus tipos declarados explícitamente, lo que predetermina como elegir las operaciones y facilita al compilador la detección de errores en las mismas. la seguridad de tipos proporciona programas robustos, al evitar la ejecución de códigos incorrecto, como referencias no validas, conversiones que desbordan la variable y objeto destino, etc.
Utiliza los denominados Espacios Calificados o Espacios Nombres (Namespaces) para clasificar tipos, que pueden ser otros espacios de nombres, estructuras, interfaces, enumeraciones, delegados o clases y agrupar los que se encuentran lógicamente relacionados.
PARTES DE UN PROGRAMA
1. Modificadores: Son nombres que usamos para distinguir los elementos de un
programa.
a. Espacio de un nombre
namespace EJM01 { //Cuerpo } Namespace : Palabra reservada EJM01 : Nombre identificador { : Inicio del cuerpo } : Fin del cuerpo
b. Clase
class Progrm { } class : Palabra reservada Progrm : Nombre identificador
By HG&HM
[3] CEL: 990261494 - RPM: #966864606
{ : Inicio de la clase } : Fin de la clase
c. Variable, arrays
double var1 int var2 int [ , ] matriz= new int [ n,2 ] double [ ] vector= new doublé [ n ] string nombre double : Palabra reservada(Doble precisión – Numero Real) Int : Palabra reservada (Numero entero) String : Cadenas
2. Método: Es la agrupación de un conjuntos de instrucciones bajo un mismo nombre.
Sintaxis: <Modificador> <tipo de valor de retorno> <nombres> <parámetros> { //cuerpo }
a. Modificador: Indica la visibilidad del método static Visible dentro de una misma clase public No visible desde la clase que lo contiene private
b. Tipo de valor de retorno: Es el tipo de parámetro aceptado int valor entero double Valor real void Sin valor de retorno string, etc
c. Nombre: Identificador que engloba la agrupación de órdenes.
d. Parámetros: Son argumentos que se brinda al método. Ejemplo: Método sin datos de entrada static void metodo01() { // cuerpo del método } Método con datos de entrada static void metodo02(double var1, int var2) { // cuerpo del método }
PROGRAMACION
[4] CEL: 990261494 - RPM: #966864606
CREACION DE PROGRAMAS
Las etapas clásicas en un lenguaje tradicional son: edición, compilación, enlace, ejecución, y depuración de un programa. Las herramientas fundamentales empleadas en el proceso de creación de programas son por tanto editor, compilador, depurador y naturalmente el sistema operativo. Etapas para crear un programa La creación de un programa debe comenzar con la escritura del código fuente correspondiente a la aplicación. Cada programa en C# debe tener al menos una clase. Un aplicación sencilla seria el popular “Hola mundo” de Stroustrup.
class Program { public static void Main(string[] args) { Console.WriteLine("Hola Mundo!"); } }
(*) Errores típicos: Palabras mal Escritas: C# es sensible a las letras mayúsculas y minúsculas, el siguiente programa nos daría un error
class Program { public static void main(string[] args) { Console.WriteLine("Hola Mundo!"); Console.ReadKey(true); } }
Pues Main debe escribirse con primera Letra en mayúscula. Palabras reservadas Las palabras Reservadas o palabras clave (keywords) son palabras que tiene determinado significado para el compilador y no pueden ser utilizadas para otros fines, por ejemplo la palabra “while”, significa que habrá que evaluar la expresión que viene ejecutando y en función del valor de la misma se ejecutaran o no las sentencias, otras palabras reservadas son:
abstract enum long stackalloc
as event namespace static
base explicit new string
bool extern null struct
break false object switch
byte finally operator this
case Fixed out throw
catch float override true
By HG&HM
[5] CEL: 990261494 - RPM: #966864606
char for params try
checked foreach private typeof
class goto protected uint
const if public ulong
continue implicit readonly unchecked
decimal in ref unsafe
default int return ushort
delegate interface sbyte using
do internal sealed virtual
double is short void
else lock sizeof while
CONCEPTOS FUNDAMENTALES
Sentencia Es la representación de una acción o una secuencia de acciones. En general, las sentencias se clasifican en ejecutables, por ejemplo las operaciones de cálculo y entrada salida y datos, y no ejecutables, por ejemplo las declaraciones que definen el significado y propósito de los identificadores, cada sentencia simple termina con el punto y coma (;). z=15; Sentencia de asignación
Console.WriteLine("Hola Mundo!"); Sentencia de visualización
if (z >= 0) Console.WriteLine("Positivo"); Els Console.WriteLine("Negativo");
Sentencia de estructuración
Bloque Es la estructura que agrupa sentencias, comienza con una llave de apertura “{“ y termina con una llave de cierre “}”. Un bloque puede estar dentro de otro y se dice que esta anidado. { z=15; if (z >= 0) { Console.WriteLine("Positivo"); } else { Console.WriteLine("Negativo"); } } TIPO Existen dos tipos predefinidos y definidos por el usuario.
PROGRAMACION
[6] CEL: 990261494 - RPM: #966864606
Tipos predefinidos en c# se pueden clasificar en dos categorías, básicos simple y de referencia, a la que pertenece los tipos array, object y string. La diferencia consiste en que una variable o campo de datos de un tipo valor almacena el propio valor, mientras que el de tipo referencia almacena la referencia a la posición dela memoria donde se encuentra almacenado el objeto o la cadena. Tipos definidos por el usuario, hay que tener en cuenta que en realidad, la base de un programa en C# es la construcción de nuevos tipos a partir de otros existentes. Cada nuevo tipo contendrá un conjunto de datos y rutinas.
DATOS PRIMITIVOS
Nombre corto Clase .NET Tipo Ancho Intervalo (bits)
byte Byte
Entero sin signo 8 0 a 250
sbyte SByte
Entero con signo 8 -128 a 127
int Int32
Entero con signo 32 -2.147.483.648 a 2.147.483.647
uint UInt32
Entero sin signo 32 0 a 4294967295
short Int16
Entero con signo 16 -32.768 a 32.767
ushort UInt16
Entero sin signo 16 0 a 65535
long Int64
Entero con signo 64 -922337203685477508 a 922337203685477507
ulong UInt64
Entero sin signo 64 0 a 18446744073709551615
float Single
Tipo de punto flotante de precisión simple
32 -3,402823e38 a 3,402823e38
double Double
Tipo de punto flotante de precisión doble
64 -1,79769313486232e308 a 1,79769313486232e308
char Char
Un carácter Unicode 16 Símbolos Unicode utilizados en el texto
bool Boolean
Tipo Boolean lógico 8 True o false
object Object
Tipo base de todos los otros tipos
string String
Una secuencia de caracteres
decimal Decimal
Tipo preciso fraccionario o integral, que puede representar números decimales con 29 dígitos significativos
128 ±1.0 × 10e−28 a ±7.9 × 10e28
By HG&HM
[7] CEL: 990261494 - RPM: #966864606
OPERADORES
Operadores principales
Operadores unarios
Expresión Descripción
Expresión Descripción
x.y Acceso a miembros
+x Identidad
f(x) Invocación de método y delegado
-x Negación
a[x] Acceso a matriz e indizador
!x Negación lógica
x++ Incremento postfijo
~x Negación bit a bit
x-- Decremento postfijo
++x Incremento prefijo
new T(...) Creación de objeto y delegado
--x Decremento prefijo
new T(...){...}
Creación de objetos con inicializador. Vea Inicializadores de objeto y de colección (Guía de programación de C#).
(T)x
Convertir explícitamente x al tipo T
new {...} Inicializador de objeto anónimo. Vea Tipos anónimos (Guía de programación de C#).
new T[...] Creación de matrices. Vea Matrices (Guía de programación de C#).
Operadores de multiplicación
typeof(T) Obtener el objeto System.Type para T
Expresión Descripción
checked(x) Evaluar expresión en contexto comprobado
* Multiplicación
unchecked(x)
Evaluar expresión en contexto no comprobado
/ División
default (T) Obtener valor predeterminado de tipo T
% Resto
delegate {} Función anónima (método anónimo)
Operadores aditivos
Operadores relacionales y de tipo
Expresión Descripción
Expresión Descripción
x + y
Suma, concatenación de cadenas.
x < y Menor que
x - y
Resta, eliminación de delegados
x > y Mayor que
Operadores de desplazamiento
x <= y Menor o igual que
Expresión Descripción
x >= y Mayor o igual que
x << y
Desplazamiento a la izquierda
x is T
Devuelve true si x es T, de lo contrario devuelve false
x >> y
Desplazamiento a la derecha
Operadores de igualdad
x as T
Devuelve x escrito como T, o null si x no es T
Expresión Descripción
x == y Igual
x != y No igual
Operadores lógicos,
PROGRAMACION
[8] CEL: 990261494 - RPM: #966864606
condicionales y null
Categoría Expresión Descripción
AND lógico x & y AND bit a bit entero, AND lógico booleano
XOR lógico x ^ y XOR bit a bit entero, XOR lógico booleano
OR lógico x | y OR bit a bit entero, OR lógico booleano
AND condicional
x && y Sólo evalúa y si x es true
OR condicional
x || y Sólo evalúa y si x es false
Uso combinado de Null
x ?? y
Se evalúa como y si x es null, de lo contrario se evalúa como x
Condicional x ?: y : z Se evalúa como y si x es true, como z si x es false
CLASE Math.
INVOCACION SIGNIFICADO
Math.Abs Devuelve el valor absoluto de un número.
Math.Acos Devuelve el ángulo cuyo coseno es el número especificado.
Math.Asin Devuelve el ángulo cuyo seno es el número especificado.
Math.Atan Devuelve el ángulo cuya tangente corresponde al número especificado.
Math.Atan2 Devuelve el ángulo cuya tangente es el cociente de dos números especificados.
Math.BigMul Devuelve el producto completo de dos números de 32 bits.
Math.Ceiling Devuelve el valor entero más pequeño que es mayor o igual Decimal especificado o Double.
Math.Cos Devuelve el coseno del ángulo especificado.
Math.Cosh Devuelve el coseno hiperbólico del ángulo especificado.
Math.DivRem Devuelve el cociente de dos de 32 bits o de enteros con signo de 64 bits, y también devuelve el resto de un parámetro de salida.
Math.Exp Devuelve e (base de los logaritmos naturales) se produce a la potencia especificada.
Math.Floor Devuelve el entero más grande que sea menor o igual que Decimal o el número especificado de Double.
Math.IEEERemainder Devuelve el resto que es el resultado de la división de un número especificado por otro número especificado.
Math.Log Devuelve el logaritmo natural (de e base) de un número especificado o el logaritmo de un número especificado en una base especificada.
Math.Log10 Devuelve el logaritmo en base 10 de un número especificado.
Math.Max Devuelve el mayor de dos números.
Math.Min Devuelve el menor de dos números.
Math.Pow Devuelve un número especificado elevado a la potencia especificada.
Math.Round Devuelve un valor de Decimal o de Double redondeado al valor entero más cercano o a un número especificado de dígitos fraccionarios.
Math.Sign Devuelve un valor Integer que indica el signo de un número.
Math.Sin Devuelve el seno del ángulo especificado.
Math.Sinh Devuelve el seno hiperbólico del ángulo especificado.
Math.Sqrt Devuelve la raíz cuadrada de un número especificado.
Math.Tan Devuelve la tangente del ángulo especificado.
Math.Tanh Devuelve la tangente hiperbólica del ángulo especificado.
Math.Truncate Calcula la parte entera de Decimal o un número especificado de Double.
Math.E Base de logaritmo natural
Math.PI Número Π
By HG&HM
[9] CEL: 990261494 - RPM: #966864606
Ejemplo de uso
Función/Constantes Resultado Exemplo
Abs(x) Fornece Valor absoluto de x
Abs(4.5) = 4.5;
Abs(-4.5) = 4.5;
Ceiling(x) Arredonda x para cima Ceiling(4.1) = 5;
Ceiling(-4.1) = -4;
Cos(x) Obtén cosseno de x Cos(2.0) = -0.4161......
Sin(x) Obtén seno de x Sin(2) = 0.909297...
Tan(x) Obtén Tangente de x Tan(1.5) =14.1014...
PI Obtén valor de PI PI = 3.141516171819...
E Obtén valor de la constante E
E = 2.7182818284590451
Exp(x) Obtém o exponencial (e elevado na x)
Exp(5.0) =54.59...
Floor(x) Arredonda o valor de x Floor(2.9) = 2;
Floor(-2.9)) = -3;
Log(x) Calcula el logaritmo de x en base natural e
Log(3.0) = 1.098612...
Log10(x) Calcula el logaritmo de x en base 10
Log10(3.0) = 0.47712...
Max(x,y) Obtén el mayor valor entre dos
Max(2.46,2.56) = 2.56;
Max(-2.46,-2.56) = 2.46;
Min(x,y) Obtén el menor valor entre dos
Min(1.92,1.89) = 1.89;
Min(-1.92,-1.89) = 1.92;
Pow(x,y) Obtén el valor de x elevado a la y
Pow(2,4) = 16
Round(x,y) Redondea x a y decimales
Round(7.6758549,4) = 7.6759
Sqrt(x) Obtén la raiz cuadrada de x
Sqrt(169) = 13
SINTAXIS DE DECICIONES Y BUCLES
SENTENCIA if if (<condición>) { <sentenciasCondTrue> }
SENTENCIA if-else
if (<condición>) { <sentenciasCondTrue> }
else { <sentenciasCondFalse> }
PROGRAMACION
[10] CEL: 990261494 - RPM: #966864606
SENTENCIA if e if – else (ANIDADOS)
if (<condición>) {<sentenciasCondTrue>}
else { if (<condición>)
{<sentenciasCondTrue> } else { <sentenciasCondFalse> }
}
SENTENCIA switch
switch (<expressión>) { case Opc1 : [<sentencias-1>] break; [case Opc2 : [<sentencias-2>] break; …
default: <sentencias-def> break;] }
SENTENCIA while while (condición) { <instrucción(es); > }
SENTENCIA for for (inicialización; condición; incremento) { <instrucción(es); > }
SENTENCIA do-while do { <instrucción(es); > } while (condición);
SENTENCIA foreach
foreach(tipo variable in arreglo) { <instrucción(es); > }
By HG&HM
[11] CEL: 990261494 - RPM: #966864606
SENTENCIA break. En casos anteriores se usó la sentencia break, con la sentencia switch para abandonar dicha sentencia, esta sentencia se usa también con las repetitivas while, do while y for para romper o salir de un bucle cuando se produce una situación especial using System; namespace b_con { class Program { public static void Main(string[] args) { Console.WriteLine("Hello World!"); for (int n = 0; n < 100; n++) { Console.WriteLine(n+" "); if (n==50) { break; } } Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } } }
SENTENCIA continue Esta sentencia es similar a break, pero solo se puede usar en bucle y además , no salta fuera del bucle, salta sobre las sentencias restantes.
PROGRAMACION
[12] CEL: 990261494 - RPM: #966864606
EJMPLOS
1) Hallar la suma de dos números
namespace ejemplo01 { class Program { public static void Main(string[] args) { double n1, n2, s; System.Console.WriteLine("Numero 1"); n1=double.Parse(System.Console.ReadLine()); System.Console.WriteLine("Numero 2"); n2=double.Parse(System.Console.ReadLine()); s=n1+n2; System.Console.WriteLine("suma :" + s); System.Console.ReadLine(); } } }
2) Hallar el cociente y el Residuo de dos números
namespace ejemplo02 { class Program { public static void Main(string[] args) { double n1,n2,r,c; Console.Write("Ingrese el 1er numero: "); n1=double.Parse(Console.ReadLine()); Console.Write("Ingrese el 2do numero: "); n2=double.Parse(Console.ReadLine()); r=n1%n2; c=n1/n2; Console.WriteLine("Cociente " + c); Console.WriteLine("Residuo " + r); Console.Read(); } } }
3) Hallar la potencia de un número elevado a la n
By HG&HM
[13] CEL: 990261494 - RPM: #966864606
using System; namespace ejemplo03 { class Program { public static void Main(string[] args) { float a,n,p; Console.Write("Escriba a "); a=float.Parse(Console.ReadLine()); Console.Write("Escriba n "); n=float.Parse(Console.ReadLine()); p=(float)Math.Pow(a,n); Console.WriteLine("a^n " + p); Console.Read(); } } }
4) Saber si un número es Positivo, negativo o igual a cero
If- else Anidado
namespace ejemplo04 { class Program { public static void Main() { double n; string r; Console.Write("ingrese el numero "); n=double.Parse(Console.ReadLine()); if (n<0) { r="Negativo"; } else { if (n>0) { r="Positivo";} else {r="Cero";}} Console.WriteLine("el numero es " + r); Console.Read(); } } }
5) Comparar caracteres
namespace ejemplo05 {
PROGRAMACION
[14] CEL: 990261494 - RPM: #966864606
class Program { static void Main() { char l; string r=" ";
Console.Write("escriba la letra "); l=char.Parse(Console.ReadLine()); if (l=='a' || l=='A' ) { r = "Vocal A";} if (l=='e' || l=='E' ) { r = "Vocal E";} if (l=='i' || l=='I' ) { r = "Vocal I";} if (l=='o' || l=='O' ) { r = "Vocal O";}
if (l=='u' || l=='U' ) { r = "Vocal U";} Console.WriteLine("ES LA " + r); Console.Read(); } } }
6) Hallar el múltiplo de dos números
namespace ejmplo10 { class Program { public static void Main() { int n; string r=""; Console.Write("ingrese el numero "); n=int.Parse(Console.ReadLine()); r="no es mult de 5 y 3"; if (n%3==0 && n%5==0) { r= " si es multipli de 5 y 3"; } Console.Write("" + r); Console.Read(); } } }
7) Número mayor de tres números
namespace ejmplo11 { class Program
By HG&HM
[15] CEL: 990261494 - RPM: #966864606
{ public static void Main(string[] args) {
int n1,n2,n3,n; Console.Write("N1 "); n1=int.Parse(Console.ReadLine()); Console.Write("N2 "); n2=int.Parse(Console.ReadLine()); Console.Write("N3 "); n3=int.Parse(Console.ReadLine()); if (n1<n2) {if (n2<n3) {n=n3;} else {n=n2;}} else {if (n1<n3){n=n3;} else {n=n1;}} Console.Write("el mayor es " + n); Console.Read(); } } }
8) Ordenar tres número de mayor a menor
namespace ejemplo12 { class Program { static void Main() { double n1,n2,n3,m1, m2,m3; Console.Write("Nº1 "); n1=double.Parse(Console.ReadLine()); Console.Write("Nº2 "); n2=double.Parse(Console.ReadLine()); Console.Write("Nº3 "); n3=double.Parse(Console.ReadLine()); if (n1<n2) { if (n2<n3) { m1=n1; m2=n2; m3=n3; } else { if (n1<n3) { m1=n1; m2=n3; m3=n2; } else { m1=n3; m2=n1; m3=n2;
PROGRAMACION
[16] CEL: 990261494 - RPM: #966864606
} } } else { if (n1<n3) { m1=n2; m2=n1; m3=n3; } else { if (n2<n3) { m1=n2; m2=n3; m3=n1; } else { m1=n3; m2=n2; m3=n1; } } } Console.WriteLine("El mayor es " + m3); Console.WriteLine("El inter es " + m2); Console.WriteLine("El menor es " + m1); Console.Read(); } } }
9) Elegir operación Case
namespace ejmplo21 { class Program { public static void Main(string[] args) { double n1,n2,r; char h; Console.Write("N1 "); n1=double.Parse(Console.ReadLine()); Console.Write("N2 "); n2=double.Parse(Console.ReadLine()); Console.Write("OPERACION "); h=char.Parse(Console.ReadLine()); switch (h) { case '+':
By HG&HM
[17] CEL: 990261494 - RPM: #966864606
r=n1+n2; break; case '-': r=n1-n2; break; case '/': r=n1/n2; break; case '*': r=n1*n2; break; default: r=0; break; } Console.Write("Rpta " + r); Console.Read(); } } }
10) Verificar costos de acuerdo a la calidad y aun producto
namespace ejempl23 { class Program { static void Main() { int c,p,cos=0;
Console.Write("Calidad "); c=int.Parse(Console.ReadLine()); Console.Write("Producto "); p=int.Parse(Console.ReadLine()); switch (c) { case 1: switch (p) { case 1: cos=5000; break; case 2: cos=4500; break; case 3: cos=4000; break;
} break; case 2: switch (p) {
PROGRAMACION
[18] CEL: 990261494 - RPM: #966864606
case 1: cos=4500; break; case 2: cos=4000; break; case 3: cos=3500; break; } break; case 3: switch (p) { case 1: cos=4000; break; case 2: cos=3500; break; case 3: cos=3000; break; } break; } Console.Write("Resultado " + cos ); Console.Read(); } } }
11) Sumatoria de n numeros
namespace ejempl25 { class Program { static void Main(string[] args) { int n,r=0; Console.Write("Nº "); n=int.Parse(Console.ReadLine()); int i=1; while (i<=n) { r=r+i; i=i+1; } Console.Write("Respueta " + r); Console.Read(); } } }
By HG&HM
[19] CEL: 990261494 - RPM: #966864606
12) Hallar el cociente y el residuo
namespace ejmplo29 { class Program { public static void Main(string[] args) { int dv,ds,Co=0; Console.Write("dividendo "); dv=int.Parse(Console.ReadLine()); Console.Write("divisor "); ds=int.Parse(Console.ReadLine()); while (ds<dv) { dv=dv-ds; Co=Co+1; } Console.WriteLine("Cociente " + Co); Console.WriteLine("residuo " + dv); Console.Read(); } } }
13) Suma de los n primeros números
namespace ejmplo31 { class Program { static void Main() { int n,c=0; Console.Write("Numero "); n=int.Parse(Console.ReadLine()); for (int i = 1; i <= n; i++) { c=c+i; //c+=i; } Console.Write("Suma " +c); Console.Read(); } } }
14) Cuadrado de una numero
namespace ejmplo35 { class Program { public static void Main(string[] args) { int n,c=0; Console.Write("Numero ");
PROGRAMACION
[20] CEL: 990261494 - RPM: #966864606
n=int.Parse(Console.ReadLine()); for (int i = 1; i <= n; i++) { c=c+2*i-1; } Console.WriteLine("Cuadrado " + c); Console.Read(); } } }
15) Contador de números positivos y negativos en un rango determinado
namespace ejmplo37 { class Program { public static void Main(string[] args) { int n1,n2,i,po=0,ne=0; Console.Write("Numero inicial "); n1=int.Parse(Console.ReadLine()); Console.Write("Numero Final "); n2=int.Parse(Console.ReadLine()); for (i =n1; i <= n2; i++) { if (i!=0) { if (i<0) {ne+=1;} else {po+=1;} } } Console.WriteLine("positivo " + po); Console.WriteLine("Negativo " + ne); Console.Read(); } } }
16) Factorial de un número
namespace ejmplo38 { class Program { public static void Main(string[] args) { int n,c=1; Console.Write("Numero "); n=int.Parse(Console.ReadLine()); for (int i = 1; i <= n; i++) { c=c*i; } Console.WriteLine("Factorial " + c); Console.Read(); } } }
By HG&HM
[21] CEL: 990261494 - RPM: #966864606
17) Suma de Elementos de un Vector de 5 numeros
class Ejmpl52 { static void Main () { int i,s=0; int[] n=new int[5]; Console.Write("Numero 1 "); n[0]=int.Parse(Console.ReadLine()); Console.Write("Numero 2 "); n[1]=int.Parse(Console.ReadLine()); Console.Write("Numero 3 "); n[2]=int.Parse(Console.ReadLine()); Console.Write("Numero 4 "); n[3]=int.Parse(Console.ReadLine()); Console.Write("Numero 5 "); n[4]=int.Parse(Console.ReadLine()); for (i = 0; i < 5; i++) { s+=n[i]; } Console.WriteLine("{0} es la suma de los elemntos",s); Console.ReadLine(); } }
18) Fsd
19) Sd
20) Dsf
21) Sdf
22) Sd
23) Fsd
24) Fsd
25) Sd
PROGRAMACION
[22] CEL: 990261494 - RPM: #966864606
26) Dsf
27) Sdf
28) Sd
29) Fsd
30) Fsd
31) Sd
32) Dsf
33) Sdf
34) Sd
35) Fsd
36) Fsd
37) Sd
38) Dsf
39) Sdf
40) Sd
41) Fsd
By HG&HM
[23] CEL: 990261494 - RPM: #966864606
42) Fsd
43) Sd
44) Dsf
45) Sdf
46) Sd
47) Fsd
48) Fsd
49) Sd
50) Dsf
51) Sdf
52) Sd
53) Fsd
54) Fsd