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


Ответ
 
Опции темы Опции просмотра
Старый 19.12.2013, 02:19   #1 (permalink)
Spidey-Goblin
Member
 
Регистрация: 16.12.2013
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Двухмерный массив, Turbo Pascal 7.0

С помощью функции sin сформировать и вывести матрицу 6x6 из вещественных положительных чисел в пределах от 0-15.Определить наибольший элемент её главной диагонали и его индексы.Сформировать и вывести матрицу все элементы которой равны соответствующим элементам исходной,деленным на наибольший элемент диагонали.
"С помощью функции sin" означает, что нужно организовать цикл от 0 до 15 с шагом 0,4 {(((0+15)/(∆x))+1=36, отсюда ∆x=0,4)}, а потом из полученных значений x, получить 36 значений - sin (x), и сформировать из них матрицу 6x6.
Вот на что меня хватило:
Program massiv;
Uses
crt;
const
n=6;
type
tar=array[1..n, 1..n] of real;
var
a, b, c: tar;
i, j: integer;
x: real;
begin
clrscr;
writeln('Ishodniy massiv:');
x:=0;
repeat x:=x+1;
for i:=1 to n do
for j:=1 to n do
a[i, j]:=sin (x);
write(' ',a[i, j]:5:2);
until x=36;
readln;
end.

Замечание:
Так. Предупреждаю, причем ОДИН РАЗ: распихивание дубликатов по разделам (красспостинг) у нас наказуется БАНОМ.
Дубликат удалён.

Модератор
Spidey-Goblin вне форума   Ответить с цитированием

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

Пожалуйста, обратите внимание на то, что на форуме имеются схожие темы

Turbo Pascal
Turbo Pascal
Turbo Pascal
Turbo Pascal
Turbo Pascal
Turbo Pascal

Старый 19.12.2013, 10:42   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,287
Сказал(а) спасибо: 290
Поблагодарили 509 раз(а) в 167 сообщениях
Репутация: 92053
По умолчанию

Цитата:
Сообщение от Spidey-Goblin Посмотреть сообщение
нужно организовать цикл от 0 до 15 с шагом 0,4 {(((0+15)/(∆x))+1=36, отсюда ∆x=0,4)}
Извините, но ни бельмеса не понял! Опишите внятно, как формируется массив х? А то, как я вижу, из Вашей формулы следует, что 0+15=14, что, согласитесь, несколько странно. В программе же у Вас просто 36 раз идёт заполнение матрицы одинаковыми элементами, равными Sin(i), где i - от 1 до 36. Абсолютно бессмысленное действие.
Я готов помочь Вам с написанием программы, но не прежде, чем я пойму, как формируется этот самый х. Пока - глухо.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 19.12.2013, 14:21   #3 (permalink)
Spidey-Goblin
Member
 
Регистрация: 16.12.2013
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Извините, но ни бельмеса не понял! Опишите внятно, как формируется массив х? А то, как я вижу, из Вашей формулы следует, что 0+15=14, что, согласитесь, несколько странно. В программе же у Вас просто 36 раз идёт заполнение матрицы одинаковыми элементами, равными Sin(i), где i - от 1 до 36. Абсолютно бессмысленное действие.
Я готов помочь Вам с написанием программы, но не прежде, чем я пойму, как формируется этот самый х. Пока - глухо.
Прошу прощения за невнятность, давайте попробуем проще x:=0 с шагом 0.42 предел x:=36
Spidey-Goblin вне форума   Ответить с цитированием
Старый 19.12.2013, 14:38   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,287
Сказал(а) спасибо: 290
Поблагодарили 509 раз(а) в 167 сообщениях
Репутация: 92053
По умолчанию

Цитата:
Сообщение от Spidey-Goblin Посмотреть сообщение
Прошу прощения за невнятность, давайте попробуем проще x:=0 с шагом 0.42 предел x:=36
Ага. Итого (при шаге 0.4) - 91 значение. И как из этого прикажете матрицу 6х6 сооружать?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 19.12.2013, 18:34   #5 (permalink)
Spidey-Goblin
Member
 
Регистрация: 16.12.2013
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Блин, ... Прошу прощения за невнятность, давайте попробуем проще x:=0 с шагом 0.42 предел x:=15
Spidey-Goblin вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 19.12.2013, 20:36   #6 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,287
Сказал(а) спасибо: 290
Поблагодарили 509 раз(а) в 167 сообщениях
Репутация: 92053
По умолчанию

Цитата:
Сообщение от Spidey-Goblin Посмотреть сообщение
Блин, ... Прошу прощения за невнятность, давайте попробуем проще x:=0 с шагом 0.42 предел x:=15
М-да... не скажу, чтобы стало понятнее: дроби пошли... В общем, так: вот вам некая программа, написанная в меру моего (а не, увы, Вашего преподавателя) понимания. Попробуйте довести до ума, если я что-то понял не так:
Код:
Uses crt;

const
 n=6;
 Dx=0.4;

var
 a,b: array[1..n, 1..n] of real;
 c: array[1..n*n] of real;
 i,j: integer;
 Max: real;

begin
 clrscr;
 writeln('Ishodniy massiv:');
 i:=1;
 repeat
  c[i]:=Dx*(i-1);
  i:=i+1;
 until i=n*n+1;
 for i:=1 to n do
  begin
   for j:=1 to n do
    begin
     a[i,j]:=sin(c[(i-1)*n+j]);
     write(a[i,j]:8:2);
    end;
   writeln;
  end;
 writeln;
 writeln('Noviy massiv:');
 Max:=a[1,1];
 for i:=2 to n do if a[i,i]>Max then Max:=a[i,i];
 for i:=1 to n do
  begin
   for j:=1 to n do
    begin
     a[i,j]:=a[i,j]/Max;
     write(a[i,j]:8:2);
    end;
   writeln;
  end;
 readln
end.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 19.12.2013, 23:24   #7 (permalink)
Spidey-Goblin
Member
 
Регистрация: 16.12.2013
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
М-да... не скажу, чтобы стало понятнее: дроби пошли... В общем, так: вот вам некая программа, написанная в меру моего (а не, увы, Вашего преподавателя) понимания. Попробуйте довести до ума, если я что-то понял не так:
Код:
Uses crt;

const
 n=6;
 Dx=0.4;

var
 a,b: array[1..n, 1..n] of real;
 c: array[1..n*n] of real;
 i,j: integer;
 Max: real;

begin
 clrscr;
 writeln('Ishodniy massiv:');
 i:=1;
 repeat
  c[i]:=Dx*(i-1);
  i:=i+1;
 until i=n*n+1;
 for i:=1 to n do
  begin
   for j:=1 to n do
    begin
     a[i,j]:=sin(c[(i-1)*n+j]);
     write(a[i,j]:8:2);
    end;
   writeln;
  end;
 writeln;
 writeln('Noviy massiv:');
 Max:=a[1,1];
 for i:=2 to n do if a[i,i]>Max then Max:=a[i,i];
 for i:=1 to n do
  begin
   for j:=1 to n do
    begin
     a[i,j]:=a[i,j]/Max;
     write(a[i,j]:8:2);
    end;
   writeln;
  end;
 readln
end.
Спасибо огромное!!!
Spidey-Goblin вне форума   Ответить с цитированием
Ads

Яндекс

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

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

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

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




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

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