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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2020, 20:58   #1
incl_02
Пользователь
 
Регистрация: 28.02.2020
Сообщений: 11
По умолчанию Помогите с переводом кода.

Ребята, помогите перевести код на С++.
var a:array[1..10,1..10] of real;
n,i,j:integer;
mn,mx:real;
begin
randomize;
repeat
write('Введите размер матрицы от 3 до 10 n=');
readln(n);
until n in [3..10];
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=9*random;
if i+j=2 then
begin
mn:=a[i,j];
mx:=a[i,j];
end
else if(j<=n-i+1)or(j<=i) then
if a[i,j]<mn then mn:=a[i,j]
else if a[i,j]>mx then mx:=a[i,j];
write(a[i,j]:5:2);
end;
writeln;
end;
writeln('Минимальный в области=',mn:0:2);
writeln('Максимальный в области=',mx:0:2);
end.
incl_02 вне форума Ответить с цитированием
Старый 29.02.2020, 22:41   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,702
По умолчанию

Да это же просто; меняешь begin end на {}, writeln на cout - делов то... Попробуй сам, понравится. А что не так - поправят. И про форматирование не забывай, теги [CO DE][/CO DE]. А то читать такую портянку тоскливо.
Код:
if i+j=2 then
begin
mn:=a[i,j];
mx:=a[i,j];
end
Эти if в цикле совершенно излиши, до начала цикла надо
Код:
mn:=a[0,0];
mx:=a[0,0];
(индексы массива в ++ с 0)

Последний раз редактировалось digitalis; 29.02.2020 в 22:47.
digitalis вне форума Ответить с цитированием
Старый 01.03.2020, 21:05   #3
incl_02
Пользователь
 
Регистрация: 28.02.2020
Сообщений: 11
По умолчанию

digitalis,, проблема с строками где if else, незнаю как их по другому записать, не подскажете?
Код:
var a:array[1..10,1..10] of real;
n,i,j:integer;
mn,mx:real;
begin
randomize;
repeat
write('Введите размер матрицы от 3 до 10 n=');
readln(n);
until n in [3..10];
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=9*random;
if i+j=2 then
begin
mn:=a[i,j];
mx:=a[i,j];
end
else if(j<=n-i+1)or(j<=i) then
if a[i,j]<mn then mn:=a[i,j]
else if a[i,j]>mx then mx:=a[i,j];
write(a[i,j]:5:2);
end;
writeln;
end;
writeln('Минимальный в области=',mn:0:2);
writeln('Максимальный в области=',mx:0:2);
end.
incl_02 вне форума Ответить с цитированием
Старый 02.03.2020, 09:00   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,702
По умолчанию

Почитать хотя бы по одной страничке описаний Си и Паскаля, можно даже в сети - никак ? Даже попытки не было.
Разница; у Си это в скобках, then не нужен и перед else ;
Код:
if a[i,j]<mn then mn:=a[i,j]
else if a[i,j]>mx then mx:=a[i,j];
Код:
if (a[i][j]<mn) mn=a[i][j] ;
else if (a[i][j]>mx) mx=a[i][j] ;
В теги текст запупырил - это хорошо. Но для ясности чтения отступы ещё рекомендуются, а не в линейку, как в армии.
Код:
for i:=1 to n do
begin
   for j:=1 to n do    a[i,j]:=9*random ;
   ........
end ;
Про то, что
Код:
if i+j=2 then
begin
mn:=a[i,j];
mx:=a[i,j];
end
и нахрен совсем не надо - я уже сказал.

Последний раз редактировалось digitalis; 02.03.2020 в 15:40.
digitalis вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с переводом HexToBin fedrom Общие вопросы C/C++ 7 24.01.2015 17:21
Помогите с переводом куска кода на Delphi в C++ Builder alexey6522 C++ Builder 9 17.09.2014 00:25
Помогите с переводом с++ на с# ka11n C# (си шарп) 5 15.08.2014 08:11
Занимаюсь переводом кода с Си на Delphi. Вроде перевел, но осталась парочка нюансов munthrekosh Общие вопросы Delphi 7 25.12.2013 09:34
Помогите с переводом! Nattallia Свободное общение 1 20.09.2009 18:24