Старый 10.10.2005, 09:48   #1   
TrancePort
 
Аватар для 4283361984
 
Сообщений: 151
Регистрация: 28.05.2005

4283361984 вне форума Не в сети
Exclamation Требуется решить задачу

Задача: Задана действительная квадратная матрица А порядка n.Заменить элементы главной и побочной диагоналей - на 1,а на их пересечении поместить 0.

Нужно написать программу на Паскале и составить структурную схему алгоритма.

p/s/ Предлагайте,кто за какую цену согласиться это написать.

Мое мыло: [email protected]
  Ответить с цитированием
Старый 10.10.2005, 13:59   #2   
Альдо Апачи
 
Аватар для Xtnshtcgjkjdbyjq
 
Сообщений: 11,183
Регистрация: 21.06.2005
Возраст: 43

Xtnshtcgjkjdbyjq вне форума Не в сети
это шутка? или за такие задачи кто-то действительно готов отдать деньги??? мозги соФФсем атрофировались?
  Ответить с цитированием
Старый 10.10.2005, 17:02   #3   
МАНИАК
 
Сообщений: 1,140
Регистрация: 01.06.2005
Возраст: 44

I&F вне форума Не в сети
Прикольно, у меня такая же задачка была когда поступал (их там больше 5 кажется было) )))
  Ответить с цитированием
Старый 11.10.2005, 07:10   #4   
Форумец
 
Аватар для zss_vrn
 
Сообщений: 2,045
Регистрация: 27.08.2003

zss_vrn вне форума Не в сети
Печально... Надеюсь, это не в Воронеже так учат программистов?
  Ответить с цитированием
Старый 11.10.2005, 07:54   #5   
TrancePort
 
Аватар для 4283361984
 
Сообщений: 151
Регистрация: 28.05.2005

4283361984 вне форума Не в сети
Блин тут все такие умные,а решить не могут....обидно
Я только в сентябре начал изучать Паскаль.
  Ответить с цитированием
Старый 11.10.2005, 09:16   #6   
Registered User
 
Сообщений: 288
Регистрация: 11.05.2004

meddle вне форума Не в сети
Вот и изучал бы дальше..... у кого списывать будешь, когда работать начнёшь???
  Ответить с цитированием
Старый 11.10.2005, 12:31   #7   
Кэп Улитка
 
Аватар для Yandex
 
Сообщений: 8,067
Регистрация: 04.05.2005
Возраст: 43

Yandex вне форума Не в сети
Самое лучшее тогда наверно найти чела который просто бы объяснил Паскаль и основы проганья, а программу сам бы ты после написал

В принципе я бы мог попробовать втолковать (хотя честно, Паскаль знаю хреново [больше прогал на Delphi6-7, а там уже отличия])
  Ответить с цитированием
Старый 11.10.2005, 13:08   #8   
Бывалый форумец
 
Аватар для J++
 
Сообщений: 687
Регистрация: 05.08.2005

J++ вне форума Не в сети
Wink

В мединституте:
"Гоги, как же ты собираешься работать врачом? Ты же даже не знаешь, из какого места дети на свет появляются!"
"Вах, дарагой! Ну кто тебе сказал, что я буду врачом? Я буду - ГЛАВВРАЧОМ!"
  Ответить с цитированием
Старый 11.10.2005, 14:11   #9   
Альдо Апачи
 
Аватар для Xtnshtcgjkjdbyjq
 
Сообщений: 11,183
Регистрация: 21.06.2005
Возраст: 43

Xtnshtcgjkjdbyjq вне форума Не в сети
Кстати, а не сказано что делать, если диагонали не пересекаются? (При четном n) Что менять на 0? Или в таком случае на 0 ничего не меняется?

З.Ы. С каждого по паре строк - голому программа

programm Matrix (input, output);
var n,i,j:integer;
A:array [1..100,1..100] of Integer;
begin
  Ответить с цитированием
Старый 11.10.2005, 14:37   #10   
Германонаеме
 
Аватар для Maxell
 
Сообщений: 554
Регистрация: 29.04.2003
Возраст: 37

Maxell вне форума Не в сети
For i to n do
begin
For j=1 to n do
begin
If i=j then a[i,j]:=1;
If i=(j-n-1) then a[i,j]:=1;
if (i=j) and (i=n/2) then a[i,j]:=0;
end;
end;
  Ответить с цитированием
Старый 11.10.2005, 15:03   #11   
Кэп Улитка
 
Аватар для Yandex
 
Сообщений: 8,067
Регистрация: 04.05.2005
Возраст: 43

Yandex вне форума Не в сети
>A:array [1..100,1..100] of Integer;
Юморист Динамических массивов в Паскале нет?

На самом деле конечно формулировка нестрогая для Паскакаля
  Ответить с цитированием
Старый 11.10.2005, 16:26   #12   
Альдо Апачи
 
Аватар для Xtnshtcgjkjdbyjq
 
Сообщений: 11,183
Регистрация: 21.06.2005
Возраст: 43

Xtnshtcgjkjdbyjq вне форума Не в сети
Цитата:
Сообщение от Yandex
>A:array [1..100,1..100] of Integer;
Юморист Динамических массивов в Паскале нет?

На самом деле конечно формулировка нестрогая для Паскакаля
Я ему и рекурсию вопхну, но как он препу задачу объяснять будет??? Проще, проще...
  Ответить с цитированием
Старый 11.10.2005, 16:26   #13   
Альдо Апачи
 
Аватар для Xtnshtcgjkjdbyjq
 
Сообщений: 11,183
Регистрация: 21.06.2005
Возраст: 43

Xtnshtcgjkjdbyjq вне форума Не в сети
Забыли ввод n и собственно ввод массива.
  Ответить с цитированием
Старый 12.10.2005, 01:12   #14   
sotriciano cosmoticatrio
 
Аватар для Weiss
 
Сообщений: 327
Регистрация: 09.04.2004
Возраст: 38
Записей в дневнике: 3

Weiss вне форума Не в сети
ну так и напишем процу для ввода

Pprocedure Input;
begin
Writeln('Input dimension of matrix:');
Readln(n);
While not(n in [1..100]) do begin
Writeln('Error. Input again:');
Readln(n);
end;
For
i := 1 to n do
For j := 1 to n do begin
Writeln
('Input ('+IntToStr(i)+','+IntToStr(j)+') element of matrix');
Readln(a[i,j]);
end;
end;
  Ответить с цитированием
Старый 12.10.2005, 07:30   #15   
Форумец
 
Аватар для Luke
 
Сообщений: 526
Регистрация: 21.06.2004

Luke вне форума Не в сети
Цитата:
Сообщение от Yandex
>A:array [1..100,1..100] of Integer;
Юморист Динамических массивов в Паскале нет?

На самом деле конечно формулировка нестрогая для Паскакаля
Динамических массивов в Паскале нет!
в делфях есть, начиная с каких то 3 или 4, а в каноническом паскале нет!
  Ответить с цитированием
Старый 12.10.2005, 08:48   #16   
Бывалый форумец
 
Аватар для J++
 
Сообщений: 687
Регистрация: 05.08.2005

J++ вне форума Не в сети
Smile

А можно и сразу вычислить, куда девать (или не девать) 0, и не считать это каждый раз в цикле
например, на С или С++ (Паскаль уже подзабыла, каюсь, лет 10 или 12 на нем не работала, хотя паскалевские заклинания легко понимаю на чтение ):

int centre=(n%2)? n/2+1 : -1;
(это для С-шных массивов, где индекс начинается с 0)
и потом сравнивать (i==j && i==centre) - тады писать там 0.

в смысле, если n нечетное (есть пересечение), то centre будет индексом "середины". Если n четное (нет пересечения), то в centre здесь "загнана" -1, которая в циклах никогда потом не встретится и соотв. не будет значения 0 в выходной матрице.
  Ответить с цитированием
Старый 12.10.2005, 15:40   #17   
Форумец
 
Аватар для Luke
 
Сообщений: 526
Регистрация: 21.06.2004

Luke вне форума Не в сети
в данном случае второй вложенный цикл - мусор и все, что с ним связано!
не надо сравнивать (i==j) переменная j вообще не нужна!
  Ответить с цитированием
Старый 12.10.2005, 16:43   #18   
Кэп Улитка
 
Аватар для Yandex
 
Сообщений: 8,067
Регистрация: 04.05.2005
Возраст: 43

Yandex вне форума Не в сети
>int centre=(n%2)? n/2+1 : -1;
Сдается мне, что после такого, автор темы тут больше не появится
  Ответить с цитированием
Старый 13.10.2005, 08:10   #19   
Лентяй
 
Аватар для Balrog
 
Сообщений: 5,456
Регистрация: 23.03.2005
Возраст: 51

Balrog вне форума Не в сети
Yandex Подожди, ещё я не выступал

В общем, нафик паскаль, пишем на Ц. Впрочем, двухмерный массив тоже нафик, всё равно память линейна - а пересчёты мы соптимайзим лучше компилера.

int n;
int *a, i;

// assign dimension to n here
a = malloc( n * n * sizeof( int ) );
// insert array input here

if( n & 1 )
a[ n + ( n >> 1 ) ] = 0;
for( i = 0; i < n; i++ )
a[ i * ( n + 1 ) ] = a[ ( n - i ) * ( n - 1 ) ] = 1;
// insert array output here
free( a );

4283361984 Устроит? На паскаль сам переведи, чтоб жизнь мёдом не казалась. Ввод-вывод надесь, проблем не составит

PS: А что, порезвиться нельзя?
  Ответить с цитированием
Старый 13.10.2005, 12:38   #20   
бибизьян
 
Аватар для aerin
 
Сообщений: 3,031
Регистрация: 17.02.2004

aerin вне форума Не в сети
Balrog Вспомнилось, как в универе я измывался над преподом, оформляя программы примерно так:

begin
asm
...здесь содержательная часть кода...
end;
end;

Он спрашивал, увидев очередной мой опус, это что? Я говорил, как что, программа на Pascal-е.
- Какой же это паскаль?
- Как какой, самый обычный, компилятор принял, значит - ПАСКАЛЬ

ЗЫ. Глупый был, нарывался...
  Ответить с цитированием
Старый 17.10.2005, 04:05   #21   
sotriciano cosmoticatrio
 
Аватар для Weiss
 
Сообщений: 327
Регистрация: 09.04.2004
Возраст: 38
Записей в дневнике: 3

Weiss вне форума Не в сети
вот и забили пареньку голову, если он не мог решить столько "школьной" задачи, то вы его своими Сями завели в тако глупое положение, что он захочет взять книжку и научится таи это паскалю!

зы. а может даже и Сям!!!
  Ответить с цитированием
Старый 17.10.2005, 08:53   #22   
TrancePort
 
Аватар для 4283361984
 
Сообщений: 151
Регистрация: 28.05.2005

4283361984 вне форума Не в сети
Вот собрал программу,только что то она не работает.В чем причина ?

program Matrix (input, output);
var n,i,j:integer;
A:array [1..100,1..100] of Integer;
begin
For i:=1 to n do
begin
For j:=1 to n do
begin
If i=j then a[i,j]:=1;
If i=(j-n-1) then a[i,j]:=1;
If (i=j) and (i=n/2) then a[i,j]:=0;
end;
end;
  Ответить с цитированием
Старый 17.10.2005, 09:03   #23   
Лентяй
 
Аватар для Balrog
 
Сообщений: 5,456
Регистрация: 23.03.2005
Возраст: 51

Balrog вне форума Не в сети
4283361984 А с чего ты взял, что она не работает? Если ты привёл всю программу - то она скорее всего работает, ты просто результатов не видишь. Ввод-вывод (или хотя бы только вывод) вставь, да? А, ещё в конце строчку
end.
  Ответить с цитированием
Старый 17.10.2005, 14:13   #24   
Бывалый форумец
 
Аватар для J++
 
Сообщений: 687
Регистрация: 05.08.2005

J++ вне форума Не в сети
Зачем нужна строчка
If i=(j-n-1) then a[i,j]:=1;
или у меня с Паскалем уже настолько пути разошлись, что мне не понять каких-то светлых замыслов
там, кажется, хватит того, что есть, без этой строчки?
  Ответить с цитированием
Старый 17.10.2005, 14:38   #25   
Альдо Апачи
 
Аватар для Xtnshtcgjkjdbyjq
 
Сообщений: 11,183
Регистрация: 21.06.2005
Возраст: 43

Xtnshtcgjkjdbyjq вне форума Не в сети
Цитата:
Сообщение от J++
Зачем нужна строчка
If i=(j-n-1) then a[i,j]:=1;
или у меня с Паскалем уже настолько пути разошлись, что мне не понять каких-то светлых замыслов
там, кажется, хватит того, что есть, без этой строчки?
Это проверка принадлежности к "неглавной" (побочной) диагонали матрицы.
  Ответить с цитированием
Старый 17.10.2005, 15:35   #26   
Бывалый форумец
 
Аватар для J++
 
Сообщений: 687
Регистрация: 05.08.2005

J++ вне форума Не в сети
Хм.. у меня С-шный текст прекрасно работал только на 2-х циклах, без проверки принадлежности. На 2-х - только потому, что это - первое, что пришло в голову. Как справедливо замечает народ, там даже второго цикла не нужно - одного хватит.
Что-то типа того

for (i=0; i<n; i++)
a[i][i]=a[i][n-1-i]=(i==centre)?0:1;
только навскидку не помню a[i][n-1-i] или a[n-1-i][i]
  Ответить с цитированием
Старый 17.10.2005, 15:43   #27   
Альдо Апачи
 
Аватар для Xtnshtcgjkjdbyjq
 
Сообщений: 11,183
Регистрация: 21.06.2005
Возраст: 43

Xtnshtcgjkjdbyjq вне форума Не в сети
Кстати да, проще сделать все в 1 цикле.
  Ответить с цитированием
Старый 18.10.2005, 11:33   #28   
Форумец
 
Сообщений: 5
Регистрация: 18.10.2005
Возраст: 41

tert вне форума Не в сети
Мдаа, товарисчи..
А как тема начиналась -
"это шутка? или за такие задачи кто-то действительно готов отдать деньги??? мозги соФФсем атрофировались?"
Потом путем мучительно, общими усилиями родили. В 2х циклах. Это, вам, не GUI с базами данных мучать))

const n = 100;
var a:array[1..n,1..n] of real;
i:integer;
begin
//ввод
for i:=1 to n do
begin
a[i,i]:=1;
a[i, n-i+1]:=1;
end;
if (n mod 2 = 0) then
a[n div 2,n div 2]:=0;
//вывод
end.
  Ответить с цитированием
Старый 18.10.2005, 12:13   #29   
Бывалый форумец
 
Аватар для J++
 
Сообщений: 687
Регистрация: 05.08.2005

J++ вне форума Не в сети
Это не МЫ GUI с БД мучаем. Это ОНИ нас имеют вовсю, по мере глюкавости. По крайней мере многих из нас - точно (никакого вазелина не хватит)
  Ответить с цитированием
Старый 18.10.2005, 16:27   #30   
Кэп Улитка
 
Аватар для Yandex
 
Сообщений: 8,067
Регистрация: 04.05.2005
Возраст: 43

Yandex вне форума Не в сети
2tert
Да ты крут :biggrin:
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind