Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Паскаль матрицы 
V
    Опции темы
syoksana
Дата 29.2.2008, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



ПРИВЕТ!!!!! 
У меня тут дома, телефон сломался, вот поэтому меня так долго небыло. Спасибо за помошь!!! задачи я сдала, только последнию не решила, так и не поняла.  Тут ещё у меня парачка задачик есть посмотрите, где ошибка?

1)Пусть дана символьная квадратная матрица порядка 10. Заменить буквой "а" все элементы расположеннные выше главной диагонали.


Код

 var a:array[1..10,1..10] of char;
      i,j,n:integer;
begin
   write('vv poradok'); read(n);
   for i:=1 to n do
     for j:=1 to n do
       begin 
          write('a[',i,',',j,']=');readln(a[i,j]);
       end;
  for i:=1 to n do
   for j:=1 to n do if i<j then a[i,j]:="a";{вот тут где-то и ошибка
если элементы выше главной диагонали то их заменять на "а", но при запуске, например,
в в к
к к к
к к к
у меня получается 
а а  
к к а
к к к}

  for i:=1 to n do 
   begin
     for j:=1 to n do write (a[i,j:4]); writeln;
   end;
end. 

 


2)Пусть дана целочисленная квадратная матрица A(aij) размерность n. Получите b1,...,bn, где bi равен:
{как вставить формулу?}
a)сумма j=1 до n (-1) в  сепени i+j    *aij
b)max aij*min aji,     1<=j<=n

Даже и незная как решать

PM MAIL   Вверх
volvo877
Дата 29.2.2008, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Код

...
   write('vv poradok'); readLN(n); { <--- Видишь разницу? }
...
Если оставить Read, то ты просто не вводишь все данные, заметь, в ячейку a[1, 1] просто читается символ перевода строки, который не был прочитан после ввода числа...
PM MAIL   Вверх
syoksana
Дата 1.3.2008, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Цитата

Если оставить Read, то ты просто не вводишь все данные, заметь, в ячейку a[1, 1] просто читается символ перевода строки, который не был прочитан после ввода числа...

Ок, спасибо, понятно, работает!

А как быть с:
Цитата

2)Пусть дана целочисленная квадратная матрица A(aij) размерность n. Получите b1,...,bn, где bi равен:
{как вставить формулу?}
a)сумма j=1 до n (-1) в  сепени i+j    *aij
b)max aij*min aji,     1<=j<=n


т. е. как понимаю в а) вычислить сумму j-столбцов?
Код

var a:array[1..10,1..10] of integer;
      i,j,sum,n:integer;
begin
   write('vv razmernost); readln(n);
   for i:=1 to n do
     for j:=1 to n do
       begin 
          write('a[',i,',',j,']=');readln(a[i,j]);
       end;
  sum:=0;
  for i:=1 to n do 
   begin
     for j:=1 to n do 
     sum:=sum+((-1)^i+j)*a[i,j]; {возаедение в степень другое?}
   end;     
  for i:=1 to n do 
   begin
     for j:=1 to n do write (a[i,j:4]); writeln;
   end;
end. 


b)max aij*min aji,     1<=j<=n
Код

var a:array[1..10,1..10] of integer;
      i,j,max,min,p,n:integer;
begin
   write('vv razmernost); readln(n);
   for i:=1 to n do
     for j:=1 to n do
       begin 
          write('a[',i,',',j,']=');readln(a[i,j]);
       end;
  max:=a[1,1];min:=a[1,1]; p:=1;
  for i:=2 to n do 
     for j:=2 to n do 
        begin
          if a[i,j]>max then max:=a[i,j];{у меня тут вопрос: найти мах a[i,j], min a[j,i], затем   произведение?}
          if a[j,i]<min then min:=a[j,i];
         end;
     for i:=1 to n do 
       for j:=1 to n do p:=max *min;
     for i:=1 to n do 
       begin
          for j:=1 to n do write (a[i,j:4]); writeln;
      end;
end. 

 


почему код зелёный???

Это сообщение отредактировал(а) syoksana - 1.3.2008, 01:57
PM MAIL   Вверх
kuzyara
Дата 1.3.2008, 06:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



Цитата(syoksana @  29.2.2008,  05:36 Найти цитируемый пост)
2)Пусть дана целочисленная квадратная матрица A(aij) размерность n. Получите b1,...,bn, где bi равен:
{как вставить формулу?}
a)сумма j=1 до n (-1) в  сепени i+j    *aij
b)max aij*min aji,     1<=j<=n


а) формулу я в ворде писал, а потом вылаживал:
user posted image
Затруднений я не вижу, разве что не знаешь как возводить в степень. Я думаю лучше всего сделать функцию:
Код

function PowerOfMinusAdin(p:integer):integer;
begin
if p mod 2=0 then PowerOfMinusAdin:=1
                     else PowerOfMinusAdin:=-1;
end;


и потом её использовать:
Код

for i:=1 to N do
 for j:=1 to N do
  b[i]:=b[i]+PowerOfMinusAdin(i+j)*a[i,j]


Формулу b я так и не понял, хотябы в пэйнте нарисуй да выложи. Я лично в ворде в редакторе формул пишу.

Добавлено через 4 минуты и 44 секунды
Цитата(syoksana @  1.3.2008,  06:54 Найти цитируемый пост)
почему код зелёный???

кавычки закрывай.

Ты чтоли код на форум вручную переписываешь? Или все-таки знаешь как копировать?
--------------------
подпись
PM MAIL   Вверх
kuzyara
Дата 1.3.2008, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



кажись допер))
Цитата(syoksana @  1.3.2008,  06:54 Найти цитируемый пост)
b)max aij*min aji,     1<=j<=n
Код

var a:array[1..10,1..10] of integer;
      i,j,max,min,p,n:integer;
begin
   write('vv razmernost); readln(n);
   for i:=1 to n do
     for j:=1 to n do
       begin 
          write('a[',i,',',j,']=');readln(a[i,j]);
       end;
  max:=a[1,1];min:=a[1,1]; p:=1;
  for i:=2 to n do 
     for j:=2 to n do 
        begin
          if a[i,j]>max then max:=a[i,j];{у меня тут вопрос: найти мах a[i,j], min a[j,i], затем   произведение?}
          if a[j,i]<min then min:=a[j,i];
         end;
     for i:=1 to n do 
       for j:=1 to n do p:=max *min;
     for i:=1 to n do 
       begin
          for j:=1 to n do write (a[i,j:4]); writeln;
      end;
end.
 


Во-первых: 
Код

max:=a[1,1];min:=a[1,1]; p:=1;
for i:=2 to n do 
     for j:=2 to n do 
        begin

Почему начинаешь с двух? Это тебе не одномерный массив, надо с единиц начинать.

Во-вторых от нас вот что требуют: для каждого b[i] присвоить значение произведения максимального элемента i-той строки и мин. эл-таi-того столбца.
А формулу надо было записать вот так:
b[i]=max(a[i,1], a[i,2], ..., a[i,N])*min(a[1,i], a[2,i], ..., a[N,i]), i=1...N


секёшь чё не так? smile 

Это сообщение отредактировал(а) kuzyara - 1.3.2008, 07:13
--------------------
подпись
PM MAIL   Вверх
syoksana
Дата 3.3.2008, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Цитата

секёшь чё не так?  


Ага, сейчас посмотрю.......
PM MAIL   Вверх
syoksana
Дата 3.3.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Цитата

Ты чтоли код на форум вручную переписываешь? Или все-таки знаешь как копировать?

ага , вручную, а как копировать?

и почему-то программа не запускается, посмотрите:
Код

var a:array [1..10,1..10] of integer;
      b:array[1..n]of integer;
      i,n,j:integer;
function PowerOfMinusAdin(P:integer):integer;
begin
   if p mod 2=0 then PowerOfMinusAdin:=1
                                  else PowerOfMinusAdin:=-1;
end;
begin
for i:=1 to n do
  for j:=1 to n do
   begin
     write('a[',i,',','j]='); readln(a[i,j]);
   end;
for i:=1 to n do
  for j:=1 to n do
    b[i]:=b[i]+PowerOfMinusAdin(i+j)*a[i,j];

for i:=1 to n do writeln ('b[i]=', b[i]);
end.


Цитата

Формулу b я так и не понял, хотябы в пэйнте нарисуй да выложи. Я лично в ворде в редакторе формул пишу.

так я тоже написала, а вставить..... как, копировать-вставить? неполучается smile 




Это сообщение отредактировал(а) syoksana - 3.3.2008, 10:52
PM MAIL   Вверх
volvo877
Дата 3.3.2008, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(syoksana @  3.3.2008,  09:10 Найти цитируемый пост)
почему-то программа не запускается

Потому, что должно быть так:
Код

const n = 10; { <--- N - константа, чтобы можно было использовать в описании массива }
var
  a:array [1..n, 1..n] of integer;
  b:array[1..n]of integer;
  i,j:integer;
... { дальше - без изменений }


PM MAIL   Вверх
kuzyara
Дата 3.3.2008, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 13.11.2006

Репутация: нет
Всего: 1



Цитата(syoksana @  3.3.2008,  15:10 Найти цитируемый пост)
ага , вручную, а как копировать?

Можно просто Блокнотом. Кликаешь правой клавишей на свой .pas, -> Открыть с помощью -> Блокнот. Но тогда вместо русских букв будут крякозябры, ибо кодировка, OEM. Я лично использую текстовый редактор Bred. Можно конечно и какой-нибудь другой, goldpen, или notepad2 там, но bred мне нравиться больше тем, что во-первых: он встретился мне первым, во-вторых там можно включить подсветку кода, в-третьих двумя кликами мышки можно поменять кодировку, в-четвертых не грузит обилием функций, только необходимый минимум. Абсолютно бесплатен. В-общем лучше я не встречал. имхо. 

Цитата(syoksana @  3.3.2008,  15:10 Найти цитируемый пост)
так я тоже написала, а вставить..... как, копировать-вставить? неполучается
 Забей...

--------------------
подпись
PM MAIL   Вверх
syoksana
Дата 3.3.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Цитата(volvo877 @ 3.3.2008,  11:06)
Потому, что должно быть так:
Код

const n = 10; { <--- N - константа, чтобы можно было использовать в описании массива }
var
  a:array [1..n, 1..n] of integer;
  b:array[1..n]of integer;
  i,j:integer;
... { дальше - без изменений }

Ок, спасибо, глупая ошибка!!!
PM MAIL   Вверх
syoksana
Дата 3.3.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Цитата(kuzyara @ 3.3.2008,  15:36)
... bred мне нравиться больше тем, что во-первых: он встретился мне первым, во-вторых там можно включить подсветку кода, в-третьих двумя кликами мышки можно поменять кодировку, в-четвертых не грузит обилием функций, только необходимый минимум. Абсолютно бесплатен. В-общем лучше я не встречал.


Ага!!! я тоже теперь с блокнтом умею открывать! smile 
А что делать с б)задачей?  Как  формулы вставлять??? 



PM MAIL   Вверх
volvo877
Дата 3.3.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(syoksana @  3.3.2008,  16:59 Найти цитируемый пост)
Как  формулы вставлять??? 

Набираешь формулу в Word-е, делаешь скриншот экрана, сохраняешь изображение формулы в виде граф. файла, потом поднимаешь этот файл куда-нибудь в интернет (я пользуюсь для этого или http://imageshack.us/, или своим сайтом) и добавляешь на форум тег IMG с адресом картинки:
[IМG]здесь адрес картинки в интернете[/IМG]

Цитата(kuzyara @  3.3.2008,  14:36 Найти цитируемый пост)
В-общем лучше я не встречал.
Открой для себя SciTE, тогда можно забыть и про IDE паскаля, а компилировать/запускать программы прямо из SciTE. Я уж не говорю про подсветку синтаксиса нескольких десятков языков программирования, фолдинг и автодополнение кода smile


PM MAIL   Вверх
syoksana
Дата 3.3.2008, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Цитата(volvo877 @ 3.3.2008,  19:03)
Набираешь формулу в Word-е, делаешь скриншот экрана, сохраняешь изображение формулы в виде граф. файла, потом поднимаешь этот файл куда-нибудь в интернет (я пользуюсь для этого или http://imageshack.us/, или своим сайтом) и добавляешь на форум тег IMG с адресом картинки:
[IМG]здесь адрес картинки в интернете[/IМG]


всё сделала, НО при добавдении на форум тега IMG, ругается, если вот так:
http://ipicture.ru/uploads/080303/P4R4GKhoRp.jpg

Я тут задачку  (b) решила. У меня вопрос:"верно ли я её понимаю"
Например, 2 2 3 
                   3 2 3
                   2 3 4
Результат мах(в строке) - 4, min (в столбце) - 2, произведение=8
Код

program qqq;
const n =3;
var a:array[1..n,1..n]of integer;
    b:array[1..n]of integer;
    i,j,p,max,min:integer;
begin
write('vv massiv');
for i:=1 to n do
  for j:=1 to n do
    begin
      write('a[',i,',',j,']=');
      readln(a[i,j]);
    end;
p:=1; max:=a[1,1];min:=a[1,1]; 
for i:=1 to n do if max>a[i,j] then max:=a[i,j];
  for j:=1 to n do if min<a[j,i] then min:=a[j,i];
   for i:=1 to n do
    for j:=1 to n do b[i]:=max*min;
writeln ('b[i]=',b[i]);
end.


Это сообщение отредактировал(а) syoksana - 4.3.2008, 00:58
PM MAIL   Вверх
syoksana
Дата 4.3.2008, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 19.2.2008

Репутация: нет
Всего: нет



Что такое в Паскале inc()?
PM MAIL   Вверх
megabist
Дата 4.3.2008, 07:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Mart Slaaf
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 3.4.2006
Где: Мск

Репутация: нет
Всего: 31



тоже самое, что и 
i:=i+1;


--------------------
Don't panic!

Жди, и Фатум тебя приведёт...
PM MAIL ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1013 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.