Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Manual

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

CBTIS 217

Programación Estructurada

Manual de Programación en CSharp

Docente:
Luis Germán Gutiérrez Torres

Semestre:
Febrero-Junio 2019

Uriangato, Gto. 24 de febrero de 2019.

ÍNDICE

CÓMO DECLARAR VARIABLES 3

LEER DATOS DE ENTRADA 4

IMPRIMIR VALORES REDONDEADOS 5

IMPRIMIR DATOS EN CONSOLA 6

FUNCIONES MATEMÁTICAS 7

ESTRUCTURAS SELECTIVAS 8

LEER VARIOS DATOS EN UNA SOLA LÍNEA. 10

CÓMO DECLARAR VARIABLES


Vea el siguiente video.
https://www.youtube.com/watch?v=tDpO2oMtEZY
En programación, las variables son espacios reservados en la memoria que, como su
nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa.

Algunos de los tipos de datos más comunes son int, double, string.

Las variables de tipo int permiten almacenar valores enteros. En las variables de tipo
double se pueden almacenar números decimales. Si se requiere almacenar texto, las
variables serían de tipo string.

A continuación se muestran varias maneras de inicializar variables.

// DECLARACIÓN DE VARIABLES DE VARIOS TIPOS


int N;
double radio;
string nombre;

// DECLARACIÓN TRES VARIABLES EN UNA SOLA LÍNEA


int x, y, z;

// DECLARACIÓN E INICIALIZACIÓN DE UNA VARIABLE


double radio=0.00;

LEER DATOS DE ENTRADA

A continuación se muestra un ejemplo de lectura de datos de entrada desde la consola.


La entrada desde consola siempre es texto. Se debe convertir al tipo de datos adecuado
para poder manejar esas variables como un número.

// LECTURA DE DATOS DESDE CONSOLA


int N;
N=int.Parse(Console.ReadLine());

Puede notar que el método Console.ReadLine() lee una línea completa y ese texto es
convertido a continuación a un valor de tipo int.

Otros ejemplos de lectura de datos de entrada.

// EJEMPLO DE LECTURA DE UNA VARIABLE DE TIPO double


double altura;
altura=double.Parse(Console.ReadLine());

// LECTURA DE UNA VARIABLE DE TIPO STRING (TEXTO).


// CON LOS VALORES STRING NO ES NECESARIO HACER
// LA CONVERSIÓN.
string empleado;
empleado = Console.ReadLine();
IMPRIMIR VALORES REDONDEADOS
El siguiente ejemplo imprime el área redondeada a tres decimales. Se utiliza el método
ROUND de la clase MATH y también se utiliza el formato {0:F3}.

De la misma manera se puede redondear a uno, dos, tres o x cantidad de decimales.

using System;
namespace intervalo
{
class Program
{
public static void Main(string[] args)
{
// DECLARACIÓN DE VARIABLES
double b, a, area;
// LECTURA DE VALORES DE TIPO DOBLE
b = double.Parse(Console.ReadLine());
a = double.Parse(Console.ReadLine());
// CALCULO DEL AREA
area = (b*a)/2;
Console.WriteLine("AREA={0:F1}", Math.Round(area, 1));
Console.ReadKey(true);
}
}
}

IMPRIMIR DATOS EN CONSOLA

FUNCIONES MATEMÁTICAS
FUNCIONES PARA ELEVAR A UNA POTENCIA
FUNCIÓN PARA OBTENER EL VALOR ABSOLUTO DE UN NÚMERO
FUNCIÓN MATEMÁTICA QUE PERMITE OBTENER LA RAÍZ DE UN NÚMERO

using System;
namespace matematicas
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Este ejemplo usa funciones matemáticas.");
// LA LIBRERÍA Math PERMITE EL USO DE VARIAS FUNCIONES
MATEMÁTICAS

// POR EJEMPLO: CÁLCULO DEL VALOR ABSOLUTO DE UN NÚMERO


int x;
Console.WriteLine("\n\nEscribe un entero: ");
x=int.Parse(Console.ReadLine());
Console.WriteLine("Valor absoluto de x = " + Math.Abs(x) );

// OTRO EJEMPLO: ELEVAR UN NÚMERO AL UNA POTENCIA


// EN ESTE CASO, ELEVA N AL CUBO.
int n;
Console.WriteLine("\n\nEscribe un entero: ");
n=int.Parse(Console.ReadLine());
Console.WriteLine("Cubo de n: " + Math.Pow(n,2));

// RAIZ. SE PUEDE OBTENER LA RAIZ DE UN NÚMERO


// USANDO LA FUNCIÓN Sqrt
double valor;
Console.WriteLine("\n\nEscribe un número decimal: ");
valor=double.Parse(Console.ReadLine());
Console.WriteLine("Raiz del valor: " + Math.Sqrt(valor));
Console.ReadKey(true);
}
}
}

ESTRUCTURAS SELECTIVAS
Video con explicación sobre las estrucutras IF:
https://www.youtube.com/watch?v=Iw_O8VwQk6E

Ejemplo
Problema de URI ONLINE JUDGE:
https://www.urionlinejudge.com.br/judge/es/problems/view/1035

Prueba de selección 1

using System;

namespace prueba_seleccion
{
class Program
{
public static void Main(string[] args)
{
int A, B, C, D;
A=int.Parse(Console.ReadLine());
B=int.Parse(Console.ReadLine());
C=int.Parse(Console.ReadLine());
D=int.Parse(Console.ReadLine());
// si B es mayor que C,
// D es mayor que A,
// la suma de C y D es mayor que la suma de A y B,
// C y D son valores positivos
// A es par
if( B>C && D>A && C+D>A+B && C>=0 && D>=0 && A%2==0)
{
Console.WriteLine("Valores aceitos");
}
else
{
Console.WriteLine("Valores nao aceitos");
}
Console.ReadKey(true);
}
}
}

EJEMPLO:
https://www.urionlinejudge.com.br/judge/es/problems/view/1037

Problema INTERVALO de Uri Online Judge

SOLUCIÓN:
using System;
namespace intervalo
{
class Program
{
public static void Main(string[] args)
{
double n;
n=double.Parse( Console.ReadLine() );
if (n>=0 && n<=25)
{
Console.WriteLine("Intervalo [0,25]");
}
else if (n>25 && n<=50)
{
Console.WriteLine("Intervalo (25,50]");
}
else if (n>50 && n<=75)
{
Console.WriteLine("Intervalo (50,75]");
}
else if(n>75 && n<=100)
{
Console.WriteLine("Intervalo (75,100]");
}
else
{
Console.WriteLine("Fora de intervalo");
}

Console.ReadKey(true);
}
}
}

LEER VARIOS DATOS EN UNA SOLA LÍNEA.


Para ejemplificar esto, se utilizará el problema 1038 (Uri Online Judge)

SOLUCION:
using System;
namespace month
{
class Program
{
public static void Main(string[] args)
{
// LEER VARIOS DATOS EN UNA LINEA
int codigo, cantidad; double total, costo=0;
string linea=Console.ReadLine();
string[] datos = linea.Split();
codigo=int.Parse( datos[0] );
cantidad =int.Parse( datos[1] );
if (codigo==1)
{
costo = 4.0;
}
else if(codigo==2)
{
costo = 4.5;
}
else if(codigo==3)
{
costo = 5.0;
}
else if(codigo==4)
{
costo=2.0;
}
else if(codigo==5)
{
costo=1.5;
}
total=cantidad*costo;
Console.WriteLine("Total: R$ {0:F2}", Math.Round(total,2));
Console.ReadKey(true);
}
}
}
OTRO EJEMPLO.
EN LA PRIMER LÍNEA SE LEEN TRES NÚMEROS
EN LA SEGUNDA LINEA SE LEEN DOS NÚMEROS

// LEER TRES DATOS EN LA PRIMER LÍNEA (ENTERO, DOUBLE, ENTERO)


int a, c;
double b;
string linea=Console.ReadLine();
string[] datos = linea.Split();
a=int.Parse( datos[0] );
b =double.Parse( datos[1] );
c= int.Parse( datos[2] );

// LEER DOS DATOS EN LA SEGUNDA LINEA (ENTERO, ENTERO)


int x, y;
string linea2=Console.ReadLine();
string[] datos2 = linea2.Split();
x=int.Parse( datos2[0] );
y =int.Parse( datos2[1] );

EJEMPLO DE IF Y FOR
using System;
namespace condiciones
{
class Program
{
public static void Main(string[] args)
{
int x=95;
int y=96;
// ESTRUCTURA MAS SIMPLE DEL IF
if(y>x)
{

Console.WriteLine("Y es mayor");
}

// ESTRUCTURA IF CON ELSE


if(x>=y)
{
Console.WriteLine("X es mayor o igual a Y");
}
else
{
Console.WriteLine("Y es mayor");
}

// ESTRUCTURA IF ELSE IF
if(x>90 && x<=100)
{
Console.WriteLine("Excelente");
}
else if(x>80 && x<=90)
{
Console.WriteLine("Buena");
}
else if(x>70 && x<=80)
{
Console.WriteLine("Regular");
}
else if(x>=60 && x<=70)
{
Console.WriteLine("Apenas");
}
else
{
Console.WriteLine("Reprobado");
}

if( x>y || x==100 || x>y*y || x>0 )


{
Console.WriteLine("Si entra");
}
else
{
Console.WriteLine("No entra");
}

// REVISAR CUAL ES EL MAYOR


int a=400; int b=50; int c=2000;
if(a>b && a>c)
{
Console.WriteLine("El mayor es a:"+a);
}
else if(b>c)
{
Console.WriteLine("Mayor b:" + b);
}
else
{
Console.WriteLine("Mayor c:" + c);
}
// MISMA SOLUCIÓN CON OTRA ESTRUCTURA
if(a>b)
{
if(a>c)
{
Console.WriteLine("Mayor a "+a);
}
else
{
Console.WriteLine("Mayor c "+c);
}
}
else if(b>c)
{
Console.WriteLine("Mayor b " + b);
}
else
{
Console.WriteLine("Mayor c " + c);
}
// CICLOS FOR
int k;
for(k=1; k<=10; k++)
{
Console.WriteLine(k);
}

// EJEMPLO DE CICLO DESCENDENTE


Console.WriteLine("************");
for(k=10; k>0; k=k-3)
{
Console.WriteLine(k);
}

// EJEMPLO DE CICLO DE 10, 20, 30 HASTA 1000


Console.WriteLine("**************");
for(k=10; k<=1000; k=k+10)
{
Console.WriteLine(k);
}

// EJEMPLO DE CICLO QUE MANEJA DOS VARIABLES


Console.WriteLine("*************");
int f=1;

for (int i = 100; i >= 0; i=i-2)


{
Console.WriteLine( f +" "+ i );
f++;
}
Console.ReadKey(true);
}
}
}

EJEMPLO DE STRINGS
using System;
namespace palabras
{
class Program
{
public static void Main(string[] args)
{
// LECTURA DE UNA PALABRA
string texto1;
texto1 = Console.ReadLine();
string texto2;
texto2= Console.ReadLine();

if(texto1.Equals( texto2 ))
{
Console.WriteLine("si");
}
else
{
Console.WriteLine("NO");
}
Console.ReadKey(true);
}
}
}

EJEMPLO DE ARREGLOS
using System;

namespace promedios
{
class Program
{
public static void Main(string[] args)
{
// PROGRAMA QUE LEE N NÚMEROS Y CALCULA
// LA CANTIDAD DE NÚMEROS QUE SE ENCUENTRAN
// POR ENCIMA DEL PROMEDIO.

// DECLARACIÓN DE VARIABLES
int n;
int suma=0;
double promedio=0.0;
// LEE EL VALOR DE N Y DECLARA EL ARREGLO
n=int.Parse(Console.ReadLine());
int[] numeros= new int[n];
// CICLO PARA LEER LOS N DATOS
for(int i=0; i<n; i++)
{
numeros[i]=int.Parse(Console.ReadLine());
suma = suma+numeros[i];
}
promedio = (double)suma / n;

// IMPRIME EL PROMEDIO
Console.WriteLine("Promedio=" + promedio);
// REVISAR CUANTOS ESTAN ENCIMA DEL PROMEDIO
int contador=0;
for( int i=0; i<n; i++)
{
if(numeros[i]>promedio)
{
contador++;
}
}

// IMPRIMIR CUANTOS HAY POR ENCIMA DEL PROM


Console.WriteLine("Mayores al promedio=" +contador);
Console.ReadKey(true);
}
}
}

METODO DE LA BURBUJA

using System;
namespace bubllesort
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("METODO DE LA BURBUJA");
Console.Write("Cuantos números ?");
int n= int.Parse(Console.ReadLine());

int[] datos=new int[n];


//LEER DATOS DE ENTRADA
for(int i=0; i<n; i++)
{
datos[i]=int.Parse(Console.ReadLine());
}

// ORDERNAR EL ARREGLO CON LA BURBUJA


int j=0;
int k=0;
int temp=0;
for(j=0; j<n-1; j++) {
// COMPARA UNO CON UNO E INTERCAMBIA
for(k=0; k<n-1; k++) {
if(datos[k+1]>datos[k]) {
// INTERCAMBIA
temp=datos[k];
datos[k]=datos[k+1];
datos[k+1]=temp;
}
}
}
Console.WriteLine("***********************");
// IMPRIMIR ARREGLO ORDENADO
for(int i=0; i<n; i++)
{
Console.WriteLine(datos[i]);
}
Console.ReadKey(true);
}
}
}

EJEMPLO DE LLAMADAS A MÉTODOS QUE RECIBEN Y REGRESAN


ARREGLOS

using System;

namespace arreglos_metodos
{
class Program
{
static void imprime(int[] datos)
{
int t=datos.Length;
for(int i=0; i<t; i++)
{
Console.Write(datos[i] + " ");
}
Console.WriteLine();
}

static int[] suma(int[] a1, int[] a2)


{
int t=a1.Length;
int[] r=new int[t];
for(int i=0; i<t; i++)
{
r[i]=a1[i]+a2[i];
}
return r;
}

static double promedio(double[] datos, int tam)


{
double promedio=0, suma=0;
for(int i=0; i<tam; i++)
{
suma=suma+datos[i];
}
promedio=suma/tam;
return promedio;
}

public static void Main(string[] args)


{
// CREA UNOS ARREGLOS CON DATOS FIJOS
// SOLO COMO EJEMPLO
double[] arreglo={9.9, 9.9, 9.2, 9.8};
int[] arr1={1, 2, 3, 4};
int[] arr2={5, 6, 2, 2};

double p;
// LLAMA UN MÉTODO PASANDOLE UN ARREGLO
p=promedio(arreglo, 4);
Console.WriteLine("Promedio: " + p);

int[] resultado;
// ESTE METODO REGRESA UN ARREGLO
// DE ENTEROS
resultado=suma(arr1, arr2);

// METODO QUE IMPRIME TODOS LOS DATOS


// DE UN ARREGLO
imprime(resultado);

Console.ReadKey(true);
}
}
}

También podría gustarte