Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

09.06.2008, 12:38
|
|
Новичок
Регистрация: 08.06.2008
Сообщений: 11
Провел на форуме: 20849
Репутация:
1
|
|
2Hoty
Ну для начала советую нормально организовать ввод массива:
Код:
Program n11;
uses crt;
const n=5;
var a,b: array [1..n] of integer;
i,j,x,y: integer;
begin
clrscr;
{Ввод массива a}
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
{Ввод массива b}
for j:=1 to n do
begin
write('b[',j,']=');
readln(b[j]);
end;
с програмной частью пока не совсем разобрался.
Последний раз редактировалось R@zoR; 09.06.2008 в 12:43..
|
|
|

09.06.2008, 12:48
|
|
Новичок
Регистрация: 08.06.2008
Сообщений: 11
Провел на форуме: 20849
Репутация:
1
|
|
пока i№ |A|+1 и j№ |B|+1 цикл
пока чего, вот этого я не понимаю организация такого цикла должна быть
пока function {<..>..=} constant(или др. function)
например while a<b do
begin
end;
очень много ошибок в плане прерывания цикла if..else ктож так ; расставляет..
--продолжение--
после вводов массивов идем на проверку совпадений:
i:=1; j:=1;
While a[i]=b[j] do
begin
x:=1;
i:=i+1;
j:=j+1;
end;
щас разберусь как сделать если нет совпадения
Последний раз редактировалось R@zoR; 09.06.2008 в 13:26..
|
|
|

09.06.2008, 13:09
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Начал писать на Паскале - понял что них не помню уже ))
Сортировка побочной диагонали по возрастанию выглядит примерно так:
Код:
for(i=6 ;i>0 ;i--) {
for(j=0 ;j<6 ;j++) {
if (a[i][j]>a[i-1][j+1]) {
temp[0][0]=a[i][j];
a[i][j]=a[i-1][j+1];
a[i-1][j+1]=temp[0][0]; }
}
}
j-соответственно счетчик столбцов, а i-строк
Не проверял, писал прямо здесь
Последний раз редактировалось Fata1ex; 09.06.2008 в 13:11..
|
|
|

09.06.2008, 21:10
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Dober'man, хоть бы посмотрел что выкладываешь
var temp: integer;
..................
for i:=1 to n do
for j:=1 to n do
begin
if a[i,i]<a[i+1,i+1] then
begin
temp:=a[i,i];
a[i,i]:=a[i+1,i+1];
a[i+1,i+1]:=temp;
end;
end;
Во-первых это главная диагональ, а нужна мыла ему побочная, ну а во-вторы это уже было выложено )) разве что нужно заменить некоторые элементы
Последний раз редактировалось Fata1ex; 09.06.2008 в 21:19..
|
|
|

09.06.2008, 22:31
|
|
Познающий
Регистрация: 20.05.2008
Сообщений: 81
Провел на форуме: 224517
Репутация:
32
|
|
Спасибо Всем кто отписался.
В том задании множества можно представлять как упорядоченные массивы [1,2,3..n];
------------------
пишу для себя, чтобы лучше программировать.
ЗАДАНИЕ: создать функцию, которая будет заполнять нужный мне массив (одномерныы массивы определенного размера). Т.е. чтобы каждый раз, при заполненнии 2 и более одинаковых массивов, не писать стандартно:
for i:=1 to n do
readln(a[i]);
а использовать отдельную для этого функцию
(если можно через процедуру подскажите).
ВОТ МОЙ КОД:
uses crt;
const n=5;
var a,b,x: array [1..n] of integer; // a,b, - наши массивы, x - массивы для функции, через него заполняю нужные мне массивы.
var i,j, y: integer;
function fill_mas (x: array of integer):integer; // функция заполнения массива x);
begin
for i:=1 to 5 do
begin
readln(x[i]);
end;
fill_mas:=x[n];
end;
begin
clrscr;
a[n]:=fill_mas(x[n]); // заполняем нужный нам массив a через вызов функции.
for i:=1 to n do
begin
writeln('Element ',i,' : ', a[i]); // выводим полученный массив на экран.
end;
readkey; // ждем нажатия клавишы для закрытия.
end.
!!!но появляется,
!!!ОШИБКА 202 - ПЕРЕПОЛНЕНИЕ СТЕКА.
Поясните как исправить код так чтобы все работало.[HTML]
P.S: это Паскаль 7.0
Последний раз редактировалось hoty; 09.06.2008 в 22:34..
|
|
|

09.06.2008, 22:44
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме: 801879
Репутация:
337
|
|
4_hoty
Код:
const N = 1000;
type massiv = array [1..N] of integer;
procedure ReadMas(var mas: massiv; k: integer);
var i: integer;
begin
randomize;
for i:=1 to k do mas[i]:=random(100);
end;
var mas: massiv;
k,i: integer;
begin
write('>');
readln(k);
ReadMas(mas,k);
for i:=1 to k do write(mas[i],' ');
readln
end.
|
|
|

09.06.2008, 23:18
|
|
Познающий
Регистрация: 20.05.2008
Сообщений: 81
Провел на форуме: 224517
Репутация:
32
|
|
4_Dober'man
щас разберусь посмотрю, были задумки насчет, того, чтобы описать тип массивов.
чуть позже отпишусь.
4_All
все охото чтобы хватало одной строчки в программе для заполнения массива, а другой для вывода массива. Считаю очень, было бы удобно.
Кстаи, можно обойтись, без описания массива как типа?
|
|
|

10.06.2008, 11:09
|
|
Познающий
Регистрация: 05.03.2007
Сообщений: 99
Провел на форуме: 744734
Репутация:
44
|
|
Сообщение от Dober'man
4_Mosvit
Цикл переставит элементы массива (по возрастанию) по диагонали сверху вниз:
....
Попробовал, что-то не пашет, элементы переставляет, но явно не по-возрастанию, а как-то на бум.
Само задаине тут
Последний раз редактировалось Mosvit; 10.06.2008 в 11:11..
|
|
|

10.06.2008, 11:12
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме: 801879
Репутация:
337
|
|
hoty
все охото чтобы хватало одной строчки в программе для заполнения массива, а другой для вывода массива. Считаю очень, было бы удобно.
Код:
читаешь - for i:=1 to k do mas[i]:=read(mas[i]);
выводишь - for i:=1 to k do write(mas[i],' ');
Кстаи, можно обойтись, без описания массива как типа?
Да. Разницы нет.
|
|
|

10.06.2008, 11:15
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме: 801879
Репутация:
337
|
|
Mosvit
Так я же исправил: предпоследний пост, 63 страницы!.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|