martes, 12 de junio de 2018

Listas enlazadas simples en C#, con números aleatorios

 Hola espero les sea de utilidad es un codigo que ejecuta un llenado aleatorio de la lista y su ordenamiento debido en C#, se aceptan quejas y sugerencias saludos...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
    using System.Diagnostics;

namespace Listas_Enlazadas
{
    class Program
    {
        private Nodo primero;
        private int size;
       
        public Program()
        {
            this.primero = null;
            this.size = 0;
        }
        public void ListaVacia()
        {
            if (primero == null)
            {
                Console.WriteLine("La lista esta vacia");
            }
            else
            {
                Console.WriteLine("La lista tiene datos");
            }
        }
        public void addNodo(int dato)
        {

            Nodo nuevo = new Nodo(dato); //agregar el nodo
            Nodo valor1, valor2;
            if (primero == null)
            {
                primero = nuevo;
                nuevo.siguiente = null;
            }
            else
            {
                valor1 = primero;
                while(valor1!=null)
                {
                    valor2 = valor1.siguiente;
                    //condicion para ver si el numero entrante debe de ir al inicio
                    if (nuevo.dato <= valor1.dato)
                    {
                        nuevo.siguiente = primero;
                        primero = nuevo;
                        break;
                    }
                    else
                    {
                        //condicion para ver si el numero entrante debe de ir al ultimo
                        if (nuevo.dato > valor1.dato && valor2 == null)
                        {
                            valor1.siguiente = nuevo;
                            nuevo.siguiente = null;
                            break;
                        }
                        else
                        {
                          //condicion para ver si el numero entrante debe de ir en medio de otro nodo
                            if (valor1.dato < nuevo.dato && valor2.dato >= nuevo.dato)
                            {
                                valor1.siguiente = nuevo;
                                nuevo.siguiente = valor2;
                                break;
                            }
                            else
                            {
                                valor1 = valor1.siguiente;
                            }
                        }
                    }
                }
            }
            size++;
        }
        public int Size()
        {
            return size;
        }
        public void Mostrar()
        {
            Nodo actual = primero;
            while (actual != null)
            {
                Console.WriteLine("[" + actual.dato + "]->");
                actual = actual.siguiente;
            }
        }
        static void Main(string[] args)
        {
            Program lista = new Program();
            Console.ForegroundColor=ConsoleColor.Red;                
            Console.Write("Cuantos datos quiere ordenar:");
           int linea=Convert.ToInt16(Console.ReadLine());           
            Random aleatorio = new Random();
            lista.ListaVacia();
            for (int f = 0; f < linea; f++)
            {   
                lista.addNodo(Convert.ToInt16(aleatorio.Next(0, 1000)));           
               
            }
           
            //lista.addNodo(11);
            //lista.addNodo(2);
           // lista.addNodo(35);
            //lista.addNodo(14);
            //lista.addNodo(53);
            lista.Mostrar();
            Console.WriteLine("tamaño" + lista.Size());
            //lista.ListaVacia();
            //Console.ReadLine();
        }
    }
}

//Codigo del Nodo



namespace Listas_Enlazadas
{
    class Nodo
    {
        public int dato;
        public Nodo siguiente;
        public Nodo(int dato) //constructor
        {
            this.dato = dato;
            this.siguiente = null;
        }
    }
}

martes, 11 de julio de 2017

Codigo en C, Arreglo tridimencional Control de información aleatoria de datos de universidad


//en una universidad se almacena informacion sobre el numero de alumnos
//que han ingresado a sus diferentes carreras en los 2 semestres de enero y agosto
//en los ultimos 10 años; para esto se almacena la información en un arreglo tridimencional
//a)El año en que ingreso el mayor nímero de alumnos a la universidad
//b)la carrera que en el ultimo año recibio el mayor número de alumnos
//C)EN QUE AÑO LA CARRERA DE SISTEMAS RECIBIO EL MAYOR NÚMERO DE ALUMNOS
//d)en que semestre del año 7 la carrera de quimica recibio el mayor número de alumnos


#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <time.h>
#include <math.h>

void imprimirArreglo(int A[7][2][10]);
void llenar(int A[7][2][10]);
void mayorAlumnos(int A[7][2][10]);
void mayorCarrera(int A[7][2][10]);
void mayorSistemas(int A[7][2][10]);
void mayorAlumQuimica(int A[7][2][10]);
    int main(){
        srand(time(NULL));
        int A[7][2][10];
        llenar(A);
        imprimirArreglo(A);
        printf(" a)El anio en que ingreso el mayor numero de alumnos a la universidad \n");
        mayorAlumnos(A);
        printf(" b)la carrera que en el ultimo año recibio el mayor numero de alumnos \n");
        mayorCarrera(A);
        printf(" C)EN QUE ANIO LA CARRERA DE SISTEMAS RECIBIO EL MAYOR NUMERO DE ALUMNOS \n");
        mayorSistemas(A);
        printf("d)en que semestre del anio 7 la carrera de quimica recibio el mayor numero de alumnos");
        mayorAlumQuimica(A);
        getch();
        return 0;       
    }
    //--------------------------------------
        void llenar(int A[7][2][10]){
        int i,j,k;
        for(i=0;i<7;i++){
            for(j=0;j<2;j++){
                for(k=0;k<10;k++){
               
                A[i][j][k]=rand()%100;
            }
        }   
    }
}
//-----------------------------------
void imprimirArreglo(int A[7][2][10]){
    int i,j,k;       
        for(i=0;i<7;i++){
            for(j=0;j<2;j++){
                for(k=0;k<10;k++){
                printf("%i \t",A[i][j][k]);
            }
            printf("\n");

            }
        } printf("\n");
    }
    //---------------------------------
   //a)El anio en que ingreso el mayor numero de alumnos a la universidad
    void mayorAlumnos(int A[7][2][10]){
        int i,j,k,aux=0,anio,carrera,semestre;
        for(i=0;i<7;i++){
            for(j=0;j<2;j++){
                for(k=0;k<10;k++){
                if (A[i][j][k]>aux){
                    aux=A[i][j][k];
                    anio=k+1;
               carrera=i;
               semestre= j+1;
                }}}}
        printf(" el valor maximo: %i \n" , aux);
        printf("Periodo:%i Anio:%i \n",semestre,anio);
                  if(semestre==1){printf("semestre de enero \n");}
                    if(semestre==2){printf("semestre de agosto \n");}
   if(carrera==0){printf(" QUIMICA \n");    }
    if(carrera==1){printf(" BIOQUIMICA \n");    }
    if(carrera==2){printf(" MECANICA \n");    }
    if(carrera==3){printf(" ELECTRONICA \n");    }
    if(carrera==4){printf(" SISTEMAS \n");    }
    if(carrera==5){printf(" CONTADURIA \n");    }
    if(carrera==6){printf(" MECATRONICA \n");    }
    }
    //----------------------------------------------
    //b)la carrera que en el ultimo año recibio el mayor numero de alumnos
    void mayorCarrera(int A[7][2][10]){
        int i,j,k=9,aux=0,carrera,anio,semestre;

        for(i=0;i<7;i++){
            for(j=0;j<2;j++){

                if (A[i][j][9]>aux){
                    aux=A[i][j][9];
                    anio=k+1;
               carrera=i;
               semestre= j+1;
                }}}
            printf("Periodo:%i Anio:%i \n",semestre,anio);
          if(semestre==1){printf("semestre de enero \n");}
                    if(semestre==2){printf("semestre de agosto \n");}
printf(" el valor de la maximo es: %i en la carrera :\n" , aux);
      if(carrera==0){printf(" QUIMICA \n");    }
    if(carrera==1){printf(" BIOQUIMICA \n");    }
    if(carrera==2){printf(" MECANICA \n");    }
    if(carrera==3){printf(" ELECTRONICA \n");    }
    if(carrera==4){printf(" SISTEMAS \n");    }
    if(carrera==5){printf(" CONTADURIA \n");    }
    if(carrera==6){printf(" MECATRONICA \n");    }

           
    }           

    //-------------------------------------
    //"C)EN QUE AÑO LA CARRERA DE SISTEMAS RECIBIO EL MAYOR NÚMERO DE ALUMNOS
    void mayorSistemas(int A[7][2][10]){
        int i=4,j,k,aux=0,anio,carrera,semestre;

            for(j=0;j<2;j++){
                for(k=0;k<10;k++){
                if (A[i][j][k]>aux){
                    aux=A[i][j][k];
                    anio=k+1;
               carrera=i+1;
               semestre= j+1;
                }}}
                    printf(" el valor maximo de la carrera de sistemas es: %i \n" , aux);
                    printf(" y el anio es : %i \n" , anio);
            }
    //----------------------------------------
    //d)en que semestre del año 7 la carrera de quimica recibio el mayor número de alumnos
    void mayorAlumQuimica(int A[7][2][10]){
        int i=0,j,k,aux=0,carrera,anio,semestre;

            for(j=0;j<2;j++){
                for(k=6;k<7;k++){
                if (A[i][j][k]>aux){
                    aux=A[i][j][k];
                    anio=k+1;
               carrera=i;
               semestre= j+1;
                }}}
                    printf(" valor maximo de quimica: %i \n" , aux);
                    if(semestre==1){printf("semestre de enero \n");}
                    if(semestre==2){printf("semestre de agosto \n");}

            }

Codigo en c, Programa en arreglo tridimencional de control de información aleatoria de museo


  1. //a)en que año el centro arqueologico 43 obtuvo la mayor afluencia de visitantes
  2. //b)cual fue el centro arqueologico que en 2014 recibio la mayor afluencia de visitantes
  3. //c)en que mes de 2015 los centros recibieron mayor número de visitantes

#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <time.h>
void imprimir(int A[58][12][10]);
void generar(int A[58][12][10]);
void year(int A[58][12][10]);
void centroArq(int A[58][12][10]);
void mes(int A[58][12][10]);
int main(){
    srand(time(NULL));
    int A[58][12][10];
    generar(A);
    imprimir(A);
    printf("\n");
    year(A);
    centroArq(A);
    mes(A);
    getch();
    return 0;       
}//--------------------------------------   
void generar(int A[58][12][10]){
        int i,j,k;
        for(i=0;i<58;i++){
            for(j=0;j<12;j++){
                for(k=0;k<10;k++){
               
                A[i][j][k]=rand()%10;
            }
        }   
    }
}//-----------------------------------
void imprimir(int A[58][12][10]){
   
    int i,j,k;       
        for(i=0;i<58;i++){
            for(j=0;j<12;j++){
                for(k=0;k<10;k++){
                printf("%i \t",A[i][j][k]);               
            }   
            printf("\n");               
            }           
        }           
}//---------------------------------
//a)en que año el centro arqueologico 43 obtuvo la mayor afluencia de visitantes
void year(int A[58][12][10]){
int i=57,j,k,B[10],temp=0,may=0,val;       
        for(k=0;k<10;k++){
            for(j=0;j<12;j++){               
            temp=temp+A[i][j][k];           
            }B[k]=temp;
            if(may<temp){may=temp;val=k;}
            printf("%i \n",B[k]);       
        }                   
    printf("EL ANIO MAYOR ES %i, CON EL VALOR %i \n",val+1,may);       
}
//b)cual fue el centro arqueologico que en 2014 recibio la mayor afluencia de visitantes
void centroArq(int A[58][12][10]){
    int i,j,k=8,B[58],temp=0,may=0,val;       
        for(i=0;i<58;i++){
            for(j=0;j<12;j++){
                temp=temp+A[i][j][k];
            }B[i]=temp;
            if(B[i]>may){may=B[i];val=i;}
            printf("%i \n",B[i]);
        }
    printf("EL CENTRO MAYOR ES %i, CON EL VALOR %i \n",val+1,may);
}
//c)en que mes de 2015 los centros recibieron mayor número de visitantes
void mes(int A[58][12][10]){
    int i,j,k=9,temp=0,may=0,val=0;       
        for(i=0;i<58;i++){
            for(j=0;j<12;j++){               
                if(A[i][j][k]>temp){
                temp=A[i][j][k];
                may=i;val=j;}
           
            }
        }
    printf("EL MES MAYOR ES: %i, DEL CENTRO: %i, CON VALOR %i \n",val+1,may+1,temp);
}

Codigo java, Número romano a decimal con sentencias if

@(#)Romano.java
 *
 * Romano application
 *
 * @author
 * @version 1.00 2017/3/4
 */
 import  javax.swing.*;
public class Romano {
    int n;
 public static void main(String[] args) {
        Romano ar=new Romano();
        ar.ConverRoman();
    }   
  public void ConverRoman(){
       n=Integer.parseInt(JOptionPane.showInputDialog("Dame el número a convertir"));
      if(n>=1&&n<=20){
          if(n==1){
              JOptionPane.showMessageDialog(null,"El número 1 en romano es I");
          }
          if(n==2){
              JOptionPane.showMessageDialog(null,"El número 2 en romano es II");
          }
          if(n==3){
              JOptionPane.showMessageDialog(null,"El número 3 en romano es III");
          }
          if(n==4){
              JOptionPane.showMessageDialog(null,"El número 4 en romano es IV");
          }
          if(n==5){
              JOptionPane.showMessageDialog(null,"El número 5 en romano es V");
          }
          if(n==6){
              JOptionPane.showMessageDialog(null,"El número 6 en romano es VI");
          }
          if(n==7){
              JOptionPane.showMessageDialog(null,"El número 7 en romano es VII");
          }
          if(n==8){
              JOptionPane.showMessageDialog(null,"El número 8 en romano es VIII");
          }
          if(n==9){
              JOptionPane.showMessageDialog(null,"El número 9 en romano es IX");
          }
          if(n==10){
              JOptionPane.showMessageDialog(null,"El número 10 en romano es X");
          }
          if(n==11){
              JOptionPane.showMessageDialog(null,"El número 11 en romano es XI");
          }
          if(n==12){
              JOptionPane.showMessageDialog(null,"El número 12en romano es XII");
          }
          if(n==13){
              JOptionPane.showMessageDialog(null,"El número 13 en romano es XIII");
          }
          if(n==14){
              JOptionPane.showMessageDialog(null,"El número 14 en romano es XIV");
          }
          if(n==15){
              JOptionPane.showMessageDialog(null,"El número 15 en romano es XV");
          }
          if(n==16){
              JOptionPane.showMessageDialog(null,"El número 16 en romano es XVI");
          }
          if(n==17){
              JOptionPane.showMessageDialog(null,"El número 17 en romano es XVII");
          }
          if(n==18){
              JOptionPane.showMessageDialog(null,"El número 18 en romano es XVIII");
          }
          if(n==19){
              JOptionPane.showMessageDialog(null,"El número 19 en romano es XIX");
          }
          if(n==20){
              JOptionPane.showMessageDialog(null,"El número 20 en romano es XX");
          }
         
      }else{
          JOptionPane.showMessageDialog(null,"No escribio un número dentro del rango");
      }}
  }
        

   
   

Codigo en C, Calculo del sueldo de un empleado, datos desde usuario


#include<stdio.h>
#include<conio.h>

int main (){
 int n;
float suxhor,suext,sutot,horex,sueldo;

printf("introduce el sueldo semanal \n");
scanf("%f",&sueldo);
printf("horas trabajadas en la semana\n");
scanf("%i",&n);
suxhor=sueldo/40;
horex=n-40;
if(n>40){        
         suext=horex*(suxhor*1.5);
         sutot=sueldo+suext;
}//if
else if(n<40){              sutot=suxhor*n; }
else if(n==40){              sutot=sueldo;}

printf("sueldo del empleado %f\n",sutot);
getch();
return 0;
   }