Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы от Ромарио!
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Страницы: 1, 2, 3
Romario
Цитата
Решение 1 задачки на Delphi:

А можно теперь её же, но на Паскале :smile.gif
Romario
Кстати достал 2 книги:
С. А. Абрамов Е. В. Зима "Начала программирования на языке паскаль"
Д. Прайс "Программирование на языке Паскаль"
mj
Цитата
А можно теперь её же, но на Паскале :smile.gif

Конечно можно smile.gif

Код
program D1;
var
 D, F, C, R, T: Integer;
begin
 Write('Введите количество нужных делителей: ');
 ReadLn(D);
 for F := 1 to 200 do begin
   C := 0;
   T := F;
   while T<>1 do begin
     R := 2;
     while (T mod R)<>0 do
       Inc( r );
     T := T div R;
     Inc( c );
   end;
   if C=D then
     Write(F, ' ');
 end;
 WriteLn;
 ReadLn;
end.
Piton
Привет, Я коенчно не Ромарио, но один вопросик очень бесит - модуль CRT не работает на некоторых компах современных. Говорят есть какой-то add-on который эту неприятность сводит на нет. Ромарио, может ты уже с этим встречался и подскажешь где это чудо можно достать? А может ещё кто? Очень хочется. Заранее спасибо.
ClaneOffline
Цитата
Кстати достал 2 книги:
С. А. Абрамов Е. В. Зима "Начала программирования на языке паскаль"
Д. Прайс "Программирование на языке Паскаль"

Пришли мне их на мыло, если они в электронном варианте. Мыло clane@km.ru
Romario
Неееее ;D Книги в книжном варианте 8)
Спасибо за задачку, MJ, ща буду тестить... А как насчёт второй?  :smile.gif Время уже поджимает, скоро здавать надо, ёпть sad.gif
Romario
У меня ещё к тебе вопрос, MJ. Ты тут кому-то задачку писал, дак вот мучает один вопрос, вот задачка:
Код
var
 D, F, Z: Integer;
begin
 D := StrToIntDef(Edit1.Text, 0);
 Z := 10;
 for F := 1 to D do
 begin
   while Z<=F do Z := Z*10;
   if ((F*F) mod Z)=F then
     WriteLn(F);
 end;
end.


Дак вот интересует вот эта строчка:
D := StrToIntDef(Edit1.Text, 0);
Это Паскаль? Если да, то по подробнее ;) Что значит.
mj
Нет, "D := StrToIntDef(Edit1.Text, 0);" это Delphi...
Обозначает она следующее: Берётся текст из текстовой строки введёной пользователем и извлекается число, в случае ошибки результат будет число 0 (в данном примере)...
Alex
Это не Паскаль,а Делфи.Там в этой задаче даже по-моему было написано, что на Делфи!!!
mj
Я вообще то подумал и вспомнил что Delphi это разнавидность паскаля, так что пожно сказать, что это пасовский код ;D
Romario
Ясно, значит если знаешь Паскаль - значит знаешь C++ Delphi Assembler и так дал... :D
Romario
У меня вот ещё какой вопрос:

Дана последовательность из n вещественных чисел. Вычислить сумму тех элементов последовательности, номера которых совпадают со значениями элементов последовательности.

Так вот как тут? smile.gif
Как задать: номера которых совпадают со значениями элементов последова-тельности

Как это задаётся? Я сначала думал pos(x), а нет. Помогите! :-[
Ivs
Ну тут все просто.....

for i:=1 to n do
  if i=a[i] then S:=S+a[i];
усе.........  ;)
Alex
Каждый язык надо учить в отдельности.
Например между Пасом и с++ достаточно большие различия.Я его как-то начинал учить!!!
AlaRic
С++ посложнее будет.....у меня книга валяется да руки никак не дойдут..
mj
Вот когда изучете все языки программирования, когда они смашаются в башке в кашу, вот тогда будете судить что сложнее smile.gif
Romario
Цитата
Вот когда изучете все языки программирования, когда они смашаются в башке в кашу, вот тогда будете судить что сложнее smile.gif

Мне бы хоть один выучить  ;)
mj
Если долго мучиться, что нибудь получится...

Pascal не такой и сложный, самое главное понять алгоритмы...

Например такой вопрос:
Как проще всего нарисовать окошко из текстовых чёрточек? (высота и ширина передаются в переменных)
Romario
Цитата
Если долго мучиться, что нибудь получится...

Pascal не такой и сложный, самое главное понять алгоритмы...

Например такой вопрос:
Как проще всего нарисовать окошко из текстовых чёрточек? (высота и ширина передаются в переменных)

Я пас... и как же?
mj
Цитата
Я пас... и как же?

Ну напиши как бы ты рисовал, в какой последовательности и какие элементы окна (тапи подсказка)?
Romario
Если честно, понятия не имею... говори
mj
1) простой способ
Ну сначала рисуем цыклом границы, потом цыклом поле.

2) Сложный
Сначала опять же цыклом заполняем квадрат пробелами определённого цвета, потом уже без использования цвета наносим цыклом границы.

Спросите: как можно было иначе?
Ответ: обычные студенты техникумов как угодно рисуют, но только не так

Неужели так сложно?
Или я так непонятно спросил?

Кстати на сайти открыт раздел задачек, он будет быстро пополнятся...
Romario
Вот ещё задачки, 6 лабораторная smile.gif

1.Дана символьная строка. Заменить все символы '!' точками, кроме первого и вывести полученную строку.

2.Дана символьная строка. Определить, есть ли в данной строке два любых одинаковых символа, и вывести соответствующее сообщение.

3.Дана символьная строка и слово, состоящее из четырех символов. Определить, есть ли в данной строке все буквы данного слова.

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

5.Дана символьная строка. Получить новую строку, взяв из данной все символы, находящиеся между первой открывающейся скобкой и последней закрывающейся (если какие-либо скобки отсутствует, то вывести соответствующее сообщение).

6.Дана символьная строка. Заменить все последовательности символов 'on' на 'online' и вывести новую строку (если искомой последовательности в строке нет, то вывести соответствующее сообщение).

7.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить количество слов в данной строке.

8.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить длину самого короткого слова.

9.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить длину самого короткого слова.

10.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить количество слов заданной длины.

11.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить количество и вывести все самые длинные слова.

12.Дана символьная строка и натуральное число N. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить длину слова, стоящего на N-ом месте и вывести все слова, состоящие из такого же количества символов, что и найденное слово. Если N больше количества слов в предложении, то вывести соответствующее сообщение.

13.Дана символьная строка и символ. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Определить количество слов в строке, оканчивающихся на заданный символ.

14.Дана строка символов. Определить количество букв 'о' между самой левой открывающейся скобкой и самой правой закрывающейся скобкой (если какие-либо скобки отсутствует, то вывести соответствующее сообщение).

15.Дана символьная строка. Подсчитать наибольшее количество букв 'а', идущих в ней подряд.

16.Дана символьная строка и символ. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Вывести все слова, в которых есть заданный символ.

17.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Заменить окончания слов 'ing' на 'ed' и вывести полученную строку.

18.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Отредактировать заданное предложение, удаляя из него слова, которые уже встречались в предложении.

19.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Найти самое длинное симметричное слово.

20.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Для каждого из слов указать, сколько раз оно встречается в данной строке.

21.Даны две символьные строки. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Вывести слова, которые встречаются в обеих строках.

22.Дана символьная строка. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Отредактировать заданное предложение, удаляя из него слова с нечетными номерами и переворачивая слова с четными (пример, нow do you do --> od od).

23.Даны две символьные строки. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Каждая строка состоит из попарно различных слов. Проверить, можно ли получить вторую строку из первой, удалением некоторых её символов.

24.Даны две символьные строки. Слово - последовательность символов между пробелами, не содержащая пробелы внутри себя. Найти самое длинное общее слово двух заданных предложений.
Clane
Хех, немало задачек то.... Что у тебя за препод такой, что за раз столько задает, а ??
Ivs
Сколько смог.....
Код

{Program N_1;
uses crt;
var
  s:string;
  i:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=pos('!',s);
  i:=i+1;
  while i<=length(s) do
  begin
     if s[i]='!' then s[i]:='.';
     i:=i+1;
  end;
  writeln('OutPut -> ',s);
  readln;
end. }

{Program N_2;
uses crt;
var
  s:string;
  i,j:integer;
  b:boolean;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  for i:=1 to length(s)-1 do
     for j:=i+1 to length(s) do
      if s[i]=s[j] then
      begin
         b:=true;
         write('Yes! This is ',s[i],'!');
         readln;
         halt;
      end;
  write('No!');
  readln;
end.}

{Program N_3;
uses crt;
var
  M:set of char;
  s,sl:string;
  i:integer;
  b:boolean;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  write('Input word -> ');readln(sl);
  for i:=1 to length(s) do M:=M+[s[i]];
  b:=true;
  for i:=1 to length(sl) do
     if not(sl[i] in M) then begin b:=false;break;end;
  if b then write('All symbols of word are in string')
     else write('NOoooo!');
  readln;
end.}

{Program N_4;
uses crt;
var
  s,s1,s2,res:string;
  i,j,k:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  for i:=1 to length(s) do
     if s[i]=':' then k:=k+1;
  if k>=2 then
  begin
     i:=pos(':',s);
     s1:=Copy(s,1,i-1);
     for j:=length(s) downto i+1 do
      if s[j]=':' then
      begin
         s2:=Copy(s,j+1,length(s));
         break;
      end;
  write('OutPut: ',s1+s2);
  end else write('No correct data!');
  readln;
end.}

{Program N_5;
uses crt;
var
  s,str:string;
  i1,i2,j,i:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i1:=0;i2:=0;
  for i:=length(s) downto 1 do
     if s[i]='(' then begin i1:=i;break end;
  for j:=length(s) downto i1+1 do
     if s[j]=')' then begin i2:=j;break end;

  if (i1=0) or (i2=0) then begin write('No correct data!');readln;exit end
  else str:=copy(s,i1+1,(i2-i1)-1);

  write('OutPut -> ',str);
  readln;
end.}

{Program N_6;
uses crt;
var
  s,s2:string;
  i:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1;
  while i<=length(s) do
  begin
     if (s[i]='o') and (s[i+1]='n') then begin s2:=s2+'online';i:=i+1;end
                            else s2:=s2+s[i];
     i:=i+1;
  end;
  if s=s2 then write('No correct data')
        else write('OutPut -> ',s2);
  readln;
end.}

{Program N_7;
uses crt;
var
  s,t:string;
  i,k,j:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     k:=k+1;
     i:=i+1;
  end;
  write('Word: ',k);
  readln;
end. }

{Program N_8;
uses crt;
var
  s,t:string;
  i,min:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  min:=length(s);
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if length(t)<min then min:=length(t);
     i:=i+1;
  end;
  write('Very small word this is ',min,' symbols');
  readln;
end.}

{Program N_9;’®¦Ґ б ¬®Ґ зв® N_8}

{Program N_10;
uses crt;
var
  s,t:string;
  i,long,k:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  write('Input long -> ');readln(long);
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if length(t)=long then k:=k+1;
     i:=i+1;
  end;
  write('OutPut -> ',k);
  readln;
end.}

{Program N_11;
uses crt;
var
  s,t:string;
  i,max,k:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1;max:=0;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if length(t)>=max then begin max:=length(t);k:=k+1 end;
     i:=i+1;
  end;
  writeln('Very long word: ',k);
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if length(t)=max then writeln(t);
     i:=i+1;
  end;
  readln;
end. }
Ivs
Далее.........
Код

{Program N_12;
uses crt;
var
  s,t,s2:string;
  i,N,k,m:integer;
  b:boolean;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  write('Input Number -> ');readln(N);
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     k:=k+1;
     if k=N then begin writeln('OutPut -> ',t);m:=length(t);s2:=t;b:=true;break end;
     i:=i+1;
  end;
  if not(b) then write('Number > word')
  else begin
     i:=1;
     while i<=length(s) do
     begin
      t:='';
      while (s[i]<>' ') and (i<=length(s)) do
      begin
         t:=t+s[i];
         i:=i+1;
      end;
      if t<>s2 then
         if length(t)=m then writeln(t);
      i:=i+1;
     end;
  end;
  readln;
end. }

{Program N_13;
uses crt;
var
  s,t:string;
  ch:char;
  i,k:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  write('Input char -> ');readln(ch);
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if t[length(t)]=ch then k:=k+1;
     i:=i+1;
  end;
  write('OutPut -> ',k);
  readln;
end.}

{Program N_14;
uses crt;
var
  s,str:string;
  i1,i2,j,i:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i1:=0;i2:=0;
  i1:=pos('(',s);
  for j:=length(s) downto i1+1 do
     if s[j]=')' then begin i2:=j;break end;
  if (i1=0) or (i2=0) then write('Not correct data!')
  else begin
     str:=Copy(s,i1+1,(i2-i1)-1);
     write('OutPut -> ',str);
  end;
  readln;
end.}

{Program N_15;
uses crt;
var
  s:string;
  i,k,max:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1;max:=0;
  while i<=length(s) do
  begin
     k:=0;
     while (s[i]='a') and (i<=length(s)) do
     begin
      k:=k+1;
      i:=i+1;
     end;
     if k>max then max:=k;
     i:=i+1;
  end;
  write('Max ''a'' -> ',max);
  readln;
end.}

{Program N_16;
uses crt;
var
  s,t:string;
  ch:char;
  i,k,j:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  write('Input char -> ');readln(ch);
  writeln('OutPut: ');
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     j:=1;
     while j<=length(t) do
     begin
      if t[j]=ch then begin writeln(t);break end;
      j:=j+1;
     end;
     i:=i+1;
  end;
  readln;
end. }

{Program N_17;
uses crt;
var
  s,t,s2:string;
  i:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if length(t)>3 then
      if (t[length(t)-2]+t[length(t)-1]+t[length(t)])='ing' then
      begin
         delete(t,length(t)-2,3);
         insert('ed',t,length(t)+1);
      end;
     s2:=s2+t+' ';
     i:=i+1;
  end;
  write('OutPut -> ',s2);
  readln;
end. }

{Program N_18;
uses crt;
var
  s,t,s2:string;
  i,j,k:integer;
  a:array[1..100] of string;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1;j:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     a[j]:=t;
     j:=j+1;
     i:=i+1;
  end;
  k:=j-1;
  for i:=2 to k do
     for j:=i-1 downto 1 do
      if a[i]=a[j] then a[j]:='';
  for i:=1 to k do write(a[i],' ');

  readln;
end.}

{Program N_19;
uses crt;
var
  s,t,s2,m,s1:string;
  i,k,max:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     if length(t) mod 2=0 then
     begin
      k:=length(t) div 2;
      s1:=copy(t,1,k);
      s2:=copy(t,k+1,k);
      if s1=s2 then
         if length(t)>max then begin max:=length(t);m:=t;end;
     end;
     i:=i+1;
  end;
  write('Very long simmetric word: ',m);
  readln;
end.}
Ivs
Код

{Program N_20;
uses crt;
var
  s,t,s1:string;
  i,k,h,j:integer;
  a:array[1..100] of string;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1;j:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     a[j]:=t;
     j:=j+1;
     i:=i+1;
  end;
  h:=j-1;
  for i:=1 to h-1 do
  begin
     k:=1;
     if a[i]<>'' then
     begin
       for j:=i+1 to h do
          if a[i]=a[j] then
          begin
           k:=k+1;
           a[j]:='';
          end;
       writeln(a[i],' -> ',k);
     end;
  end;
  readln;
end.}

{Program N_21;
uses crt;
var
  s1,t,s2:string;
  i,j,k,h:integer;
  a,b:array[1..100] of string;
begin
  ClrScr;
  write('Input string 1 -> ');readln(s1);
  i:=1;j:=1;
  while i<=length(s1) do
  begin
     t:='';
     while (s1[i]<>' ') and (i<=length(s1)) do
     begin
      t:=t+s1[i];
      i:=i+1;
     end;
     a[j]:=t;
     j:=j+1;
     i:=i+1;
  end;
  k:=j-1;
  write('Input string 2 -> ');readln(s2);
  i:=1;j:=1;
  while i<=length(s2) do
  begin
     t:='';
     while (s2[i]<>' ') and (i<=length(s2)) do
     begin
      t:=t+s2[i];
      i:=i+1;
     end;
     b[j]:=t;
     j:=j+1;
     i:=i+1;
  end;
  h:=j-1;
  for i:=1 to k do
     for j:=1 to h do
      if a[i]=b[j] then begin writeln(a[i]);break;end;
  readln;
end.}

{Program N_22;
uses crt;
var
  s,t,s1,str:string;
  i,k,j:integer;
begin
  ClrScr;
  write('Input string -> ');readln(s);
  i:=1;
  while i<=length(s) do
  begin
     t:='';
     while (s[i]<>' ') and (i<=length(s)) do
     begin
      t:=t+s[i];
      i:=i+1;
     end;
     k:=k+1;
     if k mod 2=0 then str:=str+' '
     else
     begin
      s1:='';
      for j:=length(t) downto 1 do s1:=s1+t[j];
      str:=str+s1;
     end;
     i:=i+1;
  end;
  write('OutPut -> ',str);
  readln;
end. }

{Program N_23}
{Poka Net!}

{Program N_24;
uses crt;
var
  s1,t,s2:string;
  i,j,k,h,max:integer;
  a,b:array[1..100] of string;
begin
  ClrScr;
  write('Input string 1 -> ');readln(s1);
  i:=1;j:=1;
  while i<=length(s1) do
  begin
     t:='';
     while (s1[i]<>' ') and (i<=length(s1)) do
     begin
      t:=t+s1[i];
      i:=i+1;
     end;
     a[j]:=t;
     j:=j+1;
     i:=i+1;
  end;
  k:=j-1;
  write('Input string 2 -> ');readln(s2);
  i:=1;j:=1;
  while i<=length(s2) do
  begin
     t:='';
     while (s2[i]<>' ') and (i<=length(s2)) do
     begin
      t:=t+s2[i];
      i:=i+1;
     end;
     b[j]:=t;
     j:=j+1;
     i:=i+1;
  end;
  h:=j-1;
  max:=0;
  for i:=1 to k do
     for j:=1 to h do
      if a[i]=b[j] then
         if length(a[i])>max then begin max:=length(a[i]);t:=a[i] end;
  if max<>0 then write('OutPut -> ',t) else write('No correct data!!!');
  readln;
end.}
Romario
Привет всем smile.gif

Где можно нарыть информации по динамическим типа? Спасибо, а ещё задачек пару с обяснением :smile.gif
AlaRic
Хотелось бы чаще тебя видеть!
http://pascal.dax.ru/?books  
Romario
Пошли новые темы, задачи так что теперь чаще буду заходить ;)
AlaRic
А как насчет того, чтобы зайти не из-за задач, а просто пообщаться?
Romario
Хорошая идея, но как не зайду в ваш чат, так там никого нет ???
Clane
Цитата
Хорошая идея, но как не зайду в ваш чат, так там никого нет ???

Ты лучше сюда задачки кинь (или сделай топик в разделе "Задачи"),  а то я что-то не совсем уверен, как их делать... :-(
Romario
Clane
Только об этом подумал =))

Задачи:
На тип Record

1. Сформировать файл, имеющий следующую структуру
type имя=(Аня,Валя,Женя,Петя,Саша,Таня,Шура,Юра);
данные=record пол:(м,ж);рост:140..200 end;
и определить:
o средний рост женщин;
o имя самого высокого мужчины;
o есть ли в группе хотя бы два человека одного роста.

2. Сформировать файл, имеющий следующую структуру
type дата=record число:1..31;
месяц:1..12;
год:1900..1996;
end;
анкета=record фамилия:string;
пол:(м,ж);
день рождения:дата;
end;
и определить:
o фамилию самого старшего мужчины;
o все фамилии, начинающиеся с заданной буквы;
o список людей, родившихся в заданном месяце.

3. Сформировать файл, имеющий следующую структуру
type знакомый=record фамилия:string;
номертел:10000..99999;
адрес:string;
end;
и определить:
o есть ли в книжке телефон данного человека;
o кому принадлежит данный телефон;
o список людей, живущих на данной улице.

4. Сформировать файл, имеющий следующую структуру
type студент= record фамилия: string;
номергр: string;
оценка1: integer;
оценка2: integer;
оценка3: integer;
end;
и определить:
o фамилию того, кто лучше всех сдал экзамены;
o средний балл по данному предмету;
o список задолжников.

5. Сформировать файл, имеющий следующую структуру
type студент= record фамилия:string;
имя:string;
пол:(м,ж);
возраст:16..35;
курс:1..5;
end;
и определить:
o курс, на котором наибольший процент мужчин;
o самые распространенные женские и мужские имена;
o список студентов данного пола, данного курса.

6. Сформировать файл, имеющий следующую структуру
type пассажир=record фамилия:string;
имя:string;
номер рейса:string;
количество вещей:integer;
общий вес:integer;
end;
и определить:
o рейс с максимальным весом багажа;
o пассажира с наибольшим количеством вещей;
o вывести список пассажиров и информацию об их багаже, улетающих данным рейсом.

7. Сформировать файл, имеющий следующую структуру
type владелец=record фамилия:string;
адрес:string;
марка автомобиля:string;
рег. номер:string;
год выпуска:1900..2000;
end;
и определить:
o количество автомобилей каждой марки;
o владельца самого старого автомобиля;
o фамилии владельцев и номера автомобилей данной марки.

8. Сформировать файл, имеющий следующую структуру
type ребенок=record фамилия:string;
адрес:string;
пол:(муж,жен);
количество дней посещения:integer;
end;
и определить:
o самого болеющего ребенка;
o кто больше болеет мальчики или девочки;
o список детей проживающих на данной улице.

9. Сформировать файл, имеющий следующую структуру
type книга=record автор:string;
название:string;
год издание:integer;
издательство:string;
количество страниц:integer;
end;
и определить:
o есть ли в библиотеке книги данного автора;
o найти книгу с наибольшим количеством страниц;
o найти названия книг данного автора, изданных с указанного года, в данном издательстве.

10. Сформировать файл, имеющий следующую структуру
type товар=record наименование:string;
страна:string;
объем партии:integer;
цена:integer;
end;
и определить:
o страну, в которую экспортируется товар на максимальную сумму;
o список стран, в которые экспортируется данный товар;
o найти товары, который имеет минимальный объем партии.

...
Romario
...

продолжение:


11. Сформировать файл, имеющий следующую структуру
type игрушка=record название:string;
цена:integer;
возраст1:1..16;
возраст2:1..16;
end;
и определить:
o название самой дорогой игрушки;
o список игрушек, которые подходят детям данного возраста;
o подобрать игрушки на данную сумму денег (все варианты).

12. Сформировать файл, имеющий следующую структуру
type игрушка=record название:string;
цена:integer;
цвет:string;
возраст1:1..16;
возраст2:1..16;
end;
и определить:
o название игрушек, цена которых не превышает данную и которые подходят детям данного возраста;
o найти самую дешевую игрушку данного названия;
o найти самый распространенный цвет игрушек.

13. Сформировать файл, имеющий следующую структуру
type пассажир=record фамилия:string;
имя:string;
номер рейса:string;
количество вещей:integer;
общий вес:integer;
end;
и определить:
o число пассажиров, количество вещей которых превосходит среднее число вещей;
o пассажира с данным количеством вещей и не более данного веса;
o вывести информацию о количестве вещей и общем весе каждого рейса.

14. Сформировать файл, имеющий следующую структуру
type спортсмен=record фамилия:string;
страна:string;
рост:150..220;
вес:30..100;
год рождения:ineger;
результат:integer;
end;
и определить:
o средний рост и вес спортсменов данной страны;
o найти лучшего спортсмена данной страны;
o список спортсменов данного возраста с результатом, не хуже данного.

15. Сформировать файл, имеющий следующую структуру
type спортсмен=record фамилия:string;
страна:string;
тренер:string;
год рождения:ineger;
результат:integer;
end;
и определить:
o найти самого молодого спортсмена, занимающегося у данного тренера;
o найти лучшего тренера данной страны;
o список тренеров с указанием страны.

16. Сформировать файл, имеющий следующую структуру
type предмет=record название:string;
количество часов:integer;
преподаватель:string;
кафедра:string;
форма отчетности:(зачет,экзамен);
end;
и определить:
o преподавателя, у которого самое большое количество часов;
o список предметов, по которым сдают экзамен;
o кафедру и преподавателя, который ведет данный предмет.

17. Сформировать файл, имеющий следующую структуру
type предмет=record название:string;
0количество часов:integer;
преподаватель:string;
кафедра:string;
форма отчетности:(зачет,экзамен);
end;
и определить:
o преподавателя, который принимает больше всего экзаменов;
o кафедру, на которой читается больше всего предметов;
o список преподавателей данной кафедры.

18. Сформировать файл, имеющий следующую структуру
type предмет=record название:string;
количество часов:integer;
преподаватель:string;
кафедра:string;
форма отчетности:(зачет,экзамен);
end;
и определить:
o найти среднюю нагрузку по данной кафедре;
o найти количество зачетов и экзаменов у данного преподавателя;
o список предметов, читаемых данной кафедрой.

19. Сформировать файл, имеющий следующую структуру
type преподаватель=record фамилия:string;
предмет:string;
факультет:string;
курс:1..5;
количество часов:integer;
end;
и определить:
o преподавателя имеющего самую большую нагрузку;
o список предметов, которые читает данный преподаватель;
o объем часов на данном факультете и данном курсе.

20. Сформировать файл, имеющий следующую структуру
type игрушка=record название:string;
цена:integer;
возраст1:1..16;
возраст2:1..16;
end;
и определить:
o название самой дорогой игрушки;
o список игрушек, которые подходят детям данного возраста;
o подобрать игрушки на данную сумму денег (все варианты).

21. Сформировать файл, имеющий следующую структуру
type книга=record автор:string;
название:string;
год издание:integer;
издательство:string;
количество страниц:integer;
end;
и определить:
o есть ли в библиотеке книги данного автора;
o найти книгу с наибольшим количеством страниц;
o найти названия книг данного автора, изданных с указанного года, в данном издательстве.

22. Сформировать файл, имеющий следующую структуру
type знакомый=record фамилия:string;
номертел:10000..99999;
адрес:string;
end;
и определить:
o есть ли в книжке телефон данного человека;
o кому принадлежит данный телефон;
o список людей, живущих на данной улице

...
Romario
На матрицы:

1. Дана квадратная матрица порядка N. Вычислить среднее арифметическое положительных элементов матрицы, стоящих выше главной диагонали.

2. Дана матрица размерности N на M. Найти строку, в которой максимальный элемент минимален в соответствующем столбце.

3. Дана матрица размерности N на M. Найти столбец, в котором максимальный элемент минимален в соответствующей строке.

4. Дана матрица размерности N на M. Найти в матрице первую по порядку строку с наибольшей суммой элементов. Вывести ее номер.

5. Дана квадратная матрица порядка N. В матрице вычислить среднее арифметическое положительных элементов, стоящих на главной диагонали.

6. Дана квадратная матрица порядка N. Вывести строку матрицы, в которой элемент, стоящий на главной диагонали, максимален.

7. Дана матрица размерности N на M. Положительные элементы матрицы переписать подряд в одномерный массив В.

8. Дана матрица размерности N на M. Вычислить количество строк матрицы, в которых есть хоть один отрицательный элемент.

9. В квадратной матрице найти сумму элементов побочной диагонали и разделить на полученную сумму все элементы последнего столбца.

10. Дана матрица размерности N на M. Найти максимальный элемент и строку, содержащую этот элемент, поменять с первой строкой. Полученную матрицу вывести построчно.

11. Дана матрица размерности N на M. Вывести количество строк матрицы, в которых число положительных элементов больше числа отрицательных элементов.

12. Дана квадратная матрица порядка N. Найти произведение элементов побочной диагонали квадратной матрицы.

13. Дана матрица размерности N на M. Вывести номера всех столбцов матрицы, не содержащих отрицательных элементов.

14. Дана матрица размерности N на M. В матрице найти первый по порядку столбец с максимальной суммой элементов. Вывести его номер.

15. Дана матрица размерности N на M. Вычислить количество строк матрицы, в которых нет ни одного отрицательного элемента.

16. Дана квадратная матрица порядка N. Вывести столбец матрицы, в котором элемент, стоящий на главной диагонали, минимален, среди элементов главной диагонали.

17. Дана матрица размерности N на M. В матрице найти первый по порядку столбец с минимальной суммой модулей его элементов. Вывести его номер.

18. Найти сумму элементов квадратной матрицы, находящихся ниже главной диагонали.

19. Дана квадратная матрица порядка N. Найти максимальный и минимальный элементы матрицы и поменять местами соответствующие им строку и столбец (строка для максимального элемента, столбец для минимального элемента).

20. Дана квадратная матрица порядка N. Найти количество четных элементов квадратной матрицы, расположенных ниже побочной диагонали.

21. Дана матрица размерности N на M. Седловой точкой матрицы назовем элемент, который является одновременно минимальным в строке и максимальным в столбце. Найти все седловые точки матрицы.

22. Дана матрица размерности N на M. Найти произведение максимальных четных элементов столбцов матрицы.
Romario
Итак, последние 3 поста и есть задачи smile.gif На тип Запись всё вводится с клавы, а матрицы можно заполнять рандомно... Удачи! ;)
Clane
Хм... Насчет матриц глянь в алгоритмы, там AlaRic полезного много накидал !
Clane
Цитата
Итак, последние 3 поста и есть задачи smile.gif На тип Запись всё вводится с клавы, а матрицы можно заполнять рандомно... Удачи! ;)

А ты сам уже что-нибудь написал или хотя-бы попробывал ? если да, то шли прям сюда, глянем !
Romario
Сделал 1 на запись и одну на матрицы... Но с матрицей глюки да и неправильная она наверно... Код сюда кидать не буду, писал в Турбо Паскале так что, что написано русским корявиться sad.gif
1: http://www.rgweb.hut.ru/1.PAS
2: http://www.rgweb.hut.ru/2.PAS
Dark
:o
нУ ВОТ ТЕБЕ ЗАМЕЧАНИЯ НА ТЕМУ 1.PAS, ИЗВИНИ ЕСЛИ БУДУТ СЛИШКОМ СУРОВЫМИ...

1.
Код
readln(a[i].surname);
a[i].surname[j]:=UpCase(a[i].surname[j]);


Здесь ты, как я понял, хочешь все имя перевести в верхний регистр.
Но у тебя ничего не выйдет - у тебя j равна 0, а чтобы перешла в верхний регистр, нужно использовать еще один цикл:
Код
readln(a[i].surname);
 for j:=1 to ord(a[i].surname[0]) do
   a[i].surname[j]:=UpCase(a[i].surname[j]);

И все тип топ. И еще, если введено русское имя, то процедура Upcase с ним работать не будет...

2. проверку
Код
if not (a[i].sex='Ж') then
 if not (a[i].sex='M') then
   if not (a[i].sex='м') then
     if not (a[i].sex='ж') then
       begin
         {...}
       end;

можно было заменить на:
Код
if not (a[i].sex in ['Ж', 'ж','М','м']) then
 begin
   {...}
 end;

И в идеале: a[i].sex тоже можно обработать Upcase.
С наилучшими пожеланиями! ;D
Romario
1. Ну например напишу я это так: if not (a[i].sex in ['Ж', 'ж','М','м']) then
  begin
  {...}
  end;  
Ну а в VAR'e мне как и что описывать?
2. readln(a[i].surname);
   for j:=1 to ord(a[i].surname[0]) do
     a[i].surname[j]:=UpCase(a[i].surname[j]);
И все тип топ. И еще, если введено русское имя, то процедура Upcase с ним работать не будет...
Почему с русскими буквами не будет это всё дело работать?
AlaRic
Вот тебе №1 в разделе матриц:

Код
program n1;
const n=5;
var
a:array[1..n,1..n] of integer;
i,j,k:integer;
arif,s:real;
begin
s:=0;k:=0;
writeln('ввести матрицу');
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
for i:=1 to n do
for j:=i to n do
if a[i,j]>0 then
begin
k:=k+1;
s:=s+a[i,j];
end;
arif:=s/k;
write('ответ ',arif:7:2);
end.
 

Остальное лень  ;D ;D
Dark
smile.gif :smile.gif
А что ты хочешь написать в Var'е?
Когда ты сравниваешь так, как я написал, тем самым ты определяешь преднадлежность элемента множеству.

В моем случае элементом была переменная a[i].sex, а множеством ['М','м','Ж','ж'].

Можно сделать так:

writeln('Введите пол');
repeat
readln(a[i].sex);
if not a[i].sex in [..] writeln('Нехорошо!!!');
until a[i].sex in [..];

// я не люблю GOTO, правда это личное дело каждого...

А то, что Upcase не переводит в верхний регистр связано с расстановкой номеров кодов в ASCII таблице... но в общемто не сложно написать ее прототип самому...

Счастливого погружения!!!
;D
Ромарио
Dark
Ну вот пишу я так:
Код
1:
 write(' Введите пол -> ');
 readln(a[i].sex);
 if not (a[i].sex in ['М','м','Ж','ж']) then begin
   write(a[i].sex,' неверно...');
   writeln;
   goto 1;
 end;

И в этой строке:
if not (a[i].sex in ['М','м','Ж','ж']) then
он мне ошибку выводит:
Operand types do not match operator
В чём ошибка?
Romario
Ну типа отзовитесь :-/
Dark
Извини, отвечу позжее... когда буду на работе - в ночь с 23 на 24(может позже...) ;D
Romario
Жду... ;)
Dark
Ну, в общем я выяснил - in co string не работает sad.gif а работает с char, так что в типе anketa измени sex на char - и все заработает...  ;D
Romario
Dark
Изменил со string на char и всё равно в строке:

if not (a[i].sex in ['М','м','Ж','ж']) then

таже ошибка... sad.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.