Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - kofu

#1
Cita de: dato000 en 24 Septiembre 2016, 00:16 AM
por eso dije, que como lo saque a pura memoria habria que pulirlo, ya teniendo una base puede revisarse y pulirse el código, hombre, un poco de esfuerzo ni que fuera tan dificil. Sería en un par de horas hasta que llegue a mi casa para comprobar el funcionamiento del algoritmo.

Echale más ganas y revisa los errores. El mismo compilador indica que debe corregirse, y da pistas probables de como solucionarlo (en algunos casos).
---EDITADO---

Muy bien ya mire el código, y salvo un punto y coma ( ; ) y renombrar correctamente la matriz, el código corre sin problemas.


Matriz con el patrón de 1 a N


Matriz con el patrón de números aleatorios

voy a dejar el código corregido:


#include <stdio.h>
#include <stdlib.h> //incluye srand() y rand()

#define tamanyoMatriz 6


int main()
{

 int matriz[tamanyoMatriz][tamanyoMatriz];
 srand (time(NULL));

  //srand(time(0));//numeros Aleatorios en funcion del tiempo
  for (int i=0; i<tamanyoMatriz; i++)//para desplazarse por las columnas
  {
       for (int j=0 ;j<tamanyoMatriz; j++)//para desplazarse por las filas
       {
           matriz[i][j]=rand() % 11;//Agrega numero aleatorio a la posicion ij de la matriz de 1 a 10
           //matriz[i][j] = j+1;
           printf("\t%d", matriz[i][j]);//imprime elemento de la matriz en pantalla
        }
        printf("\n\n");//para dejar espacios entre filas.
  }
  return 0;
}




No entiendo porque ami no me compila...




El archivo lo tengo guardado como ejercicio2.c y tengo el visual studio configurado para lenguaje C...

Me podrias ayudar si no es mucha molestia?

Saludos

#2
Cita de: dato000 en 23 Septiembre 2016, 21:44 PM
codeblocks.

Ahi ya lo probé y no anda. Marca varios errores pero mas que nada en el for (dice que le falta un ; pero nada q ver jaja).

Podrias revisarlo?

Y fijate lo que puse yo arriba del ejercicio 1.

saludos
#3
Cita de: dato000 en 23 Septiembre 2016, 19:08 PM
Bueno, al menos se tiene interes, no tengo el compilador aqui, y tampoco me voy a quemar haciendo las tareas gratis...

pero al menos dejare algo para no desanimar al muchacho:

Supongo que la cosa es:

generar una matriz NxN en donde N sea un número definido desde código, es decir, un valor constante, y llenarlo con números que por cada fila, cada valor de sus columnas sea desde el 1 al N.
Entendi bien??

vamos a ver, no creo que funcione en el compilador, lo estoy haciendo todo desde memoria, pero no deberia resultar dificil hacerle el soporte y mejorarlo.

Código (cpp) [Seleccionar]

#include <stdio.h>
#include <stdlib.h> //incluye srand() y rand()
   
#define tamanyoMatriz 5
   

int main()
{
 int matriz[tamanyoMatriz][tamanyoMatriz]

  //srand(time(0));//numeros Aleatorios en funcion del tiempo
  for (int i=0; i<tamanyoMatriz; i++)//para desplazarse por las columnas
  {
       for (int j=0 ;j<tamanyoMatriz; j++)//para desplazarse por las filas
       {
           //matriz[i][j]=rand();//Agrega numero aleatorio a la posicion ij de la matriz
           matriz[i][j] = j+1;
           printf("\t%d",mat[i][j]);//imprime elemento de la matriz en pantalla
        }
        printf("\n\n");//para dejar espacios entre filas.
  }
  return 0;
}


Deje un par de cosas más para usar una semilla srand para generar números aleatorios.

Me comentas si funciono, debe tener errores de sintaxis y cosas, pero en general ahi tiene la lógica necesaria para que el resultado.


Lo probé y no funciona... Me da muchos errores, mas que nada me marca errores en el primer for.

PD: Fijate que subi la solucion incorrecta del ejercicio 1.

Saludos
#4
Cita de: engel lex en 23 Septiembre 2016, 17:53 PM
no se hacen tareas... di tus dudas sobre lo que te evita terminarlo y podremos ayudarte

Okey, entiendo. Ahora edito mi post de las formas que intente resolver los problemas y ahi espero que me ayuden...

Saludos
#5
Cita de: dato000 en 23 Septiembre 2016, 16:35 PM
Y que has hecho hasta el momento del 2do ejercicio?? porque mencionas un patrón define y no dejas nada.

El segundo ejercicio no hice nada hasta el momento, por eso estoy buscando ayuda aca. Asi si lo pueden hacer me re ayudarian, mas tarde edito de lo que hice del ejercicio 1.

Me podrias ayudar con los 2 ejercicios por fa :)?
#6
Programación C/C++ / [AYUDA] Modelo de Parcial en C
23 Septiembre 2016, 15:48 PM
En mi facultad estan dando el siguiente modelo de parcial para progamacion en C, yo pude resolver el primer ejercicio pero no de la forma adecuada. Me dijo el profesor que tenia que usar un while en vez de un for pero no logro hacer el tema de los espacios. Ayuda por favor para resolver los 2 ejercicios correctamente !

Simulacro de Parcial
1)   Escribir un programa que utilice una función para devolver un valor de verdad indicando si una frase es palindromica (capicúa) o no. El análisis de la frase debe ignorar los espacios que puede contener, es decir que estos no afectaran el resultado. Ejemplos:
espalindomo ("luz azul");    devuelve verdadero
espalindormo ("yo hago yoga hoy"); devuelve verdadero

2)   Escribir un programa para generar una matriz NxN con números enteros 1 a N respetando el patrón adjunto. Imprimir la matriz obtenida. El programa debe funcionar para cualquier valor positivo de N, el que se declara mediante una directiva #define. Ejemplo para N=6:

1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6


RESOLUCION EJERCICIO 1:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define MAX 50

int main(int argc, char *argv[])
{
  char N[MAX];
  int cont;
  int cont2;
  char C[MAX];
  int suma=0;
  int lon;
  int cont3=0;
 
  cont=0;
  printf("Escribir una cadena de caracteres: ");
  gets(N);
  lon=strlen(N);
  cont2=lon-1;
  while(cont<MAX){
                  C[cont]=N[cont2];
                  cont=cont+1;
                  cont2=cont2-1;}
                 
  C[lon]='\0';
                  cont=0;
                 

  cont=0;
  while(cont<lon){
                  cont2=cont;cont3=0;
                  if(N[cont]==' '){
                                while(cont2<lon){
                                        N[cont+cont3]=N[cont+cont3+1];
                                        cont2=cont2+1;
                                        cont3=cont3+1;
                                        }}
  cont=cont+1;}
 

  cont=0;
  while(cont<lon){
                  cont2=cont;cont3=0;
                  if(C[cont]==' '){
                                while(cont2<lon){
                                        C[cont+cont3]=C[cont+cont3+1];
                                        cont2=cont2+1;
                                        cont3=cont3+1;
                                        }}
  cont=cont+1;}
 

  cont=0;
  while(cont<lon){
                  if(N[cont]!=C[cont]){
                                       suma=suma+1;}
                  cont=cont+1;}
  printf("\n");
  if(suma!=0){printf("No es palindromo\n");}
  else{printf("Es palindromo\n");}
 
  system("PAUSE");   
  return 0;
}


Desde ya muchas gracias :)!

Saludos[/i]
#7
Programación General / SOLUCION
20 Diciembre 2015, 23:52 PM
Me respondieron en otro foro....Pongo la solucion para alguien que busque en google y no encuentre nada como me paso ami...
Gracias...supongo....

PD: Cierren el post y pongan como solucionado.

Código (pascal) [Seleccionar]

program alumnos;
 uses
   crt;
 const
    archivo = 'archivo.dat';
 type
   elalumnos = record
          Nro_DNI : longint;
         Apellido : string[80];
           Nombre : string[80];
          NP1,NP2 : real;
            end;

  var
    f : file of elalumnos;
    alum : elalumnos;



   function existearchivo : boolean;
   begin
      assign(f,archivo);
    {$I-} reset(f); {$I+}
    if ioresult <> 0 then
    existearchivo := false
  else
    begin
       existearchivo := true;
    end;
   end;

  procedure entradadatos;
  var
    tec : char;
  begin
     clrscr;
     writeln('    ****** Entrada Datos Alumno Nuevo ******');
     writeln;
     write('    Ingrese el DNI (Sin Puntos) : ');
     readln(alum.Nro_DNI);
     write('    Ingrese Apellido   : ');
     readln(alum.Apellido);
     write('    Ingrese Nombre     : ');
     readln(alum.Nombre);
     write('    Ingrese Nota 1     : ');
     readln(alum.NP1);
     write('    Ingrese Nota 2     : ');
     readln(alum.NP2);
     writeln;
     writeln('   Se Guardar Los Datos ');
     writeln;
     writeln('   Datos Correctos [S/N]');
     repeat
         tec := upcase(readkey);
     until tec in['S','N'];
     if tec = 'S' then
     begin
       if existearchivo = true then
       begin
          seek(f,filesize(f));
          write(f,alum);
          close(f);
       end
     else
         begin
            rewrite(f);
            seek(f,0);
            write(f,alum);
            close(f);
         end;
     end;
  end;

  procedure ListadoAprobados;
  var
    k : longint;
  begin
     if existearchivo = true then
     begin
        writeln('    Los Aprobados Son: ');
        writeln;
        for k := 0 to filesize(f) - 1 do
        begin
           seek(f,k);
           read(f,alum);
           if ((alum.np1 + alum.np2) / 2) >= 7 then
           writeln('   Aprobado : ',alum.nombre,'  ',alum.apellido,'  ',
                       ((alum.np1 + alum.np2) / 2):0:2);
        end;
          close(f);
          readkey;
     end
  else
      begin
        writeln('   No se encuentran datos del Alumno [Pulse Una Tecla]');
        readkey;
      end;
  end;

  procedure busqueda_alumno;
  var
    ddn : longint;
    vus : longint;
    encon : boolean;
  begin
     if existearchivo = true then
     begin
       writeln('   Buscar Un Alumno ');
       writeln;
       write('     Ingrese el DNI : ');
       readln(ddn);
       encon := false;
       for vus := 0 to filesize(f) - 1 do
       begin
          seek(f,vus);
          read(f,alum);
          if alum.Nro_DNI = ddn then
          begin
             encon := true;
             break;
          end;
       end;
       if encon = true then
       writeln('DNI: ',alum.Nro_DNI,' Nombre: ',alum.nombre,' ',alum.apellido,' Nota 1: ',
                   alum.np1:0:2,' Nota 2: ',alum.np2:0:2,' Promedio = ',
                   ((alum.np1 + alum.np2) / 2):0:2)
    else
       writeln('   No se encuentran datos del Alumno ');
       close(f);
       writeln;
       writeln('    [Pulse Una Tecla]');
       readkey;
     end
  else
     begin
        writeln('   No se encuentran datos del Alumno [Pulse Una Tecla]');
        readkey;
     end;
  end;


  procedure menu;
  var
    sal : boolean;
    tecla : char;
    begin
       sal := false;
       repeat
          clrscr;
          writeln('    ***** Menu General *****');
          writeln;
          writeln('   1 = Ingreseo de Alumno');
          writeln('   2 = Ver Aprobados');
          writeln('   3 = Mostrar Un Alumno');
          writeln('   4 = Salir');
          writeln;
          writeln('   >>> Elija Opcion <<<');
        repeat
           tecla := readkey;
        until tecla in['1','2','3','4'];
        clrscr;
    case tecla of
 '1' : entradadatos;
 '2' : ListadoAprobados;
 '3' : busqueda_alumno;
 '4' : sal := true;
    end;
    until sal = true;
  end;




  begin
     menu;
  end.
#8
El rango de notas es entre 1 y 10.

EL DNI es un numero de identificacion que tiene 8 numeros asi 12345678.

Lo otro nose como respondertelo sinceramente...

Encontre un ejemplo parecido pero que involucra pasar datos de binario a texto y no creo que es lo que me pidan...Mira..
Código (pascal) [Seleccionar]

{A ver si esto ayuda}

 program archivos;
 uses
    crt;
 type
   regdatos = record
         nombre : string[80];
         cedula : longint;
          notas : array[1..3] of real;
        end;

  var
    f : file of regdatos;
  dato : array[1..10] of regdatos;
   tex : text;
 medias : array[1..10] of real;
 nom : array[1..10] of string[80];

  procedure entradatos;
  var
     h, cont : integer;
     tec : char;
  begin
      cont := 1;
   repeat
      clrscr;
      write('  Entre Nombre : ');
      readln(dato[cont].nombre);
      write('  Entre Cedula : ');
      readln(dato[cont].cedula);
      write('  Entre notas 1 : ');
      readln(dato[cont].notas[1]);
      write('  Entre notas 2 : ');
      readln(dato[cont].notas[2]);
      writeln;
      writeln('  Dese entrar mas datos [S/N] ');
      repeat
          tec := upcase(readkey);
      until tec in ['S','N'];
      if tec = 'N' then
      tec := #27
    else
      cont := cont + 1;
   until (cont > 10) or (tec = #27);
   assign(f,'Temporal.dat');
  {$I-} reset(f); {$I+}
 if ioresult <> 0 then
 begin
     rewrite(f);
     h := 0;
     repeat
       seek(f,h);
       write(f,dato[h + 1]);
       h := h + 1;
     until h > cont;
     close(f);
 end
else
    begin
       writeln('  El archivo existe desea Anularlo por este [S/N] ');
       repeat
         tec := upcase(readkey);
       until tec in['S','N'];
     if tec in['N'] then
     begin
     end
   else
       begin
          rewrite(f);
          h := 0;
        repeat
            seek(f,h);
            write(f,dato[h + 1]);
            h := h + 1;
        until h > cont;
        close(f);
       end;
    end;
  end;


  procedure pasaloatexto;
  var
    i, g : longint;
  begin
     assign(f,'Temporal.dat');
  {$I-} reset(f); {$I+}
    if ioresult <> 0 then
    begin
       writeln('  El Archivo No Existe Pulse [Enter] ');
       readln;
       exit;
    end
  else
     begin
        assign(tex,'temporal.txt');
        rewrite(tex);
       for i := 0 to filesize(f) - 2 do
       begin
           seek(f,i);
           read(f,dato[i + 1]);
           writeln(tex,dato[i + 1].nombre);
           writeln(tex,dato[i + 1].cedula);
           writeln(tex,dato[i + 1].notas[1]:3:2);
           writeln(tex,dato[i + 1].notas[2]:3:2);
        end;
        close(f);
        close(tex);
        writeln('Archivo De Binario A Texto');
     end;
  end;

  procedure sacamedia;
  var
    p, i : integer;
    nomb : string[80];
    cod : longint;
    n1, n2 : real;
  begin
     assign(tex,'temporal.txt');
  {$I-} reset(tex); {$I+}
  if ioresult <> 0 then
  begin
      writeln('  Error El Archivo No Existe Pulse [Enter]');
      readln;
      exit;
  end
else
   begin
       p := 1;
       while not eof(tex) do
       begin
          read(tex,nomb);
          read(tex,cod);
          read(tex,n1);
          read(tex,n2);
          readln(tex);
          nom[p] := nomb;
          medias[p] := (n1 + n2) / 2;
          writeln(nom[p],'   La Media Es    =  ',medias[p]:3:2);
          p := p + 1;
          if p > 10 then
          p := 10;
       end;
       close(tex);
     end;
  end;

  procedure menu;
  var
    te : char;
  begin
    repeat
        clrscr;
        writeln('****** Menu General ******');
        writeln;
        writeln('  1 = Entrada De Datos');
        writeln('  2 = Archivo Binario A Texto');
        writeln('  3 = Presenta Las Medias');
        writeln('  4 = Salir');
        writeln;
        writeln('<<<<< Elija Opcion >>>>>');
       repeat
        te := readkey;
       until te in[#49,#50,#51,#52];
   case te of
 #49 : begin clrscr; entradatos; end;
 #50 : begin clrscr; pasaloatexto; writeln(' Pulse [Enter]'); readln; end;
 #51 : begin clrscr; sacamedia; readln; end;
   end;
  until te = #52;
  end;


 begin
     menu;
 end.


#9
Sinceramente me cuesta demasiado pascal. y tengo que rendir un final en unas horas y no encuentro ningun ejercicio completo y sin errores que me pueda ayudar.

El ejercicio que tengo como modelo de final es el siguiente:

Desarrollar un programa en pascal que permita crear y cargar un archivo de alumos para llevar un control de las notas de sus examenes parcials de la asignatura programacion 1. La estructura de los registros sera la siguiente:Nro_DNI, Apellido, Nombre, NP1, NP2:

a) Mediante un procedimiento, al que debera llamar ListadoAprobados, mostrar por pantalla el listado de los alumnos que hayan regularizado la materia, para ello, el promedio de ambas notas dbera ser igual o mayor a 7.

b) Permitir, al usuario realizar la busqueda de alumnos ingresando el numero de DNI. Mostrar los datos encontrados, en caso contrario, el siguiente mensaje "No se encuentran datos del Alumno".


Muy importante. Todo esto se graba en un archivo de datos que despues se lee. Creo que se hacia con un archivo.dat pero no me acuerdo.

Necesito ayuda urgente, por favor...
Desde ya muchas gracias
Facundo