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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2011, 13:37   #1
VaLenOK007
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 25
Восклицание Какие варианты по адаптации кода могут быть?

Привет программеры. У меня вот тут кодище есть один... Он реализован ближе к делфи чем к элементарному паскалю, но вот наши препода кричат и машут руками дескать "Мы тебя так не учили, это всё хрень и не рабочая". Кто сможет упростить? Ну чтоб совсем прям элементарно было?

Код:
const
 n = 3;
Var
 a:array [1..n,1..n] of real;
 i,j:integer;
 sum:real;
Begin
 Writeln('Введите элементы: ');
 For i:=1 to n do
  Begin
   For j:=1 to n do
    Readln(a[i,j]);
   Writeln('---');
  End;
 Writeln;
 writeln('Начальная матрица: ');
 For i:=1 to n do
  Begin
   For j:=1 to n do
    Write(a[i,j],' ');
   writeln;
  End;
 sum:=0;
 For i:=1 to n do
  For j:=1 to n do
   If (odd(j)) and (frac(a[i,j]) <> 0) then sum:=sum+a[i,j]; {Подсчет суммы элементов c дробной частью}
 Writeln;
 Writeln('Сумма элементов, стоящих в нечетных столбцах и имеющих дробную часть ',sum);
 For i:=2 to n do
  For j:=n-i+2 to n do
   a[i,j]:=a[i,j]+sum; {Выполнение сложения}
 writeln;
 Writeln('Конечная матрица: ');
 For i:=1 to n do
  Begin
   For j:=1 to n do
    Write(a[i,j],' ');
   writeln;
  End;
End.
А если конкретнее, то If (odd(j)) and (frac(a[i,j]) <> 0) then sum:=sum+a[i,j]; эту строку.

задание если кому надо вот
Все элементы матрицы X[n,n] лежащие ниже второстепенной диагонали заменить суммой элементов с дробной части, стоящих в нечетных столбцах




___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 20.06.2011 в 11:35.
VaLenOK007 вне форума Ответить с цитированием
Старый 20.06.2011, 10:51   #2
Merkator
Читаю Кормена
Пользователь
 
Аватар для Merkator
 
Регистрация: 28.12.2008
Сообщений: 46
По умолчанию

odd(x) равносильно x mod 2 = 1
frac(x) равносильно x - trunc(x)

Надеюсь этого хватит.
(На будущее, делайте отступы, скажем, в 4 пробела. Отступ в 2 пробела еще читаем, а в 1 совсем нет)
Merkator вне форума Ответить с цитированием
Старый 20.06.2011, 11:47   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
суммой элементов с дробной части, стоящих в нечетных столбцах
как минимум, это написано коряво (не по русски),
как максимум, имеется в виду СОВЕРШЕННО не то, что Вы делаете в программе!
Может быть, именно это и не нравится Вашим преподавателям?!


Лично у меня к самой программе (исходному коду) никаких претензий нет. И заменять odd(xx) на (xx mod 2 = 1) - ересь... Если Ваши преподаватели совсем не знают стандартные функции языка Pascal - то пусть подучат! В любом букваре по Паскаль это есть!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматизации сортировки данных. Какие варианты? Nomercy Microsoft Office Excel 9 12.04.2010 14:39
Соединить в локальную сеть без коммутатора Win 7 и XP. Какие могут быть проблемы? Stilet Windows 7 05.02.2010 17:31
Могут ли значения быть сторонами треугольника? fs444 Общие вопросы C/C++ 7 25.01.2010 15:55
Какие проблемы могут быть с цифровой удостоверением? ann200 Microsoft Office Access 2 07.10.2009 17:52