Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2011, 21:42   #1
VKorablev
Форумчанин
 
Аватар для VKorablev
 
Регистрация: 14.04.2011
Сообщений: 126
Радость Прблема с переводом.

Сам писал все время на паскале, нужно написать прогу на С++. Приложу свой исходник на паскале, помогите перевести.
Код:
uses crt;
const nmax=8;
type point=record
           x,y:integer;
           end;
var a:array[1..nmax,1..nmax] of point;
    m,n,i,j,k,imx,s,mx:byte;
    f:boolean;
begin
clrscr;
repeat
write('Количество множеств до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество точек в множествах до ',nmax,' m=');
readln(m);
until m in [1..nmax];
writeln('Введите элементы множеств:');
for i:=1 to n do
 begin
  writeln('Множество ',i);
  writeln('Точка 1');{первая}
  write('x=');readln(a[i,1].x);
  write('y=');readln(a[i,1].y);
  for j:=2 to m do{остальные с проверкой на повтор}
   begin
    repeat
    writeln('Точка ',j);
    write('x=');readln(a[i,j].x);
    write('y=');readln(a[i,j].y);
    k:=1;
    f:=true;
    while (k<=j-1) and f do
    if(a[i,k].x=a[i,j].x)and(a[i,k].y=a[i,j].y)then f:=false
    else k:=k+1;
    until f; {если такой еще не было, все Ok}
   end;
 end;
clrscr;
writeln('Множества:');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(' [',a[i,j].x:3,',',a[i,j].y:3,']');
  writeln;
 end;
writeln;
mx:=0;imx:=0;
for i:=1 to m do{первое множество}
 begin
  s:=0;
  for k:=2 to n do{остальные}
   begin
    f:=false;
    j:=1;
    while(j<=m) and not f do
    if(a[k,j].x=a[1,i].x)and(a[k,j].y=a[1,i].y)then f:=true
    else j:=j+1;
    if f then s:=s+1;{если есть +1}
   end;
  if s>mx then{больше макс}
   begin
    mx:=s;
    imx:=i{номер точки}
   end;
 end;
if imx=0 then write('Ни одна из точек 1 множества не встречена в остальных')
else write('Наибольшему числу множеств принадлежит точка [',a[1,imx].x,',',a[1,imx].y,']');
readln
end.
Нам больше не нужно смотреть на мир сквозь замочную скважину 64Кб сегмента (с) ВалИк
VKorablev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прблема с компелятором или с кодом программы? Sleik Помощь студентам 3 13.10.2011 21:49
Прблема с файлами Joowood Паскаль, Turbo Pascal, PascalABC.NET 2 01.03.2011 09:24
прблема с инициализацией буфера серг Общие вопросы C/C++ 4 18.02.2010 19:22
Прблема с матрицой в Pascal alex_xpro Помощь студентам 2 19.12.2009 13:49
Прблема с DBLookupComboBox'ом slipknot666max Помощь студентам 5 23.11.2009 23:03