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;)
Program w Pascalu znajdujący najwięcej powt. się liter...
-
- 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...
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);
}
-
- 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...
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.
Mógłby mi ktoś to dopracować? z góry dzięki!
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.