Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ строки

Автор: Athen 4.04.2007 19:14

Задача: дан текст из строчных русских букв, за которым следует точка. Напечатать этот текст заглавными русскими буквами.

Сделала прогу, но почему-то после буквы "п" начинает писать иероглифы... по таблице ASCII проверяла, не могу понять в чем дело. Проверьте плиз!

Program zad2;
Uses crt;
Var a:string; b,s:char; t,k,i:integer;
Begin
Clrscr;
writeln('Vvedite text iz strochnux bykv');
readln(a);
k:=length(a);
if a[k]='.' then begin
for i:=1 to k-1 do begin
s:=a[i];
t:=ord(a[i]);
if t<=239 then t:=t-32 else t:=t-80;
a[i]:=chr(t); end;
writeln(a);
end else writeln('Vu zabuli postavit tochky');
readln;
End.


М
Про использование тегов не забываем...
мисс_граффити


Автор: volvo 4.04.2007 19:38

for i:=1 to k-1 do begin
if a[i] in ['а' .. 'п'] then a[i] := chr(ord(a[i]) - 32)
else if a[i] in ['р' .. 'я'] then a[i] := chr(ord(a[i]) - 80);
end;
(пробелы и знаки пунктуации переводить в другой регистр не надо)

Автор: Athen 4.04.2007 23:16

Цитата(volvo @ 4.04.2007 18:38) *

for i:=1 to k-1 do begin
if a[i] in ['а' .. 'п'] then a[i] := chr(ord(a[i]) - 32)
else if a[i] in ['р' .. 'я'] then a[i] := chr(ord(a[i]) - 80);
end;
(пробелы и знаки пунктуации переводить в другой регистр не надо)


оо!! спасибо огромное!!! !mol1.gif good.gif yahoo!.gif

Автор: Athen 5.04.2007 18:31

Еще вопросик... как вывести наиболее часто встречающийся символ в строке? Подсчитать сколько раз встречается я могу, а вот вывести именно нужный символ не получается

Автор: klem4 5.04.2007 22:54

Цитата
Еще вопросик... как вывести наиболее часто встречающийся символ в строке? Подсчитать сколько раз встречается я могу, а вот вывести именно нужный символ не получается


Из всех символов или только скажем кириллица ?

Автор: Athen 6.04.2007 19:12

Цитата(klem4 @ 5.04.2007 21:54) *

Из всех символов или только скажем кириллица ?


Цифры, дана строка из цифр.

Автор: мисс_граффити 7.04.2007 13:09

А как ты считаешь? В массиве?
То есть создаешь массив количеств?
Выложи код, в общем...

Автор: Athen 7.04.2007 18:58

Цитата(мисс_граффити @ 7.04.2007 12:09) *

А как ты считаешь? В массиве?
То есть создаешь массив количеств?
Выложи код, в общем...

А нет... подсчет тож не катит выдает ваще не то число....
Вот что я сделала:

Program zadacha3;
Uses crt;
Var a:string; c,n,max,i,k:integer; b,m:char;
Begin
Clrscr; c:=0;
writeln('Vvedite text iz cifr');
readln(a);
k:=length(a);
if a[k]='.' then begin
for i:=1 to k-1 do
for n:=1 to k-1 do begin
if a[i]=a[i-n] then begin
b:=a[i]; end;
writeln('naibolee chasto vstrechauwayasya cifra=',b);end
else writeln('Vu zabuli postavit tochky');
readln;
End.


Но число выводит не правильно... считает только последние цифры... как сделать лучше еще не придумала...

Автор: Dark Vova 7.04.2007 21:48

Цитата(Athen @ 7.04.2007 15:58) *

А нет... подсчет тож не катит выдает ваще не то число....
Но число выводит не правильно... считает только последние цифры... как сделать лучше еще не придумала...

У меня вышло так:
Uses Crt;
var
a:string;
x,c:char;
i,j,d,max:integer;
begin
ClrScr;
Write('Stroka iz cifr: ');
ReadLn(a);
max:=1;
d:=1;
If a[Length(a)]='.' then
begin
For i:=1 to Length(a)-1 do
For j:=i+1 to Length(a) do
begin
If a[i]=a[j] then
begin
d:=d+1;
x:=a[i];
end;
If j=Length(a) then
begin
If d>max then
begin
max:=d;
c:=x;
end;
d:=1;
end;
end;
Write('Chashe vsego vstrechaetsia cifra ',c);
end
else
WriteLn('A tochka?!');
Readkey;
end.

Автор: klem4 7.04.2007 22:00

var
s: String;
i: Byte;
max: char;
count: Array ['0'..'9'] of Byte;

begin
FillChar(count, sizeof(count), 0);
readln(s);
max := #0;
for i := 1 to Length(s) do begin
inc(count[s[i]]);
if (max = #0) or (count[s[i]] > count[max]) then max := s[i];
end;
writeln(max);
end.

Автор: Athen 8.04.2007 13:14

Спасибо огромное!!! give_rose.gif !zdarov.gif

Автор: Gamlet 10.04.2007 8:25

Здравствуйте люди добрые. У меня пимерно такая же задача (которую я не могу ни каким макаром решить так как преподы ( будь они не ладны) нам не чего не объясняют) как и та которую здесь рассматривали. Вот она:

Написать приложение Windows, в котором:
1) Создать главное окно. Заголовок содержит ФИО, гр., вар.
2) Создать меню вида: Begin Work Help About
│Input│
3) При выборе Input открывается диалоговое окно вида:
----------------------------------------------------------------------------------------------
┌─────────────────┐ ┌───┐
│ 1 │ input word │ 2 │upper case
└─────────────────┘ └───┘

┌──────┐ ┌───┐
│ Yes │ │ 3 │lower case
└──────┘ └───┘

-----------------------------------------------------------------------------------------------
где 1 - окно-редактор типа TEdit;
2,3 - группа кнопок типа TRadioGroup
Yes - кнопка типа TBitBtn
4) Обеспечивается возможность ввода слова и выбора режима пере-
вода в верхний или нижний регистр с помощью кнопок 2,3.
5) При выборе Work открывается диалоговое окно с результом
перевода.

Ну вот такая задача. Ну с первыми тремя пунктами методом тыка я справился, а вот с 4 и 5 пунктами возникли проблемы ( даже не проблемы, я их вообще реализовать не могу). Если кто сможет то сделайте одолжение бедному студенту и напишите прогу.

Автор: Lapp 10.04.2007 9:40

Цитата(Gamlet @ 10.04.2007 5:25) *

У меня пимерно такая же задача

 ! 
Gamlet, не задавай свои вопросы в чужие темы! Обязательно прочти Правила форума (ссылка вверху) и создай новую тему в подходящем разделе. Считай это первым устным предупреждением



Твоя задача, кстати, совсем не похожа на то, что тут разбиралось. Она требует Delphi или чего-то еще в этом роде. Узнай, на чем ее надо решать сначала..