1.¿Que es un archivo de texto?
Un archivo de texto es una secuencia de
caracteres organizadas en líneas terminadas por un carácter de nueva línea. En estos archivos se pueden
almacenar canciones, fuentes de programas, base de datos simples, etc. Los archivos de texto se caracterizan por
ser planos, es decir, todas las letras tienen el mismo formato y no hay palabras subrayadas, en negrita, o letras de
distinto tamaño o ancho.
2.¿Como se almacenan datos en un archivo texto?
Se logra mediante la clase Stream que representa un flujo de información (Un archivo es considerado un flujo de datos, al igual que los datos transferidos de un dispositivo a otro, o los datos transferidos por la red mediante TCP/IP).
La clase Stream, es una clase abstracta, por lo que no es posible utilizarla directamente ya que no se puede crear instancias. Lo que se debe hacer es utilizar una de sus clases derivadas que se especializan en el tratamiento de streams para diferentes destinos como por ejemplo FileStream (para el manejo de archivos), Memorystream (para el manejo de datos en memoria), etc.
El FileStream actúa como un intermediario entre el sistema de archivos y nuestra aplicación, permitiendo realizar de una manera limpia y sencilla operaciones de escritura y lectura en archivos. Para utilizar el FileStream, lo primero que se debe hacer es crear una instancia que apunte al archivo deseado. Para esto se tiene la opción de utilizar alguno de los constructores ofrecidos.
3. ¿Que tipo de clases utiliza, como se hace la lectura de datos almacenados en un archivo de texto?
Al igual que prácticamente todos los lenguajes de programación, C# ofrece el acceso a leer y escribir
archivos en disco, por medio de estructuras especialmente definidas que consisten en clases de características y métodos particulares, que resuelven la
problemática general de acceso a los archivos, permitiendo desarrollar programas que los utilicen como fuente de información y medio de almacenamiento de información de largo plazo.
Las clases más relacionadas con la escritura y lectura de archivos son:
- FileStream, cuyo propósito es lectura y escritura de datos binarios (no de texto legible), a cualquier
archivo de tipo binario, aunque se puede utilizar para acceder a cualquier tipo de archivo, inclusive los de texto.
- StreamReader y StreamWriter, las cuales están diseñadas para lectura y escritura de archivos de texto. Estas clases se asumen como de un nivel más alto que FileStream.
string rutaarchivo = @”C:\Temp\archivo.txt”;
StreamReader sr = new StreamReader(@”C:\Temp\archivo.txt”);
StreamReader sr = new StreamReader(@”C:\Temp\file.txt”, Encoding.UTF8Encoding);
4.¿Como se especifica una nota para localizar un archivo?
Las clases más relacionadas con la escritura y lectura de archivos (File Input/Output o File I/O) son:
*FileStream, cuyo propósito es lectura y escritura de datos binarios (no de texto legible), a cualquier archivo de tipo binario, aunque se puede utilizar para acceder a cualquier tipo de archivo, inclusive los de texto.
*StreamReader y StreamWriter, las cuales están diseñadas para lectura y escritura de archivos de texto. Estas clases se asumen como de un nivel más alto que FileStream.
Una observación acerca de la declaración de nombres/rutas de archivos en C#. Usualmente, la ruta de un archivo contiene el carácter ‘\’, que en C# se utiliza como caracter de control para símbolos especiales (como el cambio de línea: ‘\n’). Sin embargo, entendiendo que no es el mismo sentido el que se le quiere dar en la interpretación de rutas de archivos (por ej: “C:\Mis documentos\Programas\ejemplo.cs”), se utiliza una sintaxis particular, anteponiendo el símbolo ‘@’ antes del string con la ruta del archivo. Es decir:
string rutaarchivo = @”C:\Temp\archivo.txt”;
Esta declaración evita la interpretación de los dos caracteres ‘\’ como símbolos especiales y el string queda correctamente inicializado
miércoles, 26 de mayo de 2010
lunes, 10 de mayo de 2010
practica11problema2 consola y visual
PSEUDOCODIGO
1.- Experimentos [4,7] double
R=0, C=0 int
Suma=0.0 double
For(R=0 to 3 step R=R+1)
{
Suma=0
Print "Introduce los ensayes del experimento ",(R+1)
For(C=0 to 5 step C=C+1)
{
Print "Ensaye", (C+1)
Read Experimentos [R,C]
Suma=Suma+Experimentos[R,C]
}
Experimentos [R,6]=Suma/6
}
Print "Reporte de Experimentos"
Print"Experimento R1 R2 R3 R4 R5 R6"
For(R=0 to 3 step R=R+1)
{
For(C=0 to 6 step C=C+1)
{Print R, Experimentos [R,C]}
}
CONSOLA
class Program
{
static void Main(string[] args)
{
double[,] experimentos = new double[4, 7];
int r = 0, c = 0;
double Suma;
for (r = 0; r < 4; r++)
{
Suma = 0;
Console.WriteLine("Introduce los ensayes del experimento: {0}", r + 1);
for (c = 0; c < 6; c++)
{
Console.WriteLine("ensaye {0}", c + 1);
experimentos [r,c]=double.Parse(Console.ReadLine());
Suma = Suma + experimentos[r, c];
}
experimentos[r, 6] = Suma / 6;
}
Console.WriteLine("\n EL REPORTE DE EXPERIMENTOS ");
Console.WriteLine("\nNo.Exp\tr1\tr2\tr3\tr4\tr5\tr6\tpromedio");
for (r = 0; r < 4; r++)
{
Console.WriteLine("");
Console.Write("{0}", r + 1);
for (c = 0; c < 7; c++)
{
Console.Write("\t{0}",experimentos[r, c]);
}
}
Console.ReadKey();
}
}
}
VISUAL
public partial class Form1 : Form
{
double[,] Experimentos = new double[4, 7];
int R,C;
double suma;
public Form1()
{
InitializeComponent();
R=0;
C = 0;
suma = 0;
}
private void button1_Click(object sender, EventArgs e)
{
if (R < 4)
{
if (C < 7)
{
Experimentos[R, C] = double.Parse(textBox1.Text);
label2.Text = "Experimentos [" + R.ToString() + "," + C.ToString() + "]:" + Experimentos[R, C].ToString();
suma = suma + Experimentos[R, C];
C ++;
textBox1.Clear();
textBox1.Focus();
}
else
{
R++;
C = 0;
Experimentos[R, 6] = suma / 6;
}
}
else
{
button1.Enabled = false;
textBox1.Enabled = false;
}
}
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Add("\n EL REPORTE DE EXPERIMENTOS ");
listBox1.Items.Add("\nNo.Exp\tR1\tR2\tR3\tR4\tR5\tR6\tPromedio");
listBox1.Items.Add("\t" + Experimentos[0, 0] + "\t" + Experimentos[0, 1] + "\t" + Experimentos[0, 2] + "\t" + Experimentos[0, 3] + "\t" + Experimentos[0, 4] + "\t" + Experimentos[0, 5] + "\t" + Experimentos[0, 6]);
listBox1.Items.Add("\t" + Experimentos[1, 0] + "\t" + Experimentos[1, 1] + "\t" + Experimentos[1, 2] + "\t" + Experimentos[1, 3] + "\t" + Experimentos[1, 4] + "\t" + Experimentos[1, 5] + "\t" + Experimentos[1, 6]);
listBox1.Items.Add("\t" + Experimentos[2, 0] + "\t" + Experimentos[2, 1] + "\t" + Experimentos[2, 2] + "\t" + Experimentos[2, 3] + "\t" + Experimentos[2, 4] + "\t" + Experimentos[2, 5] + "\t" + Experimentos[2, 6]);
listBox1.Items.Add("\t" + Experimentos[3, 0] + "\t" + Experimentos[3, 1] + "\t" + Experimentos[3, 2] + "\t" + Experimentos[3, 3] + "\t" + Experimentos[3, 4] + "\t" + Experimentos[3, 5] + "\t" + Experimentos[3, 6]);
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Focus();
textBox1.Clear();
listBox1.Items.Clear();
button1.Enabled = true;
textBox1.Enabled = true;
}
private void button4_Click(object sender, EventArgs e)
{
Close();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}

1.- Experimentos [4,7] double
R=0, C=0 int
Suma=0.0 double
For(R=0 to 3 step R=R+1)
{
Suma=0
Print "Introduce los ensayes del experimento ",(R+1)
For(C=0 to 5 step C=C+1)
{
Print "Ensaye", (C+1)
Read Experimentos [R,C]
Suma=Suma+Experimentos[R,C]
}
Experimentos [R,6]=Suma/6
}
Print "Reporte de Experimentos"
Print"Experimento R1 R2 R3 R4 R5 R6"
For(R=0 to 3 step R=R+1)
{
For(C=0 to 6 step C=C+1)
{Print R, Experimentos [R,C]}
}
CONSOLA
class Program
{
static void Main(string[] args)
{
double[,] experimentos = new double[4, 7];
int r = 0, c = 0;
double Suma;
for (r = 0; r < 4; r++)
{
Suma = 0;
Console.WriteLine("Introduce los ensayes del experimento: {0}", r + 1);
for (c = 0; c < 6; c++)
{
Console.WriteLine("ensaye {0}", c + 1);
experimentos [r,c]=double.Parse(Console.ReadLine());
Suma = Suma + experimentos[r, c];
}
experimentos[r, 6] = Suma / 6;
}
Console.WriteLine("\n EL REPORTE DE EXPERIMENTOS ");
Console.WriteLine("\nNo.Exp\tr1\tr2\tr3\tr4\tr5\tr6\tpromedio");
for (r = 0; r < 4; r++)
{
Console.WriteLine("");
Console.Write("{0}", r + 1);
for (c = 0; c < 7; c++)
{
Console.Write("\t{0}",experimentos[r, c]);
}
}
Console.ReadKey();
}
}
}
VISUAL
public partial class Form1 : Form
{
double[,] Experimentos = new double[4, 7];
int R,C;
double suma;
public Form1()
{
InitializeComponent();
R=0;
C = 0;
suma = 0;
}
private void button1_Click(object sender, EventArgs e)
{
if (R < 4)
{
if (C < 7)
{
Experimentos[R, C] = double.Parse(textBox1.Text);
label2.Text = "Experimentos [" + R.ToString() + "," + C.ToString() + "]:" + Experimentos[R, C].ToString();
suma = suma + Experimentos[R, C];
C ++;
textBox1.Clear();
textBox1.Focus();
}
else
{
R++;
C = 0;
Experimentos[R, 6] = suma / 6;
}
}
else
{
button1.Enabled = false;
textBox1.Enabled = false;
}
}
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Add("\n EL REPORTE DE EXPERIMENTOS ");
listBox1.Items.Add("\nNo.Exp\tR1\tR2\tR3\tR4\tR5\tR6\tPromedio");
listBox1.Items.Add("\t" + Experimentos[0, 0] + "\t" + Experimentos[0, 1] + "\t" + Experimentos[0, 2] + "\t" + Experimentos[0, 3] + "\t" + Experimentos[0, 4] + "\t" + Experimentos[0, 5] + "\t" + Experimentos[0, 6]);
listBox1.Items.Add("\t" + Experimentos[1, 0] + "\t" + Experimentos[1, 1] + "\t" + Experimentos[1, 2] + "\t" + Experimentos[1, 3] + "\t" + Experimentos[1, 4] + "\t" + Experimentos[1, 5] + "\t" + Experimentos[1, 6]);
listBox1.Items.Add("\t" + Experimentos[2, 0] + "\t" + Experimentos[2, 1] + "\t" + Experimentos[2, 2] + "\t" + Experimentos[2, 3] + "\t" + Experimentos[2, 4] + "\t" + Experimentos[2, 5] + "\t" + Experimentos[2, 6]);
listBox1.Items.Add("\t" + Experimentos[3, 0] + "\t" + Experimentos[3, 1] + "\t" + Experimentos[3, 2] + "\t" + Experimentos[3, 3] + "\t" + Experimentos[3, 4] + "\t" + Experimentos[3, 5] + "\t" + Experimentos[3, 6]);
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Focus();
textBox1.Clear();
listBox1.Items.Clear();
button1.Enabled = true;
textBox1.Enabled = true;
}
private void button4_Click(object sender, EventArgs e)
{
Close();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}

practica 11 problema 1 consola y visual
PSEUDOCODIGO
REAL[,] voltajes=new double[3,5];
REAL c1 =0,c2=0,c3=0,c4=0,c5=0;
for (r = 0 TO 3 r=r+1)
{
for (c = 0 TO 5; c= c+1)
{
PRINT "Voltajes [{0},{1}] : ", r, c
READ voltajes[r, c]
}
}
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] < 60)
{
c1 = c1 + 1;
}
}
}
PRINT("numero de voltajes<60 {0}", c1);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 60 && voltajes[r, c] < 70)
{
c2 = c2 + 1;
}
}
}
PRINT("numero de voltajes>=60 & <70 {0}", c2);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 70 && voltajes[r, c] < 80)
{
c3 = c3 + 1;
}
}
}
PRINT("numero de voltajes>=70 & <80 {0}", c3);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 80 && voltajes[r, c] < 90)
{
c4 = c4 + 1;
}
}
}
PRINT("numero de voltajes>=80 & <90 {0}", c4);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 90)
{
c5 = c5 + 1;
}
}
}
PRINT("numero de voltajes>=90 {0}", c5);.
FIN
CONSOLA
class Program
{
static void Main(string[] args)
{
double[,] voltajes = new double[3, 5];
int c1 = 0, c2 = 0, c3 = 0, c4 = 0, c5 = 0;
int r, c;
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
Console.Write("voltajes[{0},{1}]", r, c);
voltajes[r, c] = double.Parse(Console.ReadLine());
}
}
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] < 60)
{
c1 = c1 + 1;
}
}
}
Console.WriteLine("numero de voltajes<60 {0}", c1);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 60 && voltajes[r, c] < 70)
{
c2 = c2 + 1;
}
}
}
Console.WriteLine("numero de voltajes>=60 & <70 {0}", c2);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 70 && voltajes[r, c] < 80)
{
c3 = c3 + 1;
}
}
}
Console.WriteLine("numero de voltajes>=70 & <80 {0}", c3);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 80 && voltajes[r, c] < 90)
{
c4 = c4 + 1;
}
}
}
Console.WriteLine("numero de voltajes>=80 & <90 {0}", c4);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 90)
{
c5 = c5 + 1;
}
}
}
Console.WriteLine("numero de voltajes>=90 {0}", c5);
Console.ReadKey();
}
}
}
VISUAL
public partial class Form1 : Form
{
double[,] voltajes = new double[3, 5];
int c1, c2, c3, c4, c5;
int r, c;
public Form1()
{
InitializeComponent();
c1 = c2 = c3 = c4 = c5 = 0;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
{
if (r < 3)
{
if (c < 5)
{
voltajes[r, c] = double.Parse(textBox1.Text);
listBox1.Items.Add("Voltaje[" + r.ToString() + "," + c.ToString() + "]:" + voltajes[r, c].ToString());
c++;
textBox1.Clear();
textBox1.Focus();
}
else
{
r++;
c = 0;
}
}
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
{
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] < 60)
{
c1 = c1 + 1;
}
}
}
MessageBox.Show("Voltajes < 60 : " + c1);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 60 && voltajes[r, c] < 70)
{
c2 = c2 + 1;
}
}
}
MessageBox.Show("Voltajes >= 60 & < 70 : " + c2);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 70 && voltajes[r, c] < 80)
{
c3 = c3 + 1;
}
}
}
MessageBox.Show("Voltajes >= 70 & < 80 : " + c3);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 80 && voltajes[r, c] < 90)
{
c4 = c4 + 1;
}
}
}
MessageBox.Show("Voltajes >= 80 & < 90: " + c4);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 90)
{
c5 = c5 + 1;
}
}
}
MessageBox.Show("Voltajes >= 90 : " + c5);
}
}
private void button3_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
textBox1.Clear();
}
private void button4_Click(object sender, EventArgs e)
{
Close();
}
private void label2_Click(object sender, EventArgs e)
{
}
}
}

REAL[,] voltajes=new double[3,5];
REAL c1 =0,c2=0,c3=0,c4=0,c5=0;
for (r = 0 TO 3 r=r+1)
{
for (c = 0 TO 5; c= c+1)
{
PRINT "Voltajes [{0},{1}] : ", r, c
READ voltajes[r, c]
}
}
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] < 60)
{
c1 = c1 + 1;
}
}
}
PRINT("numero de voltajes<60 {0}", c1);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 60 && voltajes[r, c] < 70)
{
c2 = c2 + 1;
}
}
}
PRINT("numero de voltajes>=60 & <70 {0}", c2);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 70 && voltajes[r, c] < 80)
{
c3 = c3 + 1;
}
}
}
PRINT("numero de voltajes>=70 & <80 {0}", c3);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 80 && voltajes[r, c] < 90)
{
c4 = c4 + 1;
}
}
}
PRINT("numero de voltajes>=80 & <90 {0}", c4);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 90)
{
c5 = c5 + 1;
}
}
}
PRINT("numero de voltajes>=90 {0}", c5);.
FIN
CONSOLA
class Program
{
static void Main(string[] args)
{
double[,] voltajes = new double[3, 5];
int c1 = 0, c2 = 0, c3 = 0, c4 = 0, c5 = 0;
int r, c;
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
Console.Write("voltajes[{0},{1}]", r, c);
voltajes[r, c] = double.Parse(Console.ReadLine());
}
}
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] < 60)
{
c1 = c1 + 1;
}
}
}
Console.WriteLine("numero de voltajes<60 {0}", c1);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 60 && voltajes[r, c] < 70)
{
c2 = c2 + 1;
}
}
}
Console.WriteLine("numero de voltajes>=60 & <70 {0}", c2);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 70 && voltajes[r, c] < 80)
{
c3 = c3 + 1;
}
}
}
Console.WriteLine("numero de voltajes>=70 & <80 {0}", c3);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 80 && voltajes[r, c] < 90)
{
c4 = c4 + 1;
}
}
}
Console.WriteLine("numero de voltajes>=80 & <90 {0}", c4);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 90)
{
c5 = c5 + 1;
}
}
}
Console.WriteLine("numero de voltajes>=90 {0}", c5);
Console.ReadKey();
}
}
}
VISUAL
public partial class Form1 : Form
{
double[,] voltajes = new double[3, 5];
int c1, c2, c3, c4, c5;
int r, c;
public Form1()
{
InitializeComponent();
c1 = c2 = c3 = c4 = c5 = 0;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
{
if (r < 3)
{
if (c < 5)
{
voltajes[r, c] = double.Parse(textBox1.Text);
listBox1.Items.Add("Voltaje[" + r.ToString() + "," + c.ToString() + "]:" + voltajes[r, c].ToString());
c++;
textBox1.Clear();
textBox1.Focus();
}
else
{
r++;
c = 0;
}
}
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
{
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] < 60)
{
c1 = c1 + 1;
}
}
}
MessageBox.Show("Voltajes < 60 : " + c1);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 60 && voltajes[r, c] < 70)
{
c2 = c2 + 1;
}
}
}
MessageBox.Show("Voltajes >= 60 & < 70 : " + c2);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 70 && voltajes[r, c] < 80)
{
c3 = c3 + 1;
}
}
}
MessageBox.Show("Voltajes >= 70 & < 80 : " + c3);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 80 && voltajes[r, c] < 90)
{
c4 = c4 + 1;
}
}
}
MessageBox.Show("Voltajes >= 80 & < 90: " + c4);
for (r = 0; r < 3; r++)
{
for (c = 0; c < 5; c++)
{
if (voltajes[r, c] >= 90)
{
c5 = c5 + 1;
}
}
}
MessageBox.Show("Voltajes >= 90 : " + c5);
}
}
private void button3_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
textBox1.Clear();
}
private void button4_Click(object sender, EventArgs e)
{
Close();
}
private void label2_Click(object sender, EventArgs e)
{
}
}
}

jueves, 6 de mayo de 2010
RECTANGULO
class RECTANGULO
{
double ancho;
double largo;
public RECTANGULO()
{
ancho = 0;
largo = 0;
}
public RECTANGULO(double w, double h)
{
ancho = w;
largo = h;
}
public double Area()
{
return ancho * largo;
}
public double Perimetro()
{
return 2 * (ancho + largo);
}
public void Asignarlargo(double h)
{
largo = h;
}
public void Asignarancho(double w)
{
ancho = w;
}
public double obtenerlargo()
{
return largo;
}
public double obtenerancho()
{
return ancho;
}
}
}
class Program
{
static void Main(string[] args)
{
RECTANGULO R1 = new RECTANGULO();
double h, w;
Console.Write("Introduce largo de un rectangulo:");
h = double.Parse(Console.ReadLine());
Console.Write("Introduce ancho de un rectangulo:");
w = double.Parse(Console.ReadLine());
R1.Asignarlargo(h);
R1.Asignarancho(w);
Console.WriteLine("area ={0}", R1.Area());
Console.WriteLine("Perimetro={0}", R1.Perimetro());
RECTANGULO R2 = new RECTANGULO(h, w);
Console.Write("Introduce largo de un rectangulo:");
h = double.Parse(Console.ReadLine());
Console.Write("Introduce ancho de un rectangulo:");
w = double.Parse(Console.ReadLine());
R2.Asignarlargo(h);
R2.Asignarancho(w);
Console.WriteLine("area ={0}", R2.Area());
Console.WriteLine("Perimetro={0}", R2.Perimetro());
RECTANGULO R3 = new RECTANGULO(h, w);
Console.Write("Introduce largo de un rectangulo:");
h = double.Parse(Console.ReadLine());
Console.Write("Introduce ancho de un rectangulo:");
w = double.Parse(Console.ReadLine());
R3.Asignarlargo(h);
R3.Asignarancho(w);
Console.WriteLine("area ={0}", R3.Area());
Console.WriteLine("Perimetro={0}", R3.Perimetro());
Console.ReadKey();
}
}
}
{
double ancho;
double largo;
public RECTANGULO()
{
ancho = 0;
largo = 0;
}
public RECTANGULO(double w, double h)
{
ancho = w;
largo = h;
}
public double Area()
{
return ancho * largo;
}
public double Perimetro()
{
return 2 * (ancho + largo);
}
public void Asignarlargo(double h)
{
largo = h;
}
public void Asignarancho(double w)
{
ancho = w;
}
public double obtenerlargo()
{
return largo;
}
public double obtenerancho()
{
return ancho;
}
}
}
class Program
{
static void Main(string[] args)
{
RECTANGULO R1 = new RECTANGULO();
double h, w;
Console.Write("Introduce largo de un rectangulo:");
h = double.Parse(Console.ReadLine());
Console.Write("Introduce ancho de un rectangulo:");
w = double.Parse(Console.ReadLine());
R1.Asignarlargo(h);
R1.Asignarancho(w);
Console.WriteLine("area ={0}", R1.Area());
Console.WriteLine("Perimetro={0}", R1.Perimetro());
RECTANGULO R2 = new RECTANGULO(h, w);
Console.Write("Introduce largo de un rectangulo:");
h = double.Parse(Console.ReadLine());
Console.Write("Introduce ancho de un rectangulo:");
w = double.Parse(Console.ReadLine());
R2.Asignarlargo(h);
R2.Asignarancho(w);
Console.WriteLine("area ={0}", R2.Area());
Console.WriteLine("Perimetro={0}", R2.Perimetro());
RECTANGULO R3 = new RECTANGULO(h, w);
Console.Write("Introduce largo de un rectangulo:");
h = double.Parse(Console.ReadLine());
Console.Write("Introduce ancho de un rectangulo:");
w = double.Parse(Console.ReadLine());
R3.Asignarlargo(h);
R3.Asignarancho(w);
Console.WriteLine("area ={0}", R3.Area());
Console.WriteLine("Perimetro={0}", R3.Perimetro());
Console.ReadKey();
}
}
}
Metodos en C #
Los métodos son un bloque de código que contiene una serie de instrucciones. En C#, cada instrucción se ejecuta en el contexto de un método.
Los métodos se declaran en una clase o estructura especificando el nivel de acceso, el valor devuelto, el nombre del método y los parámetros de método. Los parámetros de método se incluyen entre paréntesis y separados por comas. Los paréntesis vacíos indican que el método no requiere ningún parámetro. Esta clase contiene tres métodos:
class Motorcycle
{
public void StartEngine() { }
public void AddGas(int gallons) { }
public int Drive(int miles, int speed) { return 0; }
}
Todo método debe de ser parte de una clase, no existen métodos globales.
De forma predeterminada, los parámetros se pasan por valor.
El modificador ref fuerza a pasar los parámetros por referencia en vez de pasarlos por valor.
El modificador out es similar al modificador "ref" con una excepción: sólo se puede utilizar para pasar un valor fuera de un método. El método debe de asignar un valor al parámetro antes de que el método finalice.
Cuando "ref" y "out" modifican un parámetro de referencia, la propia referencia se pasa por referencia.
Un método debe tener como máximo un único parámetro params y éste debe de ser el último.
Un método puede devolver cualquier tipo de datos, incluyendo tipos de clase.
Ya que en C# las matrices se implementan como objetos, un método también puede devolver una matriz.
C# implementa sobrecarga de métodos, dos o más métodos pueden tener el mismo nombre siempre y cuando se diferencien por sus parámetros.
Valores devueltos
Los métodos pueden devolver un valor al llamador. Si el tipo de valor devuelto no es void, el método puede devolver el valor mediante la palabra clave return. Una instrucción con la palabra clave return, seguida de un valor que coincida con el tipo de valor devuelto, devolverá ese valor al llamador del método. La palabra clave return también detiene la ejecución del método. Si el tipo de valor devuelto es void, una instrucción return sin ningún valor sigue siendo útil para detener la ejecución del método. Sin la palabra clave return, el método detendrá la ejecución cuando llegue al fin del bloque de código. Es necesario que los métodos con un tipo de valor devuelto no nulo utilicen la palabra clave return para devolver un valor. Por ejemplo, estos dos métodos utilizan la palabra clave return para devolver enteros:
class SimpleMath
{
public int AddTwoNumbers(int number1, int number2)
{
return number1 + number2;
}
public int SquareANumber(int number)
{
return number * number;
}
}
EJEMPLO
class Program
{
static void Main(string[] args)
{
int[] a = { 54, 6, 4, 8, 10, 12, 89, 68, 45, 37 };
string salida = "Valores de los items originales\n";
for (int i = 0; i < a.Length; i++)
salida += " " + a[i];
OrdenarBurbuja(a);
salida += "\n\nValores de los items en orden descendente\n";
for (int i = 0; i < a.Length; i++)
salida += " " + a[i];
Console.WriteLine(salida);
Console.ReadKey();
}
static public void OrdenarBurbuja(int[] b)
{
for (int pasadas = 1; pasadas < b.Length; pasadas++)
for (int i = 0; i < b.Length - 1; i++)
if (b[i] > b[i + 1])
intercambio(b, i);
}
static public void intercambio(int[] c, int primero)
{
int temp;
temp = c[primero];
c[primero] = c[primero + 1];
c[primero + 1] = temp;
}
}
}
Los métodos se declaran en una clase o estructura especificando el nivel de acceso, el valor devuelto, el nombre del método y los parámetros de método. Los parámetros de método se incluyen entre paréntesis y separados por comas. Los paréntesis vacíos indican que el método no requiere ningún parámetro. Esta clase contiene tres métodos:
class Motorcycle
{
public void StartEngine() { }
public void AddGas(int gallons) { }
public int Drive(int miles, int speed) { return 0; }
}
Todo método debe de ser parte de una clase, no existen métodos globales.
De forma predeterminada, los parámetros se pasan por valor.
El modificador ref fuerza a pasar los parámetros por referencia en vez de pasarlos por valor.
El modificador out es similar al modificador "ref" con una excepción: sólo se puede utilizar para pasar un valor fuera de un método. El método debe de asignar un valor al parámetro antes de que el método finalice.
Cuando "ref" y "out" modifican un parámetro de referencia, la propia referencia se pasa por referencia.
Un método debe tener como máximo un único parámetro params y éste debe de ser el último.
Un método puede devolver cualquier tipo de datos, incluyendo tipos de clase.
Ya que en C# las matrices se implementan como objetos, un método también puede devolver una matriz.
C# implementa sobrecarga de métodos, dos o más métodos pueden tener el mismo nombre siempre y cuando se diferencien por sus parámetros.
Valores devueltos
Los métodos pueden devolver un valor al llamador. Si el tipo de valor devuelto no es void, el método puede devolver el valor mediante la palabra clave return. Una instrucción con la palabra clave return, seguida de un valor que coincida con el tipo de valor devuelto, devolverá ese valor al llamador del método. La palabra clave return también detiene la ejecución del método. Si el tipo de valor devuelto es void, una instrucción return sin ningún valor sigue siendo útil para detener la ejecución del método. Sin la palabra clave return, el método detendrá la ejecución cuando llegue al fin del bloque de código. Es necesario que los métodos con un tipo de valor devuelto no nulo utilicen la palabra clave return para devolver un valor. Por ejemplo, estos dos métodos utilizan la palabra clave return para devolver enteros:
class SimpleMath
{
public int AddTwoNumbers(int number1, int number2)
{
return number1 + number2;
}
public int SquareANumber(int number)
{
return number * number;
}
}
EJEMPLO
class Program
{
static void Main(string[] args)
{
int[] a = { 54, 6, 4, 8, 10, 12, 89, 68, 45, 37 };
string salida = "Valores de los items originales\n";
for (int i = 0; i < a.Length; i++)
salida += " " + a[i];
OrdenarBurbuja(a);
salida += "\n\nValores de los items en orden descendente\n";
for (int i = 0; i < a.Length; i++)
salida += " " + a[i];
Console.WriteLine(salida);
Console.ReadKey();
}
static public void OrdenarBurbuja(int[] b)
{
for (int pasadas = 1; pasadas < b.Length; pasadas++)
for (int i = 0; i < b.Length - 1; i++)
if (b[i] > b[i + 1])
intercambio(b, i);
}
static public void intercambio(int[] c, int primero)
{
int temp;
temp = c[primero];
c[primero] = c[primero + 1];
c[primero + 1] = temp;
}
}
}
Suscribirse a:
Comentarios (Atom)