SlideShare uma empresa Scribd logo
1 de 16
OMAR ANDRES MONTAÑA REYES
PROGRAMACION C#
PROGRAMACION ESTRUCTURADA
BOGOTA D.C.
CIDE
2015
FUNCIONES
Definición y Uso:
Una función es un bloque de código que realiza x operaciones y puede devolver o no
algún valor. La principal usabilidad de las funciones y los métodos es aclarar y resusar
la programación. Si tuviéramos todo el código de una apicación del tirón sería muy
difcícil de leer y de mantener. Por ejemplo si tenemos un programa en el que hacemos
una operación de sumar dos números y luego mostrárla por pantalla, podríamos hacer
una función a la que le diéramos los 2 números y ya nos hiciera ella el resto.
La diferencia entre un método y una función es simplemente que los métodos están
dentro de las clases, es decir, a las funciones dentro de las clases les llamamos
métodos. Ya que C# sólo admite funciones dentro de clases, todo lo que nos
encontramos son métodos.
Declaración:
Sintaxis:
1
2
3
4
5
6
7
8
[private/protected/public/internal] [virtual/override/new] [static]
returnType NameOfFunction(
[ref/out] typeParam1 nameParam1,
…
[ref/out] typeParamN nameParamN)
{
// Code
}
Se puede especificar la visibilidad del método (privada/protegida/pública), si no se
especifica, los métodos son privados.
Si el keyword static se declara quiere decir que es un método estático. Estos métodos
pueden llamarse sin necesidad de tener un objeto de la clase a la que pertencen,
aunque no podrán acceder tampoco a los miembros no estáticos de la clase (sean
métodos, atributos, propiedades, etc). También se puede especificar si un método es
virtual, sobrecargado o se debe ignorar la virtualidad.
En C# hay que especificar un valor de retorno, aunque si el método no devuelve nada
se especifica con el valor void. Si el valor especificado es distinto de void es obligatorio
devolver algo en la función (usandoreturn).
Hay que especificar un nombre para los métodos, normalmente es una buena idea que
el nombre sea explicatorio de lo que hace la función. También se recomienda escribir
un comentario sobre el método explicando su funcionamiento.
Se pueden incluir tantos parámeteros como se quiera (e incluso no poner parámetro).
Todos los parámetros especifican primero el tipo y luego el nombre que tienen dentro
de la función.
Se puede especificar algunos atributos a los parámetros que se pasan. Vamos a ver 2
posibles valores para estos atributos: ref: es usado para pasar un parámetro por
referencia. Para los tipos por referencia esto significa que se pueden asignar objetos a
las variables pasadas. Para los tipos por valor, lo que significa es que pueden ser
modificados dentro de la función. out: es como ref (pasa el valor por referencia) pero
además fuerza al método a inicializar el valor antes del final de la función (para cualquier
posible punto de retorno).
Como llamar a una función / método en C#:
Sintaxis:
Si el método pertenece a la misma clase:
[val = ]MyFunc([ref/out] param1, [ref/out] param2,…);
Si pertence a otra clase:
[val = ]myObj.MyFunc([ref/out] param1,…);
Si es un método estático (de otra clase):
[val = ]MyClass.MyFunc([ref/out] param1,…);
Si el valor de retorno es void o no es necesario guardarlo, se puede ahorrar esa primera
parte. Si la función toma parámetros ref/out éstos deben indicarse también en la llamada
a la función.
Ejemplos:
Declaración:
1
2
3
4
5
6
//Funcion que devuelve la suma de los parámetros que le pasamos
public int suma (int operando1, int operando2)
{
int resultado = operando1 + operando2;
return resultado;
}
Utilización:
1
2
3
4
//Mostramos por pantalla el resultado de la suma de dos números
Console.WriteLine("El resultado de la suma es: " + suma(2,4).ToString());
//Esto tendría como resultado en la consola
//El resultado de la suma es: 6
ARREGLOS
Los arreglosenC# (tambiénconocidoscomo Arrays) al igual que enC/C++,sonindexadosiniciando
en cero (0). La forma de trabajo es muy similar a la mayoría de lenguajes pero hay lagunas
diferencias que notarán.
Como declarar e inicializar un arreglo en C#
Cuandovayamos a declarar un arregloen debemoscolocarloscorchetesdespuésde tipode dato.
En C/C++ se estilaponerloscorchetesdespuésdel identificador,esocausaunerrorde compilación
en C#-
CODE: SELECCIONAR TODO
1. //Declaración erronea
2. int valores[];
3.
4. //Declaración valida
5. int[] valores;
En C# podemosindicarel tamañodel arregloluegode la declaración.Estonospermite decidirque
tamaño va a tener el arreglo según lo que necesitemos.
CODE: SELECCIONAR TODO
1. int[] valores; //valores sin inicializar
2. valores = new int[100]; //100 elementos
3. valores = new int[20]; //ahora contiene 20 elementos
Arreglos multi-dimensionales
En C# también podemos declarar arreglos multidimensionales, aquí unos ejemplos:
CODE: SELECCIONAR TODO
1. //Arreglos unidimensionales o de dimensión simple
2. int[] valores1; //sin inicializar
3. int[] valores2 = new int[50];
4.
5. //Arreglos multidimensionales
6. int[,] valores1; //sin inicializar
7. int[,] valores2 = new int[3,7]
8. int[,,] valores3 = new int[3,4,2]; //Arreglo de tres dimensiones
9.
10. //Arreglo de arreglos
11. int[][] matriz; //sin inicializar
12.
13. //Los arreglos de arreglos se inicializan de manera diferente
14. int[][] matriz = new int[3][];
15. for (int i = 0; i < matriz.Length; i++)
16. {
17. matriz[i] = new int[4];
18. }
Pueden combinarse los diferentes tipos de declaración.
Inicialización
Hay varias formas de inicializar los arreglos:
CODE: SELECCIONAR TODO
1. int[] valores = new int[10] {0,1,2,3,4,5,6,7,8,9};
2. string[] paises = new string[5] {"Argentina", "Bolivia", "Peru","Chile","Colombia"};
3.
4. //Inicializacion omitiendo el tamaño de la matriz
5. int[] valores = new int[] {0,1,2,3,4,5,6,7,8,9};
6. string[] paises = new string[] {"Argentina", "Bolivia", "Peru","Chile","Colombia"};
7.
8. //Tambien podemos omitir el operador new
9.
10. int[] valores = {0,1,2,3,4,5,6,7,8,9};
11. string[] paises = {"Argentina", "Bolivia", "Peru","Chile","Colombia"};
12.
Para los arreglos multidimensionales la cosa cambia un poco:
CODE: SELECCIONAR TODO
1. int[,] numeros = new int[3, 4] { {1, 2,3,4}, {9, 8,7,6}, {7, 6,2,5} };
2. string[,] regiones =new string[2, 3] { {"Argentina","Brasil","Peru"}, {"USA",";Mexico","Costa
Rica"} };
3.
4. //Tambien podemos omitir el tamaño de la matriz
5. int[,] numeros = new int[,] { {1, 2,3,4}, {9, 8,7,6}, {7, 6,2,5} };
6. string[,] regiones = new string[,] { {"Argentina","Brasil","Peru"}, {"USA",";Mexico","Costa
Rica"} };
7.
8. //Y tambien podemos olvidarnos del operador
9. int[,] numeros = { {1, 2,3,4}, {9, 8,7,6}, {7, 6,2,5} };
10. string[,] regiones = { {"Argentina","Brasil","Peru"}, {"USA",";Mexico","Costa Rica"} };
Para acceder a los miembros solo tenemos que citar el indice correcto en cada caso:
CODE: SELECCIONAR TODO
1. valores[1] = 4; //Cambia el valor del indice 1 a 4
2. numeros[2,1] = 10; //Cambia el valor de indice 2,1 a 10
3.
4. //En un arreglo de arreglos:
5. matriz[2][1] = 4;
6.
En C# los arreglos son objetos
Una ventajafrente aC++ es que losarreglossonobjetos(si conpropiedades),lapropiedasmasútil
es lenght (longitud) que nos indica que tamaño tiene nuestro arreglo. Aqui un ejemplo:
CODE: SELECCIONAR TODO
1. System.Console.WriteLine(valores.Length);
2. System.Console.WriteLine(numeros.Length);
3. System.Console.WriteLine(regiones.Length);
Navegar por los valores del arreglo (foreach)
En C# tambiénpodemosutilizarlasentencia foreach,esunamanerasimplede accederalosvalores
de un arreglo.
CODE: SELECCIONAR TODO
1. int[] valores = {3, 5, 2, 1, 5, 3, 7, 9, 8};
2. foreach (int i in valores)
3. {
4. Console.Write("{0} ", i);
5. }
6.
7. Console.Write(" ");
8.
9. //también en arreglos multidimensionales
10. int[,] numeros = new int[2, 3] {{5,2,1}, {7,4,5}, {2,9 ,10}};
11. foreach(int i in numeros)
12. {
13. Console.Write("{0} ", i);
14. }
CADENAS DE TEXTO
Las cadenasde texto representanal tipode datomásimportanteenunlenguaje,trasel tipodedato
númeroentero.Enefecto,todala información(al final el propósitode unprograma informáticoes
manipularinformación) consisteprincipalmenteencadenasde texto.Unagran parte al menos.Así,
manipular las cadenas de texto se vuelve esencial en cualquier lenguaje.
Si uno compara plataformas antiguas con plataformas modernas como Java y .NET, podemos
encontrardiferenciassignificativas.Probablementelamayordeéstasseaque hoyendíalascadenas
de texto son inmutables. Esto quiere decir que una cadena de texto que se crea ya no puede
cambiarse. Puede, en cambio, crear nuevas cadenas a partir de una. En fin, poco a poco.
¿Qué es una cadena de texto?
Una cadenade textoes unacolecciónsecuencial de caracteres,loscualesformanpalabrasydemás
tipo de información. Cada carácter es en realidad un carácter en formato Unicode.
La clase que representaauna cadenade textoesSystem.String,ylaque representauncarácter,es
System.Char.El operador""representaunacadenade textoconstante,yportantopuedeasignarse
directamente a una cadena de texto. El operador ‘ ‘ representa un carácter, y por tanto puede
asignarse a una variable apropiada.
string str = "Hola mundo";
char ch = 'H';
char[] chs = new char[] { ch, 'o', 'l', 'a', ' ', 'm', 'u', 'n', 'd', 'o' };
La clase stringtiene unmétodo,llamadoEmpty,que representaunacadenade textovacía. Equivale
a colocar la constante "".
string str = string.Empty;
str = "";
La clase string puede inicializarse de varias formas
// operador " "
string s1 = "Hola mundo";
// mediante el constructor
string s2 = new strnig("Hola mundo");
// a partir de un array de caracteres
string s3 = new string(
new char[] { 'H', 'o', 'l', 'a', ' ', 'm', 'u', 'n', 'd', 'o' });
// a partir de un carácter que se repite n veces
string s4 = new string('*', 10); // **********
// a partir de un grupo de bytes con signo
sbyte[] bytes = { 0x41, 0x42, 0x43, 0x44, 0x45, 0x00 };
unsafe {
sbyte* p = bytes;
string s5 = new string(p);
}
Los caracteres son una estructura,por tanto son tiposvalor (ValueType).Lascadenas de textoson
clases, y por tanto son tipos referencia.
ARRAYS
Los arrays son usados extensamente por los programadores para contener listas de datos en la
memoria, por ejemplo, los datos almacenados en un disco suelen leerse y ponerse dentro de un
array con el objetivo de facilitar la manipulaciónde dichos datos, ya que los datos en memoria
pueden ser modificados, clasificados, marcados para su eliminacion, etc. para luego ser reescritos
al disco. Otro ejemplo podría ser el de un menú de opciones que se desplegarán dentro de una
ventana para que el usuario pueda elegir una de éstas, en tales casos y cuando las opciones son
numerosas,solamente se ponenunascuantasde ellasdentrode laventanaperose le daal usuario
la oportunidadde poder subiry bajar a su antojopara ver el resto de opcionesque,aunque nose
vean en la ventana, forman parte del menú o array de opciones.
Array:
Un array esun conjuntode datos del mismotipoordenadosde formanlíneal unodespuésde otro.
Los componentesde unarray se han de referenciarpormediodel nombre del arrayy un índice de
desplazamiento para indicar el componente deseado.
Indices de un array
Los índicessonnúmerosque se utilizanparaidentificaracada unode loscomponentesde unarray.
A modode ejemplo,podemospensarque losíndicessoncomo losnúmerosde habitacionesde un
hotel,esdecir,parapoderdirigirnosaun hotel específicoesnecesariosaberel nombre del mismo,
luego, si queremos llegar a una habitación específica de dicho hotel necesitaremos, además del
nombre del hotel, el número de habitación deseado.
Dimensiones de un array
De acuerdo a la forma en que se construye o declara un array, éste puede ser clasificado como:
unidimensional, bidimensional y multidimensional. Los arrays que se emplean con mucha más
frecuenciasonlos estructuradosa manera de vector( array unidimensional ) y los estructuradosa
manera de matriz ( array bidimensional ), así, aunque en C++ se pueden crear estructuras
multidimensionales, en este capítulo solo trataremos con vectores y matrices.
Array unidimensional
Una array uni-dimensional esaquel endonde loscomponentessonaccesiblespor mediode uno y
solamente un índice que apunte al componente requerido. Los arrays de este tipo son conocidos
tambiénconel nombrede vectores.Conceptualmente,podemospensarenunarrayunidimensional
como unalistacompuestade datos,donde para referirnosaunode ellosemplearemosunnúmero
para indicar laposicióndel mismodentrode la lista.Por ejemplo,consideremosel casode la tabla
o array VentaSemanal,la cual está pensada para registrar las ventas de cada uno de los días de la
semana. De manera conceptual podemos ver el array como se muestra a continuación:
Nota: enC++ losarraysestánbasadosen0 ( cero), esdecir,el primerelementode unarray
se indexa mediante el 0, y el índice para el último de los elementos es igual al número de
componentes menos uno.
array: VentaSemanal
Si en el array VentaSemanalqueremosque el elemento4( por ejemplo) contengael valorde 8987
lo podemos lograr con la instrucción: VentaSemanal[4] = 8987; y el estado del array sería:
Array bidimensional
Un arraybi-dimensional esaquelendondeloscomponentessonaccesiblespormediode unapareja
de índices que apunten a la fila y a la columna del componente requerido.Los arrays de este tipo
sonconocidostambiénconel nombre de matrices.Conceptualmente,podemospensarenunarray
bidimensional comoenunalistacompuestade filasycolumnas,endonde para referirnosaunade
ellasemplearemosunnúmeroparaindicarlaposiciónde filayotronúmeroparaindicarlaposición
de la columna del componente deseado. Por ejemplo, consideremosel caso de la tabla o array
VentaSemanaQ,lacual estápensadapararegistrarlasventasde cada unode losdías de la semana
por cuatro semanas, o sea, una tabla de 7 x 4 elementos. De manera conceptual podemos ver el
array como se muestra a continuación:
C O L U M N A S
Si en el array VentaSemanaQ queremos que el elementode la fila 4, columna 3 ( por ejemplo )
contenga el valor de 5000 lo podemos lograr con la instrucción:VentaSemanaQ[4][3] = 5000; y el
estado del array sería:
Declaración de arrays en C, C++
En C, C++ para declarar un array se emplea la sintaxis:
donde,
 tipo se refiere al tipo de datos que contendrá el array. El tipo puede ser cualquiera de los
tipos estándar (char, int, float, etc.) o un tipo definido por el usuario. Es más, el tipo del
array puede ser de una estructura creada con: struct, union y class.
 identificador se refiere al nombre que le daremos al array.
 tamañoes opcional e indicael númerode elementosque contendráel array. Si un array se
declara sin tamaño, el mismo no podrá contener elemento alguno a menos que en la
declaración se emplee una lista de inicialización.
 lista de inicialización es opcional y se usa para establecer valores para cada uno de los
componentes del array. Si el array es declarado con un tamaño específico, el número de
valores inicializados no podrá ser mayor a dicho tamaño.
Ejemplos:
Iteraciones dentro de un array (vector)
El termino Iterar se refiere al hechode acceder(con el fin de leero escribir) sobre cada uno de los
componentes de un array. Así, para poner un ejemplo reconsideremos el caso de la
tabla VentaSemanal (vista en una sección anterior), y que dicho sea de paso es un array de 7
elementosde tipo double.Luego,vamosamostrarcomoejemplounprogramacompletoenel cual
se declara el array mencionadoconvaloresinicializados,que seránmostradosenpantallayal final
la sumade estos.Observe que lavariableiusadaparaiterardentrodel arrayva desde 0hasta FILAS
- 1 ( FILAS es el tamaño del array ).
Nota: por motivos de simplificación el programa está escrito al estilo de C estándar. Sin embargo
puede ser compilado y ejecutado en un compilador de C++.
Esta es la salida del programa:
Ventas de la semana
Iteraciones dentro de un array (matriz)
Con el fin de leer o escribir sobre cada uno de los componentes de una matriz se deben crear dos
ciclos de iteración. Así, para poner un ejemplo reconsideremos el caso de la
tabla VentaSemanaQ (vista en una sección anterior), y que dicho sea de paso es un array de 4 x
4 elementos de tipo double.Luego, vamos a mostrar como ejemplo un programa completoen el
cual se declara el array mencionadoconvaloresinicializados,que seránmostradosenpantallayal
final la sumade estos.Observe que eneste caso se utilizandosvariables,unapara iterarsobre las
filas y otra para iterar sobre las columnas de la matriz.
Salida del programa:
Ventas de cuatro semanas

Mais conteúdo relacionado

Mais procurados

Estructura sintactica de los lenguajes
Estructura sintactica de los lenguajesEstructura sintactica de los lenguajes
Estructura sintactica de los lenguajes
Fenix Flame
 
Estructura Sintactica
Estructura SintacticaEstructura Sintactica
Estructura Sintactica
luchoGL
 
Clase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_cClase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_c
kikeMerck
 
Estructuras de los lenguajes de programacion
Estructuras de los lenguajes de programacionEstructuras de los lenguajes de programacion
Estructuras de los lenguajes de programacion
ManuelDorante65
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
starduslex
 

Mais procurados (20)

PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 
Estructura sintactica de los lenguajes
Estructura sintactica de los lenguajesEstructura sintactica de los lenguajes
Estructura sintactica de los lenguajes
 
Ensayo de php
Ensayo de phpEnsayo de php
Ensayo de php
 
Ensayo php
Ensayo phpEnsayo php
Ensayo php
 
Estructura sintactica de los lenguajes de programacion y bases de datos
Estructura sintactica de los lenguajes de programacion y bases de datosEstructura sintactica de los lenguajes de programacion y bases de datos
Estructura sintactica de los lenguajes de programacion y bases de datos
 
Tema 7 www.fresymetal.com
Tema 7 www.fresymetal.comTema 7 www.fresymetal.com
Tema 7 www.fresymetal.com
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++
 
Tutorial C
Tutorial CTutorial C
Tutorial C
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Estructura Sintactica
Estructura SintacticaEstructura Sintactica
Estructura Sintactica
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
 
Visual c++
Visual c++Visual c++
Visual c++
 
C++
C++C++
C++
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Clase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_cClase 3introduccion a_lenguace_c
Clase 3introduccion a_lenguace_c
 
Estructuras de los lenguajes de programacion
Estructuras de los lenguajes de programacionEstructuras de los lenguajes de programacion
Estructuras de los lenguajes de programacion
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
Programacion c
Programacion cProgramacion c
Programacion c
 
Transparencias4
Transparencias4Transparencias4
Transparencias4
 

Semelhante a Programacion C#

Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
Ysaac Ruiz
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1
joeshego
 
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptxConceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
galletasdecoco84
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
zousbabastre
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
Jennybeatriz1
 
principales datos simples
principales datos simplesprincipales datos simples
principales datos simples
edgarcr717
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuela
royimar
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
karenyulithza
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
kevinwm17
 

Semelhante a Programacion C# (20)

Presentación de c #
Presentación de c #Presentación de c #
Presentación de c #
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
 
Identificadores, variables y constantes
Identificadores, variables y constantesIdentificadores, variables y constantes
Identificadores, variables y constantes
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Pascal
PascalPascal
Pascal
 
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptxConceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
Conceptos-HTML-y-JavaScript-Bloque-3-JavaScript.pptx
 
Funciones
FuncionesFunciones
Funciones
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
 
Segundo trabajo
Segundo trabajoSegundo trabajo
Segundo trabajo
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
 
principales datos simples
principales datos simplesprincipales datos simples
principales datos simples
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuela
 
La programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaLa programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortada
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
FORMATO DIAPOSITIVAS - dart y flutter.pptx
FORMATO DIAPOSITIVAS - dart y flutter.pptxFORMATO DIAPOSITIVAS - dart y flutter.pptx
FORMATO DIAPOSITIVAS - dart y flutter.pptx
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
 

Mais de Andrew King (9)

Taller mantenimiento
Taller mantenimientoTaller mantenimiento
Taller mantenimiento
 
Pasos para instalar dos trajetas graficas
Pasos para instalar dos trajetas graficasPasos para instalar dos trajetas graficas
Pasos para instalar dos trajetas graficas
 
Mantenimiento
MantenimientoMantenimiento
Mantenimiento
 
Programacion c
Programacion cProgramacion c
Programacion c
 
Estructura jerarquica
Estructura jerarquicaEstructura jerarquica
Estructura jerarquica
 
Omar andres montaña reyes
Omar andres montaña reyesOmar andres montaña reyes
Omar andres montaña reyes
 
Que es una directiva de preprocesador
Que es una directiva de preprocesadorQue es una directiva de preprocesador
Que es una directiva de preprocesador
 
Componentes principales de un computador
Componentes principales de un computadorComponentes principales de un computador
Componentes principales de un computador
 
Componentes principales de un computador
Componentes principales de un computadorComponentes principales de un computador
Componentes principales de un computador
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Programacion C#

  • 1. OMAR ANDRES MONTAÑA REYES PROGRAMACION C# PROGRAMACION ESTRUCTURADA BOGOTA D.C. CIDE 2015
  • 2. FUNCIONES Definición y Uso: Una función es un bloque de código que realiza x operaciones y puede devolver o no algún valor. La principal usabilidad de las funciones y los métodos es aclarar y resusar la programación. Si tuviéramos todo el código de una apicación del tirón sería muy difcícil de leer y de mantener. Por ejemplo si tenemos un programa en el que hacemos una operación de sumar dos números y luego mostrárla por pantalla, podríamos hacer una función a la que le diéramos los 2 números y ya nos hiciera ella el resto. La diferencia entre un método y una función es simplemente que los métodos están dentro de las clases, es decir, a las funciones dentro de las clases les llamamos métodos. Ya que C# sólo admite funciones dentro de clases, todo lo que nos encontramos son métodos. Declaración: Sintaxis: 1 2 3 4 5 6 7 8 [private/protected/public/internal] [virtual/override/new] [static] returnType NameOfFunction( [ref/out] typeParam1 nameParam1, … [ref/out] typeParamN nameParamN) { // Code } Se puede especificar la visibilidad del método (privada/protegida/pública), si no se especifica, los métodos son privados. Si el keyword static se declara quiere decir que es un método estático. Estos métodos pueden llamarse sin necesidad de tener un objeto de la clase a la que pertencen, aunque no podrán acceder tampoco a los miembros no estáticos de la clase (sean métodos, atributos, propiedades, etc). También se puede especificar si un método es virtual, sobrecargado o se debe ignorar la virtualidad. En C# hay que especificar un valor de retorno, aunque si el método no devuelve nada se especifica con el valor void. Si el valor especificado es distinto de void es obligatorio devolver algo en la función (usandoreturn).
  • 3. Hay que especificar un nombre para los métodos, normalmente es una buena idea que el nombre sea explicatorio de lo que hace la función. También se recomienda escribir un comentario sobre el método explicando su funcionamiento. Se pueden incluir tantos parámeteros como se quiera (e incluso no poner parámetro). Todos los parámetros especifican primero el tipo y luego el nombre que tienen dentro de la función. Se puede especificar algunos atributos a los parámetros que se pasan. Vamos a ver 2 posibles valores para estos atributos: ref: es usado para pasar un parámetro por referencia. Para los tipos por referencia esto significa que se pueden asignar objetos a las variables pasadas. Para los tipos por valor, lo que significa es que pueden ser modificados dentro de la función. out: es como ref (pasa el valor por referencia) pero además fuerza al método a inicializar el valor antes del final de la función (para cualquier posible punto de retorno). Como llamar a una función / método en C#: Sintaxis: Si el método pertenece a la misma clase: [val = ]MyFunc([ref/out] param1, [ref/out] param2,…); Si pertence a otra clase: [val = ]myObj.MyFunc([ref/out] param1,…); Si es un método estático (de otra clase): [val = ]MyClass.MyFunc([ref/out] param1,…); Si el valor de retorno es void o no es necesario guardarlo, se puede ahorrar esa primera parte. Si la función toma parámetros ref/out éstos deben indicarse también en la llamada a la función. Ejemplos: Declaración:
  • 4. 1 2 3 4 5 6 //Funcion que devuelve la suma de los parámetros que le pasamos public int suma (int operando1, int operando2) { int resultado = operando1 + operando2; return resultado; } Utilización: 1 2 3 4 //Mostramos por pantalla el resultado de la suma de dos números Console.WriteLine("El resultado de la suma es: " + suma(2,4).ToString()); //Esto tendría como resultado en la consola //El resultado de la suma es: 6 ARREGLOS Los arreglosenC# (tambiénconocidoscomo Arrays) al igual que enC/C++,sonindexadosiniciando en cero (0). La forma de trabajo es muy similar a la mayoría de lenguajes pero hay lagunas diferencias que notarán. Como declarar e inicializar un arreglo en C# Cuandovayamos a declarar un arregloen debemoscolocarloscorchetesdespuésde tipode dato. En C/C++ se estilaponerloscorchetesdespuésdel identificador,esocausaunerrorde compilación en C#- CODE: SELECCIONAR TODO 1. //Declaración erronea 2. int valores[]; 3. 4. //Declaración valida 5. int[] valores; En C# podemosindicarel tamañodel arregloluegode la declaración.Estonospermite decidirque tamaño va a tener el arreglo según lo que necesitemos. CODE: SELECCIONAR TODO
  • 5. 1. int[] valores; //valores sin inicializar 2. valores = new int[100]; //100 elementos 3. valores = new int[20]; //ahora contiene 20 elementos Arreglos multi-dimensionales En C# también podemos declarar arreglos multidimensionales, aquí unos ejemplos: CODE: SELECCIONAR TODO 1. //Arreglos unidimensionales o de dimensión simple 2. int[] valores1; //sin inicializar 3. int[] valores2 = new int[50]; 4. 5. //Arreglos multidimensionales 6. int[,] valores1; //sin inicializar 7. int[,] valores2 = new int[3,7] 8. int[,,] valores3 = new int[3,4,2]; //Arreglo de tres dimensiones 9. 10. //Arreglo de arreglos 11. int[][] matriz; //sin inicializar 12. 13. //Los arreglos de arreglos se inicializan de manera diferente 14. int[][] matriz = new int[3][]; 15. for (int i = 0; i < matriz.Length; i++) 16. { 17. matriz[i] = new int[4]; 18. } Pueden combinarse los diferentes tipos de declaración. Inicialización Hay varias formas de inicializar los arreglos:
  • 6. CODE: SELECCIONAR TODO 1. int[] valores = new int[10] {0,1,2,3,4,5,6,7,8,9}; 2. string[] paises = new string[5] {"Argentina", "Bolivia", "Peru","Chile","Colombia"}; 3. 4. //Inicializacion omitiendo el tamaño de la matriz 5. int[] valores = new int[] {0,1,2,3,4,5,6,7,8,9}; 6. string[] paises = new string[] {"Argentina", "Bolivia", "Peru","Chile","Colombia"}; 7. 8. //Tambien podemos omitir el operador new 9. 10. int[] valores = {0,1,2,3,4,5,6,7,8,9}; 11. string[] paises = {"Argentina", "Bolivia", "Peru","Chile","Colombia"}; 12. Para los arreglos multidimensionales la cosa cambia un poco: CODE: SELECCIONAR TODO 1. int[,] numeros = new int[3, 4] { {1, 2,3,4}, {9, 8,7,6}, {7, 6,2,5} }; 2. string[,] regiones =new string[2, 3] { {"Argentina","Brasil","Peru"}, {"USA",";Mexico","Costa Rica"} }; 3. 4. //Tambien podemos omitir el tamaño de la matriz 5. int[,] numeros = new int[,] { {1, 2,3,4}, {9, 8,7,6}, {7, 6,2,5} }; 6. string[,] regiones = new string[,] { {"Argentina","Brasil","Peru"}, {"USA",";Mexico","Costa Rica"} }; 7. 8. //Y tambien podemos olvidarnos del operador 9. int[,] numeros = { {1, 2,3,4}, {9, 8,7,6}, {7, 6,2,5} }; 10. string[,] regiones = { {"Argentina","Brasil","Peru"}, {"USA",";Mexico","Costa Rica"} }; Para acceder a los miembros solo tenemos que citar el indice correcto en cada caso:
  • 7. CODE: SELECCIONAR TODO 1. valores[1] = 4; //Cambia el valor del indice 1 a 4 2. numeros[2,1] = 10; //Cambia el valor de indice 2,1 a 10 3. 4. //En un arreglo de arreglos: 5. matriz[2][1] = 4; 6. En C# los arreglos son objetos Una ventajafrente aC++ es que losarreglossonobjetos(si conpropiedades),lapropiedasmasútil es lenght (longitud) que nos indica que tamaño tiene nuestro arreglo. Aqui un ejemplo: CODE: SELECCIONAR TODO 1. System.Console.WriteLine(valores.Length); 2. System.Console.WriteLine(numeros.Length); 3. System.Console.WriteLine(regiones.Length); Navegar por los valores del arreglo (foreach) En C# tambiénpodemosutilizarlasentencia foreach,esunamanerasimplede accederalosvalores de un arreglo. CODE: SELECCIONAR TODO 1. int[] valores = {3, 5, 2, 1, 5, 3, 7, 9, 8}; 2. foreach (int i in valores) 3. { 4. Console.Write("{0} ", i); 5. } 6. 7. Console.Write(" "); 8. 9. //también en arreglos multidimensionales
  • 8. 10. int[,] numeros = new int[2, 3] {{5,2,1}, {7,4,5}, {2,9 ,10}}; 11. foreach(int i in numeros) 12. { 13. Console.Write("{0} ", i); 14. } CADENAS DE TEXTO Las cadenasde texto representanal tipode datomásimportanteenunlenguaje,trasel tipodedato númeroentero.Enefecto,todala información(al final el propósitode unprograma informáticoes manipularinformación) consisteprincipalmenteencadenasde texto.Unagran parte al menos.Así, manipular las cadenas de texto se vuelve esencial en cualquier lenguaje. Si uno compara plataformas antiguas con plataformas modernas como Java y .NET, podemos encontrardiferenciassignificativas.Probablementelamayordeéstasseaque hoyendíalascadenas de texto son inmutables. Esto quiere decir que una cadena de texto que se crea ya no puede cambiarse. Puede, en cambio, crear nuevas cadenas a partir de una. En fin, poco a poco. ¿Qué es una cadena de texto? Una cadenade textoes unacolecciónsecuencial de caracteres,loscualesformanpalabrasydemás tipo de información. Cada carácter es en realidad un carácter en formato Unicode. La clase que representaauna cadenade textoesSystem.String,ylaque representauncarácter,es System.Char.El operador""representaunacadenade textoconstante,yportantopuedeasignarse directamente a una cadena de texto. El operador ‘ ‘ representa un carácter, y por tanto puede asignarse a una variable apropiada. string str = "Hola mundo"; char ch = 'H'; char[] chs = new char[] { ch, 'o', 'l', 'a', ' ', 'm', 'u', 'n', 'd', 'o' }; La clase stringtiene unmétodo,llamadoEmpty,que representaunacadenade textovacía. Equivale a colocar la constante "". string str = string.Empty; str = ""; La clase string puede inicializarse de varias formas
  • 9. // operador " " string s1 = "Hola mundo"; // mediante el constructor string s2 = new strnig("Hola mundo"); // a partir de un array de caracteres string s3 = new string( new char[] { 'H', 'o', 'l', 'a', ' ', 'm', 'u', 'n', 'd', 'o' }); // a partir de un carácter que se repite n veces string s4 = new string('*', 10); // ********** // a partir de un grupo de bytes con signo sbyte[] bytes = { 0x41, 0x42, 0x43, 0x44, 0x45, 0x00 }; unsafe { sbyte* p = bytes; string s5 = new string(p); } Los caracteres son una estructura,por tanto son tiposvalor (ValueType).Lascadenas de textoson clases, y por tanto son tipos referencia. ARRAYS Los arrays son usados extensamente por los programadores para contener listas de datos en la memoria, por ejemplo, los datos almacenados en un disco suelen leerse y ponerse dentro de un array con el objetivo de facilitar la manipulaciónde dichos datos, ya que los datos en memoria pueden ser modificados, clasificados, marcados para su eliminacion, etc. para luego ser reescritos al disco. Otro ejemplo podría ser el de un menú de opciones que se desplegarán dentro de una ventana para que el usuario pueda elegir una de éstas, en tales casos y cuando las opciones son numerosas,solamente se ponenunascuantasde ellasdentrode laventanaperose le daal usuario la oportunidadde poder subiry bajar a su antojopara ver el resto de opcionesque,aunque nose vean en la ventana, forman parte del menú o array de opciones. Array: Un array esun conjuntode datos del mismotipoordenadosde formanlíneal unodespuésde otro. Los componentesde unarray se han de referenciarpormediodel nombre del arrayy un índice de desplazamiento para indicar el componente deseado.
  • 10. Indices de un array Los índicessonnúmerosque se utilizanparaidentificaracada unode loscomponentesde unarray. A modode ejemplo,podemospensarque losíndicessoncomo losnúmerosde habitacionesde un hotel,esdecir,parapoderdirigirnosaun hotel específicoesnecesariosaberel nombre del mismo, luego, si queremos llegar a una habitación específica de dicho hotel necesitaremos, además del nombre del hotel, el número de habitación deseado. Dimensiones de un array De acuerdo a la forma en que se construye o declara un array, éste puede ser clasificado como: unidimensional, bidimensional y multidimensional. Los arrays que se emplean con mucha más frecuenciasonlos estructuradosa manera de vector( array unidimensional ) y los estructuradosa manera de matriz ( array bidimensional ), así, aunque en C++ se pueden crear estructuras multidimensionales, en este capítulo solo trataremos con vectores y matrices. Array unidimensional Una array uni-dimensional esaquel endonde loscomponentessonaccesiblespor mediode uno y solamente un índice que apunte al componente requerido. Los arrays de este tipo son conocidos tambiénconel nombrede vectores.Conceptualmente,podemospensarenunarrayunidimensional como unalistacompuestade datos,donde para referirnosaunode ellosemplearemosunnúmero para indicar laposicióndel mismodentrode la lista.Por ejemplo,consideremosel casode la tabla o array VentaSemanal,la cual está pensada para registrar las ventas de cada uno de los días de la semana. De manera conceptual podemos ver el array como se muestra a continuación: Nota: enC++ losarraysestánbasadosen0 ( cero), esdecir,el primerelementode unarray se indexa mediante el 0, y el índice para el último de los elementos es igual al número de componentes menos uno. array: VentaSemanal Si en el array VentaSemanalqueremosque el elemento4( por ejemplo) contengael valorde 8987 lo podemos lograr con la instrucción: VentaSemanal[4] = 8987; y el estado del array sería:
  • 11. Array bidimensional Un arraybi-dimensional esaquelendondeloscomponentessonaccesiblespormediode unapareja de índices que apunten a la fila y a la columna del componente requerido.Los arrays de este tipo sonconocidostambiénconel nombre de matrices.Conceptualmente,podemospensarenunarray bidimensional comoenunalistacompuestade filasycolumnas,endonde para referirnosaunade ellasemplearemosunnúmeroparaindicarlaposiciónde filayotronúmeroparaindicarlaposición de la columna del componente deseado. Por ejemplo, consideremosel caso de la tabla o array VentaSemanaQ,lacual estápensadapararegistrarlasventasde cada unode losdías de la semana por cuatro semanas, o sea, una tabla de 7 x 4 elementos. De manera conceptual podemos ver el array como se muestra a continuación: C O L U M N A S
  • 12. Si en el array VentaSemanaQ queremos que el elementode la fila 4, columna 3 ( por ejemplo ) contenga el valor de 5000 lo podemos lograr con la instrucción:VentaSemanaQ[4][3] = 5000; y el estado del array sería: Declaración de arrays en C, C++ En C, C++ para declarar un array se emplea la sintaxis: donde,  tipo se refiere al tipo de datos que contendrá el array. El tipo puede ser cualquiera de los tipos estándar (char, int, float, etc.) o un tipo definido por el usuario. Es más, el tipo del array puede ser de una estructura creada con: struct, union y class.  identificador se refiere al nombre que le daremos al array.  tamañoes opcional e indicael númerode elementosque contendráel array. Si un array se declara sin tamaño, el mismo no podrá contener elemento alguno a menos que en la declaración se emplee una lista de inicialización.  lista de inicialización es opcional y se usa para establecer valores para cada uno de los componentes del array. Si el array es declarado con un tamaño específico, el número de valores inicializados no podrá ser mayor a dicho tamaño.
  • 13. Ejemplos: Iteraciones dentro de un array (vector) El termino Iterar se refiere al hechode acceder(con el fin de leero escribir) sobre cada uno de los componentes de un array. Así, para poner un ejemplo reconsideremos el caso de la tabla VentaSemanal (vista en una sección anterior), y que dicho sea de paso es un array de 7 elementosde tipo double.Luego,vamosamostrarcomoejemplounprogramacompletoenel cual se declara el array mencionadoconvaloresinicializados,que seránmostradosenpantallayal final la sumade estos.Observe que lavariableiusadaparaiterardentrodel arrayva desde 0hasta FILAS - 1 ( FILAS es el tamaño del array ). Nota: por motivos de simplificación el programa está escrito al estilo de C estándar. Sin embargo puede ser compilado y ejecutado en un compilador de C++. Esta es la salida del programa: Ventas de la semana
  • 14. Iteraciones dentro de un array (matriz)
  • 15. Con el fin de leer o escribir sobre cada uno de los componentes de una matriz se deben crear dos ciclos de iteración. Así, para poner un ejemplo reconsideremos el caso de la tabla VentaSemanaQ (vista en una sección anterior), y que dicho sea de paso es un array de 4 x 4 elementos de tipo double.Luego, vamos a mostrar como ejemplo un programa completoen el cual se declara el array mencionadoconvaloresinicializados,que seránmostradosenpantallayal final la sumade estos.Observe que eneste caso se utilizandosvariables,unapara iterarsobre las filas y otra para iterar sobre las columnas de la matriz. Salida del programa:
  • 16. Ventas de cuatro semanas