Program w Pascalu znajdujący najwięcej powt. się liter...

czarnys69
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 18 lis 2008, o 21:45
Płeć: Mężczyzna
Lokalizacja: net
Podziękował: 12 razy

Program w Pascalu znajdujący najwięcej powt. się liter...

Post autor: czarnys69 »

Witam! Mam do napisania program w którym:
Wpisujemy dowolny tekst (bez polskich liter) i program ma sprawdzić której litery jest najwięcej w tekście i te litery których najwięcej ma zamienić na duże litery w tym tekście!

Mógłby ktoś mi w tym pomóc? Nigdy nie miałem styczności z tego typu programem.

Pozdrawiam serdecznie i dziękuje za wszelką pomoc;)
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

Program w Pascalu znajdujący najwięcej powt. się liter...

Post autor: matshadow »

w C++, spróbuj przekonwertować

Kod: Zaznacz cały

#include<iostream>
#include<cctype>
using namespace std;

main()
{
    ios_base::sync_with_stdio(0);
    string s;
    getline(cin,s);//wczytanie stringa
    int tab[200]={0};//tablica występowania, domyślnie zerowana
    for(int i=0;i<s.size();i++)
     if(isalpha(s[i]))
      tab[int(s[i])]++;//zliczam litery
    int k=-1;
    char b;//dwie zmienne, k oznacza max ilość wystąpień, a b literkę najczęstszą w tekście
    for(int i=0;i<200;i++)
    {
        if(tab[i]==k&&k!=0)
        {//tutaj uwzględniam przypadek, jak nie ma najczęstszej litery (np w słowie "mama")
            i=200;
            b=;
        }
        else if(tab[i]>k)
        {//tu aktualizuję najczęstszą literkę w tekście
            k=tab[i];
            b=char(i);
        }
    }
    for(int i=0;i<s.size();i++)
        if(s[i]==b) s[i]=toupper(s[i]);//zamiana najczęstszej literki
    printf("%s
",s.c_str());//wypisanie
    return(0);
}
czarnys69
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 18 lis 2008, o 21:45
Płeć: Mężczyzna
Lokalizacja: net
Podziękował: 12 razy

Program w Pascalu znajdujący najwięcej powt. się liter...

Post autor: czarnys69 »

Witam! Znalazłem taki program ale chyba nie do końca działa ale nie zamienia litery najczęściej powtarzającej się a wszystkie na duże.

Kod: Zaznacz cały

program zamianaliternaduze;


var

  wyraz, nwyraz : string;
  a, l : char;
  n : byte;
  dlugosc, i : integer;

begin

  writeln('Podaj wyraz:');
  readln(wyraz);
  dlugosc:=length(wyraz);

  for i:=1 to dlugosc do
    begin
      a:=wyraz[i];
      n:=ord(a);

        if (n >= 97) and  (n <= 122) then
          begin
            n:=n-32;
          end

        if (n >= 65) and (n <=122) then
          begin
            l:=chr(n);
            nwyraz:=nwyraz+l;
          end;

    end;

  writeln;
  writeln('Nowy wyraz to: ', nwyraz);
  readln;

end.
Mógłby mi ktoś to dopracować? z góry dzięki!
ODPOWIEDZ