Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 25.05.2011, 14:44   #1 (permalink)
МишаняИАТ
Новичок
 
Регистрация: 11.03.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите, пожалуйста, решить три задачи по Pascal

Задача №1
Определить, сколько раз в строке встречается заданное слово.

Задача№2
Дан текст на русском языке. Напечатать в алфавитном порядке все звонкие согласные буквы, которые входят в каждое нечётное слово и не входят ни в одно чётное слово.

Задача№3
На конкурсе красоты регистрируются участники. Создать массив из 5 записей.
Структура записи:
Ф.И.О. участника конкурса
рост
вес
объём талии

Выбрать в этом массиве записи и выдать на экран Ф.И.О. тех участников, параметры которых соответствуют таким эталонам:
рост 165-175
вес 56-59
объём талии 60-64.

Оооочень нужно)
МишаняИАТ вне форума   Ответить с цитированием

Старый 25.05.2011, 14:44
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Важная информация для вас так же может находится в данных темах

Помогите решить задачи в Turbo Pascal
Помогите пожалуйста решить задачи

Старый 25.05.2011, 15:35   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от МишаняИАТ Посмотреть сообщение
Задача №1 Определить, сколько раз в строке встречается заданное слово.
К сожалению, сформулировано нечетко, поэтому два варианта решения.
1. Если учитываются ситуации, когда заданное слово совпадает с частью слова из строки (напр. "cat" - заданное, "tomcat" - есть в строке), то так:
Код:
VAR
 S,W:String;
 N,p:Byte;
BEGIN
 Writeln('Enter the string:');
 Readln(S);
 Writeln('Enter the word:');
 Readln(W);
 N:=0;
 Repeat
  p:=Pos(W,S);
  If p>0 then
   begin
    Inc(N);
    Delete(S,p,Length(W));
   end;
 Until p=0;
 Writeln(N,' times');
 Readln;
END.
2. Если предполагается только совпадение целых слов (в строке разделенных пробелами), то так:
Код:
VAR
 S,W:String;
 i,i1,i2,N,T:Byte;
 Wr:Array[1..100] of String;

BEGIN
 WriteLn('Enter the string:');
 ReadLn(S);
 Writeln('Enter the word:');
 Readln(W);

 i:=0;
 N:=0;
 Repeat
  Repeat
   Inc(i);
  Until S[i]<>' ';
  i1:=i;
  While (S[i]<>' ') and (i<Length(S)) do
   Inc(i);
  If i=Length(S) then i2:=i else i2:=i-1;
  Inc(N);
  Wr[N]:=Copy(S,i1,i2-i1+1);
 Until i=Length(S);

 T:=0;
 For i:=1 to N do
  If Wr[i]=W then Inc(T);
 Writeln(T,' times');
 Readln;
END.
Vladimir_S вне форума   Ответить с цитированием
Старый 25.05.2011, 19:08   #3 (permalink)
МишаняИАТ
Новичок
 
Регистрация: 11.03.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ок) спасибо) а остальные не знаете как решить?
МишаняИАТ вне форума   Ответить с цитированием
Старый 25.05.2011, 20:49   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от МишаняИАТ Посмотреть сообщение
Ок) спасибо) а остальные не знаете как решить?
Знаю. Со звонкими согласными - попробую. Хотя, честно говоря, ненавижу возиться с кириллицей из-за проблем с кодировками (я работаю только с DOS-Паскалем). А вот последней точно заниматься не буду. Сейчас наш форум буквально завален однотипными задачами на составление и обработку баз данных на основе массивов записей. Все эти задачи ни малейшей сложности, равно как и интереса, не представляют, просто рутинные учебные упражнения, а с другой стороны - требуют большого объема тупой однообразной черновой работы. Потому это - без меня, пожалуйста. Тем более, что решение нескольких подобных задач на форуме имеется, причем среди недавних тем, так что шаблон есть, остальное - будьте любезны самостоятельно. Успеха! Но если что-то не будет получаться - мы всегда поможем. А писать кучу программ по теме "массивы записей" с чистого листа - увольте.
Vladimir_S вне форума   Ответить с цитированием
Старый 25.05.2011, 22:06   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от МишаняИАТ Посмотреть сообщение
Задача№2 Дан текст на русском языке. Напечатать в алфавитном порядке все звонкие согласные буквы, которые входят в каждое нечётное слово и не входят ни в одно чётное слово.
Код:
CONST
 Sogl:Array[1..10] of Char=('б','в','г','д','ж','з','л','м','н','р');
VAR
 S:String;
 i,j,k,i1,i2,N,T,N_even,N_odd,Sum_even,Sum_odd:Byte;
 W:Array[1..100] of String;
 M:Array[1..100,1..10] of Byte;
 b:Boolean;

BEGIN
 WriteLn('Enter the string:');
 ReadLn(S);

 i:=0;
 N:=0;
 Repeat
  Repeat
   Inc(i);
  Until S[i]<>' ';
  i1:=i;
  While (S[i]<>' ') and (i<Length(S)) do
   Inc(i);
  If i=Length(S) then i2:=i else i2:=i-1;
  Inc(N);
  W[N]:=Copy(S,i1,i2-i1+1);
 Until i=Length(S);

 For i:=1 to N do
  For j:=1 to 10 do
   begin
    k:=0;
    b:=false;
    Repeat
     Inc(k);
     If W[i][k]=Sogl[j] then b:=true;
    Until b or (k=Length(W[i]));
    If b then M[i,j]:=1 else M[i,j]:=0;
   end;

 Writeln('Входят во все нечетные и не входят ни в одно четное бувы:');
 N_even:= N div 2;
 If (N mod 2)=0 then N_odd:=N_even else N_odd:=N_even+1;
 b:=true;
 For j:=1 to 10 do
  begin
   Sum_odd:=0;
   Sum_even:=0;
   For i:=1 to N do
    If (i mod 2)=0 then
     Sum_even:=Sum_even+M[i,j]
    else
     Sum_odd:=Sum_odd+M[i,j];
   If (Sum_odd=N_odd) and (Sum_even=0) then
    begin
     b:=false;
     Write(Sogl[j]+' ');
    end;
  end;
 Writeln;
 If b then Writeln('Таких букв нет!');
 Readln;
END.
Да... красивая задачка!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:14.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.