Delphi dotaz z VŠB – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Delphi dotaz z VŠB – Delphi – Fórum – Programujte.comDelphi dotaz z VŠB – Delphi – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
7. 5. 2013   #1
-
0
-

Zdravím, jsem studentem všb a o programování takřka nic nevím, potřeboval bych aby program sčítal hodnoty v daných sloupcích a také aby vypsal zdrojovou tabulku, tabulku již vykresluje, ale sčítané hodnoty jsou zvláštní, naprosto netuším co s tím.

program Prog1_14;
{$APPTYPE CONSOLE}
uses
  SysUtils;

var
  A:array[1..10,1..5] of real;
  x:array[1..10] of integer;
  suma1,suma2,suma3,suma4,suma5:real;
  N,i,j:integer;
  vstup :text;

begin

  assign(vstup,'vstup.txt');
  reset(vstup);
  read(vstup,N);
  suma1:=0;
  suma2:=0;
  suma3:=0;
  suma4:=0;
  suma5:=0;
  begin;
   for i:=1 to N do
     begin
        read(vstup,x[i]);
        for j:=1 to 5 do
              read(vstup,A[i,j]);
     end;
    write('':7);
    for i:=1 to 5 do write(i:4,'.den');
    writeln;
    for i:=1 to N do
       begin
          write(x[i]:2,'.P.');
          for j:=1 to 5 do write(A[i,j]:8:0);
          writeln;
       end;
    close(vstup);
    writeln;
   end;
   assign(vstup,'vstup.txt');
   reset(vstup);
   read(vstup,N);
     for i:=1 to N do
                   begin
                        read(vstup,A[i,1]);
                        suma1:=suma1+A[i,1];
                   end;
                       writeln ('pondeli: ',suma1:0:0  ) ;
   for i:=1 to N do
      begin
         read(vstup,A[i,2]);
         suma2:=suma2+A[i,2];
      end;
        writeln ('utery: ',suma2:0:0  ) ;
   for i:=1 to N do
      begin
        read(vstup,A[i,3]);
        suma3:=suma3+A[i,3];
      end;
        writeln ('streda: ',suma3:0:0  ) ;
   for i:=1 to N do
     begin
       read(vstup,A[i,4]);
       suma4:=suma4+A[i,4];
     end;
      writeln ('ctvrtek: ',suma4:0:0  ) ;
   for i:=1 to N do
     begin
        read(vstup,A[i,5]);
        suma5:=suma5+A[i,5];
     end;
       writeln ('patek: ',suma5:0:0  ) ;
       readln;
end.

VSTUPNÍ DATA: 

7

1 157 268 262 157 268
3 396 330 428 410 428
4 420 558 612 420 713
6 396 430 405 555 452
7 420 268 375 381 268
8 157 311 282 157 346
10 401 558 612 555 603

Nahlásit jako SPAM
IP: 88.81.78.–
Reklama
Reklama
mjseven0
Návštěvník
7. 5. 2013   #2
-
0
-

Myslím, že když zrušíš to druhé načtení dat do pole A a pouze sečteš ta data, která jsi tam už jednou nahrál, tak dostaneš správný výsledek. V tom jak načítáš data podruhé si je zapisuješ do jiných buněk v poli a pak sčítáš jiné hodnoty.

 

Nahlásit jako SPAM
IP: 213.151.83.–
8. 5. 2013   #3
-
0
-

#1 Tomáš Bělunek
Právě tam je problém, že když to nenačtu znovu součty jsou 0, a načtěním znovu ze stejného souboru by se to změnit nemělo. To by právě mělo fungovat i tak jak říkáš, ale nefunguje :-/

Nahlásit jako SPAM
IP: 88.81.78.–
Honzc0
Stálý člen
9. 5. 2013   #4
-
0
-

#3 Tomáš Bělunek
Zkus to takto:

program Prog1_14;
{$APPTYPE CONSOLE}

uses
  SysUtils;
type Tmatice = array of array of Integer;
     Tsuma = array of Integer;
var m,n,i,j:Integer;
    ps,poms: String;
    matice: Tmatice;
    suma: Tsuma;
procedure Nacti;
var f:text;
    i,j:Integer;
begin
  Assign(f,'vstup.txt');
  Reset(f);
  while not eof(f) do
   readln(f,ps);
  Close(f);
  m := 1;
  for i := 1 to Length(ps) do
  begin
    poms := ps[i];
    if poms=' ' then
      m := m+1;
  end;
  Assign(f,'vstup.txt');
  Reset(f);
  Read(f,n);
  SetLength(matice,n,m);
  for i := 2 to n+1  do
  begin
    for j := 0 to m-1 do
    begin
      Read(f,matice[i-2,j]);
    end;
    Readln(f);
  end;
  Close(f);
end;
begin
  Nacti;
  WriTeLn(' Soucet hodnot ve sloupcich matice:');
  WriTeLn;
  WriTeLn('    ',n);
  WriTeLn;
  SetLength(suma,m);
  for i := 0 to n-1 do
  begin
    for j := 0 to m-1 do
    begin
      Write(' ',matice[i,j]:4);
    end;
    WriTeLn;
  end;
  WriTeLn;
  WriTeLn(' Vysledek (soucty ve sloupcich):');
  WriTeLn;
  for i := 0 to m-1 do
  begin
    for j := 0 to n-1 do
      suma[i] := suma[i]+matice[j,i];
    Write(' ',suma[i]);
  end;
  WriTeLn;
  ReadLn;
end.

Nahlásit jako SPAM
IP: 93.181.78.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Dotaz na lidi co znají Delphi — založil remmidemmi

Zkouška na VSB — založil georges15

Program do školy v c++ na VSB — založil danieldorda

Program do školy v c++ na VSB — založil danieldorda

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý