Zdroják pascal-azarus: srovnej,setřiď, spočítej, sečti. – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Zdroják  pascal-azarus: srovnej,setřiď, spočítej, sečti. – Pascal – Fórum – Programujte.comZdroják pascal-azarus: srovnej,setřiď, spočítej, sečti. – Pascal – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
henri
~ Anonymní uživatel
3 příspěvky
3. 1. 2015   #1
-
0
-

Ahoj, mám za úkol vytvořit zdroják, kde se zadaný text srovná podle abecedy, rozdělí se mezery, spočítají se znaky, a sečte počet čísel. A tímto níže mé znalosti končí. Může někdo poradit???? Díky.   

  type index='a'..'z';
VAR
 suma, n, i, cislo: integer;
 a:array[ index ] of integer;
   TEXT:string;
  JJ,II:integer;
  znak,s:char;
begin
  writeln  ('    ','Zadej pozadovany text');
  writeln  (  '  ');
  textcolor(2);
  readln    (TEXT);
  writeln   (  '   ');
  For JJ:=1 to length(TEXT) do
    For II:=1to length (TEXT)-1 do
    begin
      (*serazeni textu*)
      IF TEXT [II]>TEXT[II+1]then
      begin
        znak:=TEXT[II];
        text[II]:=text[II+1];
        text[II+1]:=znak;
      end;
   end;
  textcolor(3);
  (*serazeni mezer*)
     For II:=1 to length(text) do
     IF (text[II]>=',  ,')
     then
     begin
       write('  ',text[II],'');
     end;
        readln;
        writeln('  ');
        (*pocet znaku*)
        begin
         clrscr;
        textcolor(14);
     writeln;
     for s:= 'a' to 'z' do a[s]:=0;
     while not eoln do
     begin
          read(s);
          if (s>='a')and(s<='z') then a[s]:=a[s]+1
     end;
        begin
     for s:='a' to 'z'  do
        write('pocet ':3,s,' je ',a[s],' ':4);
        end;
     writeln;
     readln;
        end;
         (*soucet cisel*)
        begin
      writeln('');
      textcolor(11);
    readln(n);
    if n > 0 then
    begin
        suma := 0;
        begin
            read(cislo);
            suma := suma + cislo;
        end;
        writeln('Soucet vsech cisel je: ', suma);
       read;
    end;
    end;
    readln;
   end.

Díky za nápad , radu.

Nahlásit jako SPAM
IP: 37.48.40.–
Reklama
Reklama
Mircosoft+1
Věrný člen
4. 1. 2015   #2
-
0
-

Chtělo by to upřesnit zadání:
- Jak má vypadat zadaný text? (věta, slovo, číslo, náhodná směs znaků...?) A mají se všechny ty podúkoly provádět na tom jednom textu, nebo se pokaždé načte nový?
- Co se myslí srovnáním podle abecedy? (po znacích? po slovech?)
- Co znamená "rozdělí se mezery"? (vypíše se každé slovo na jeden řádek? mezery se z textu vyházejí a rozdělí se do nějakých skupin?)
- Co se myslí těmi čísly, které se mají spočítat nebo sečíst nebo co vlastně? (cifry '0'..'9'? nebo i víceciferná čísla?)

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 141.0.8.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
henri
~ Anonymní uživatel
3 příspěvky
4. 1. 2015   #3
-
0
-

#2 Mircosoft
Jako text se zadá nějaký blábol,vloží  Lorem Ipsum, náhodně pomačkaná klávesnice.Nebude to dlouhý text,jde spíše o správnou funkci programu  Všechny podúkoly se musí provést na jednom textu.

Seřazení a rozděeaní textu mi funguje, nedokážu už pokračovat s spočítání znaků. Samostaně to jde, ale když chci pracovat s jedním textem  , končím.

Vytřídění podle abecedy je po znacích, V řádku bude např.: 4x a, pak 2xb, 2xc....2xz . atd. text srovnaný podle abecedy bude oddělen mazerou:  a a a a b b c c ...z z .

Následně se vypíše počet znaků:  a 4x ,, b2x ..c2x..z2x .

   A nakonec se vypíše součet- suma čísel. 0-9, nebrat  v úvahu dvou a víceciferná čísla, prostě sečíst cifry od  1 po 9.

Nahlásit jako SPAM
IP: 37.48.40.–
Mircosoft+1
Věrný člen
4. 1. 2015   #4
-
0
-

OK.

Nevím, proč tam řešíš nějaké read(s), while not eoln a podobně, když potřebuješ jenom zase projít ten Text (for i:=1 to length(text) do ... text[i] ...). To je asi ta hlavní chyba. Jinak ten algoritmus s polem počtů máš vymyšlený dobře a jakmile do něj začneš sypat správná data, bude fungovat.

Mimochodem, počítání znaků v textu jsem nedávno psal, prohledej sousední vlákna (akorát asi přečtení, pochopení a úpravy mého zdrojáku dají víc práce než to napsat podle sebe).

Při sčítání číslic musíš zase projít Text znak po znaku a jestli je znak v intervalu '1'..'9', převést si ho na číslo (Ord a odečíst 48) a přičíst k součtu.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 2001:4c28:194:520:1a03:73...–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
henri
~ Anonymní uživatel
3 příspěvky
4. 1. 2015   #5
-
0
-

#4 Mircosoft
Tak hotovo. S pomocí nápovědy / díky :věrný člen / a google.  Tu je výsledek.

  { you can add units after this },crt;
    type index='A'..'z';
       indexx='0'..'9';
VAR
  a:array [index] of integer;
  b:array [indexx] of integer;
  TEXT:string;
  JJ,II,f:integer;
  znak,s:char;
  Suma: longint;

begin
  (*vlozeni textu*)
  writeln  ('    ','Zadej pozadovany text');
  writeln  ('  ');
  textcolor(2);
  readln    (TEXT);
  writeln   ('   ');
  For JJ:=1 to length(TEXT) do
    For II:=1to length (TEXT)-1 do
    begin
      (*serazeni textu*)
      IF TEXT [II]>TEXT[II+1]then
      begin
        znak:=TEXT[II];
        text[II]:=text[II+1];
        text[II+1]:=znak;
      end;
   end;
  textcolor(3);
  (*serazeni mezer*)
  For II:=1 to length(text) do
  begin
    (*vypis textu*)
    write(text[II]+' ');
  end;
  writeln('  ');
  textcolor(8);
  read;
  writeln(  );
  (*pocet znaku*)
  textcolor(14);
  for s:= 'A' to 'z' do
  begin
    a[s]:=0;
    for II:= 1 to length(text) do
    begin
      if s = text[II] then a[s]:=a[s]+1;
    end;
    write('pocet ':3,s,' je ',a[s],' ':4);
  end;
  readln;
  (*soucet cisel*)
  textcolor(10);
  for II:= 1 to length(text) do
  begin
    if (text[II]>='0') and (text[II]<='9') then
    begin
      write(text[II]+ ' ');
      suma := suma + byte(text[II])-byte('0');
    end;
  end;
  writeln('');
  writeln;
  writeln( 'soucet = ', suma);
  readln;
end.
end. 

Nahlásit jako SPAM
IP: 37.48.36.–
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, 12 hostů

Moderátoři diskuze

 

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