martes, 2 de diciembre de 2014

Tareas Autónoma 02/12/2014

Ejercicios propuestos.

1) Escribir un programa que pida 10 números enteros por teclado y que imprima por pantalla:
I. Cuántos de esos números son pares.
II.Cuál es el valor del número máximo.
III.Cuál es el valor del número mínimo.

namespace Ejercicio1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.Clear();
            int[] arreglo = new int[10]; 
            int i=0,conteo=0,esclavo=0,mayor=0,menor=0;
               Console.WriteLine("\t \t*** Cantidad de números pares, mayor y menor *** \n");

             for (i=0; i<10; i++)

             {
                 Console.Write("\tIntroduzca el " + (i + 1) + " valor: ");
                arreglo[i] = int.Parse(Console.ReadLine());
              }
            for (i=0; i<10; i++)
            {
                if (arreglo[i] % 2 == 0)
                {
                    conteo=conteo + 1;
                }
            }
            for (i=0; i<10; i++)
            {
                if (arreglo[i] > mayor)
                {
                    mayor = arreglo[i];
                    esclavo = arreglo[i];
                }
            }
            for (i=0; i<10; i++)
            {
                if (arreglo[i] <= esclavo)    
                {
                    menor = arreglo[i];
                    esclavo = arreglo[i];
                }
               }
        Console.ForegroundColor = ConsoleColor.Yellow;
        Console.WriteLine("\n\t**** Resultados ****");
        Console.WriteLine("\tNúmero de pares : " + conteo);
        Console.WriteLine("\tNúmero mayor    : " + mayor);
        Console.WriteLine("\tNúmero menor    : " + menor);
        Console.ReadKey();
        }
    }
}



2) Escribir un programa que lea un vector de 10 elementos. Deberá imprimir el mismo vector por pantalla pero invertido. Ejemplo: dado el vector 1 2 3 4 5 6 7 8 9 10 el programa debería imprimir 10 9 8 7 6 5 4 3 2 1.

namespace Ejercicio2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.Clear();
            int[] arreglo = new int[10];
            int i = 0;

            Console.WriteLine("\t \t*** Números invertidos*** \n");
            for (i = 0; i < 10; i++)
            {
                Console.Write("\tIngrese el " + (i+1) + " número: ");
                arreglo[i] = int.Parse(Console.ReadLine());
            }
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.Write("\n\tOrden original   : ");
            for (i = 0; i < 10; i++)
            {
                Console.Write(arreglo[i] + ",");
            }
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.Write("\n\tOrden invertido  : ");
            for (i = 9; i >= 0; i--)
            {
                Console.Write(arreglo[i] + ",");

            }
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.ReadKey();
        }
    }
}


3) Escribir un programa que lea 10 números por teclado. Luego lea dos más e indique si éstos están entre los anteriores.

namespace ejercicio3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.Clear();
            int[] arreglo = new int[10];
            int i=0,contav1=0,contav2=0;
            Console.WriteLine("\t \t*** Comparación de números *** \n");
            for (i=0; i<10; i++)
            {
                Console.Write("\tIngrese el " + (i+1) + " número: ");
                arreglo[i] = int.Parse(Console.ReadLine());
            }
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("\n\n\t \t*** Ingrese dos valores para comparar ****");
            Console.Write("\tIngrese el 1 valor: ");
            int valor1 = int.Parse(Console.ReadLine());
            Console.Write("\tIngrese el 2 valor: ");
            int valor2 = int.Parse(Console.ReadLine());

            for ( i=0; i<10; i++)
            {
                if (arreglo[i]==valor1)
                {
                    contav1++;
                }
                else if(arreglo[i]==valor2)
                {
                    contav2++;
                }
            }
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.Write("\n\tEl número "+ valor1 + " se repite " + contav1 + " veces.");
            Console.Write("\n\tEl número " + valor2 + " se repite " + contav2 + " veces.");
            Console.ReadKey();
            }
        }
    }



4) Escribir un programa que lea una matriz de números enteros y que devuelva la suma de los elementos positivos de la matriz y la suma de los elementos negativos. 

namespace Ejercicio4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.Clear();
            int[,] matriz = new int[10,10]; 
            int i=0,c=0,negativos=0,positivos=0;
            Console.WriteLine("\t \t*** Matriz de números positivos y negativos ");
            Console.Write("\n\t Ingrese los valores de la matriz: ");
            for (i = 1; i <= matriz.GetLength(0); i++)
            {
                for (c = 1; c <= matriz.GetLength(1); c++)
                {
                    matriz[i,c] = int.Parse(Console.ReadLine()); ;
                }
            }
            for (i = 1; i <= matriz.GetLength(1); i++)
            {
                for (c = 1; c <= matriz.GetLength(0); c++)
                {
                    if (matriz[i,c] > 0)
                    {
                        positivos = positivos + matriz[i,c];
                    }
                    else
                    {
                        negativos = negativos + matriz[i,c];  
                    }
                }
            }
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("\n\tSuma de los numeros positivos: " + positivos);
            Console.WriteLine("\tSuma de los numeros negativos: " + negativos);
            Console.ReadKey();
        }
    }
}

Realizar un mentefacto de cadenas:


Valores de cadenas constantes

Recordando la presentación de arreglos hecha, en donde las cadenas están definidas como un arreglo de caracteres o un apuntador a una porción de memoria conteniendo caracteres ASCII. Una cadena en C es una secuencia de cero o más caracteres seguidas por un caracter NULL o \0:
Es importante preservar el caracter de terminación NULL, ya que con éste es como C define y maneja las longitudes de las cadenas. Todas las funciones de la biblioteca estándar de C lo requieren para una operación satisfactoria.
En general, aparte de algunas funciones restringidas en longitud (strncat(), strncmp() y strncpy()), al menos que se creen cadenas a mano, no se deberán encontrar problemas. Se deberán usar las funciones para manejo de cadenas y no tratar de manipular las cadenas en forma manual desmantelando y ensamblando cadenas.
Funciones necesarias para el manejo de cadenas adecuadas para  el desarrollo de la aplicación informática.

Las funciones más comunes son descritas a continuación:

• char *strcpy(const char *dest, const char *orig) -- Copia la cadena de caracteres apuntada por origen (incluyendo el carácter terminador '\0') al vector apuntado por dest. Las cadenas no deben solaparse, y la de destino, debe ser suficientemente grande como para alojar la copia.
• int strcmp(const char *s1, const char *s2) -- Compara las dos cadenas de caracteres s1 y s2. Devuelve un entero menor, igual o mayor que cero si se encuentra que s1 es, respectivamente, menor que, igual a, o mayor que s2.
• char *strerror(int errnum) -- Devuelve un mensaje de error que corresponde a un número de error.
• int strlen(const char *s) -- Calcula la longitud de la cadena de caracteres.
• char *strncat(char *s1, const char *s2, size_t n) -- Agrega n caracteres de s2 a s1.
• int strncmp(const char *s1, char *s2, size_t n) -- Compara los primeros n caracteres de dos cadenas.
• char *strncpy(const char *s1, const char *s2, size_t n) -- Copia los primeros n caracteres de s2 a s1.
• strcasecmp(const char *s1, const char *s2) -- versión que ignora si son mayúsculas o minúsculas de strcmp().
• strncasecmp(const char *s1, const char *s2, size_t n) -- versión insensible a mayúsculas o minúsculas de strncmp() que compara los primeros n caracteres de s1.

Fuentes:
Harvey M. Deitel y Paul J. Deitel , Cómo programar en C#, 2da Edición  

martes, 25 de noviembre de 2014

TAREA ARRAYS 2

1.- Determinar si un numero entero esta dentro de un arrays:

namespace EnteroArrays
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.Clear();

            int[] arreglo = new int[5] { 1, 2, 3, 4, 5 };
            int[] n1 = new int[5];
            Console.WriteLine("\t\t\t\tLista de Arreglo");

            Console.WriteLine("\n\t" + arreglo[0]);
            Console.WriteLine("\n\t" + arreglo[1]);
            Console.WriteLine("\n\t" + arreglo[2]);
            Console.WriteLine("\n\t" + arreglo[3]);
            Console.WriteLine("\n\t" + arreglo[4]);

            Console.WriteLine("\n\n\t\tEl número entero es: " + arreglo[3]);
            Console.ReadLine();

        }
    }

}

2.- Un array con 5 números enteros devuelve un numero entero que sera el mayor de los elementos del Arrays:

namespace CincoEnteros
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.Clear();

            int[] arreglo = new int[5] { 1, 2, 3, 4, 5 };
            int[] n1 = new int[5];
            Console.WriteLine("\t\t\t\tLista de Arreglo");

            Console.WriteLine("\n\t" + arreglo[0]);
            Console.WriteLine("\n\t" + arreglo[1]);
            Console.WriteLine("\n\t" + arreglo[2]);
            Console.WriteLine("\n\t" + arreglo[3]);
            Console.WriteLine("\n\t" + arreglo[4]);

            Console.WriteLine("\n\n\t\tEl número entero es: " + arreglo[3]);
            Console.ReadLine();

        }
    }

}

3.- Un programa que pida al usuario cuatro números, calcule la media aritmética y lo muestre en pantalla:

namespace MediaAritmetica
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Clear();
            int media = 0;
            int[] elementos = new int[4];
            Console.Write("Ingrese el primer valor  : ");
            elementos[0] = int.Parse(Console.ReadLine());
            Console.Write("Ingrese el segundo valor : ");
            elementos[1] = int.Parse(Console.ReadLine());
            Console.Write("Ingrese el tercer valor  : ");
            elementos[2] = int.Parse(Console.ReadLine());
            Console.Write("Ingrese el cuarto valor  : ");
            elementos[3] = int.Parse(Console.ReadLine());
            media = elementos[0] + elementos[1] + elementos[2] + elementos[3]/4;
            Console.Clear();
            Console.WriteLine("Los elementos son:"+"\n" + elementos[0] + "\n" + elementos[1] + "\n" + elementos[2] + "\n" + elementos[3]);
            Console.Write("La Media Aritmetica es: " + media);
            Console.ReadKey();
        }
    }
}

4.- Definir un grupo de 5 números enteros y halla la suma:

namespace ArregloSuma
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Clear();
            int suma = 0;
            int[] elementos = new int[5];
            Console.Write("Ingrese el primer valor  : ");
            elementos[0] = int.Parse(Console.ReadLine());
            Console.Write("Ingrese el segundo valor : ");
            elementos[1] = int.Parse(Console.ReadLine());
            Console.Write("Ingrese el tercer valor  : ");
            elementos[2] = int.Parse(Console.ReadLine());
            Console.Write("Ingrese el cuarto valor  : ");
            elementos[3] = int.Parse(Console.ReadLine());
            Console.Write("Ingrese el quinto valor  : ");
            elementos[4] = int.Parse(Console.ReadLine());
            suma=elementos[0]+elementos[1]+elementos[2]+elementos[3]+elementos[4];
            Console.Write("La suma del arreglo es: " + suma);
            Console.ReadKey();
        }
        }

    }

martes, 11 de noviembre de 2014

TAREA ARREGLOS EN CLASES

class ArraysLaboratorio
    {
        static void Main(string[] args)
        {
            int[] arreglo1 = new int[5]{1,2,3,4,5};
           
            Console.WriteLine("\tLos números por bucle son: ");
                for (int i = 0; i < arreglo1.Length; i++)
                {
                    Console.WriteLine("\t" + arreglo1[i]);
                   
                }
                Console.ReadKey();

        }
    }

ACTIVIDADES AUTÓNOMAS 6 DE noviembre de 2014

ACTIVIDADES AUTÓNOMAS
6 DE noviembre de 2014

  1. ¿Se puede declarar una matriz unidimensional de cinco enteros? , si su respuesta es sí, explique cómo.
Sí de la siguiente forma: int[] array = new int[5];

  1. ¿Una matriz que almacena elementos de cadena se puede declarar del mismo modo que enteros?, si su respuesta e si, como?,
Sí de la siguiente forma: string[] stringArray = new string[6];

  1. ¿Es posible inicializar una matriz en el momento de su declaración. si su respuesta es sí, como?
Si es posible inicializar una matriz en el momento de su declaración, no es necesario especificar el rango ya que éste viene dado por el número de elementos de la lista de inicialización.
int[] array1 = new int[] { 1, 3, 5, 7, 9 };

  1. ¿Cuándo se inicializa una matriz en el momento de su declaración, que métodos abreviados se pueden usar?
int[] array2 = { 1, 3, 5, 7, 9 };
string[] weekDays2 = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};

  1. ¿Es posible declarar una variable de matriz sin inicializarla?, si su respuesta es si, como?
Sí es posible declarar una variable de matriz sin inicializarla, pero se debe utilizar el operador new al asignar una matriz a esta variable.
  1. La siguiente declaración de matriz a que corresponde?
SomeType[] array4 = new SomeType[10];
La instrucción crea una matriz de 10 elementos cada uno de los cuales se inicializa con una referencia nula.

  1. ¿Qué es SomeType?
SomeType es un tipo de valor o un tipo de referencia.
  1. ¿Cuáles son las categorías del sistema de tipos de C#?
  • Tipos de valor
  • Tipos de referencia
  • Tipos de puntero

  1. ¿Qué propiedad se utiliza para obtener la longitud de una matriz?
Se utiliza la propiedad Length para obtener la longitud de una matriz.

  1. ¿Qué  propiedad se usa para mostrar el número de dimensiones de una matriz?
Puede utilizar la propiedad Rank para determinar cuántas dimensiones tiene una matriz.

  1. La clase Array que  otros métodos y propiedades útiles para ordenar, buscar y copiar matrices?
Propiedades
   
Nombre
Descripción
Obtiene un valor que indica si la matriz Array tiene un tamaño fijo.
Obtiene un valor que indica si la matriz Array es de solo lectura.
Obtiene un valor que indica si el acceso a la matriz Array está sincronizado (es seguro para la ejecución de subprocesos).
Obtiene un entero de 32 bits que representa el número total de elementos de todas las dimensiones de Array.
Obtiene un entero de 64 bits que representa el número total de elementos de todas las dimensiones de Array.
Obtiene el rango (número de dimensiones) de Array. Por ejemplo, una matriz unidimensional devuelve 1, una matriz bidimensional devuelve 2, y así sucesivamente.
Obtiene un objeto que se puede utilizar para sincronizar el acceso a Array.

Métodos

Nombre
Descripción
Devuelve un contenedor de solo lectura para la matriz especificada.
Busca un elemento específico en toda una matriz unidimensional y ordenada, utilizando la interfaz IComparable implementada por cada elemento de la matriz y por el objeto especificado.
Busca un valor por toda una matriz unidimensional y ordenada, utilizando la interfaz IComparer especificada.
Busca un valor en un intervalo de elementos de una matriz unidimensional y ordenada, utilizando la interfaz IComparable implementada por cada elemento de la matriz y por el valor especificado.
Busca un valor en un intervalo de elementos de una matriz unidimensional y ordenada, utilizando la interfaz IComparer especificada.
Busca un elemento específico en toda una matriz unidimensional y ordenada, utilizando la interfaz genérica IComparable<T> implementada por cada elemento de la Array y por el objeto especificado.
Busca un valor por toda una matriz unidimensional y ordenada, utilizando la interfaz genérica IComparer<T> especificada.
Busca un valor en un intervalo de elementos de una matriz unidimensional y ordenada, utilizando la interfaz genérica IComparable<T> implementada por cada elemento de la Array y por el valor especificado.
Busca un valor en un intervalo de elementos de una matriz unidimensional y ordenada, utilizando la interfaz genérica IComparer<T> especificada.
Establece un intervalo de elementos de una matriz al valor predeterminado de cada tipo de elemento.
Crea una copia superficial de Array.

Bibliografía: