ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #611  
Старый 09.06.2008, 12:38
R@zoR
Новичок
Регистрация: 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..
 
Ответить с цитированием

  #612  
Старый 09.06.2008, 12:48
R@zoR
Новичок
Регистрация: 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..
 
Ответить с цитированием

  #613  
Старый 09.06.2008, 13:09
Fata1ex
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #614  
Старый 09.06.2008, 21:10
Fata1ex
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #615  
Старый 09.06.2008, 22:31
hoty
Познающий
Регистрация: 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..
 
Ответить с цитированием

  #616  
Старый 09.06.2008, 22:44
Dober'man
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме:
801879

Репутация: 337
Отправить сообщение для Dober'man с помощью ICQ
По умолчанию

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.
 
Ответить с цитированием

  #617  
Старый 09.06.2008, 23:18
hoty
Познающий
Регистрация: 20.05.2008
Сообщений: 81
Провел на форуме:
224517

Репутация: 32
По умолчанию

4_Dober'man

щас разберусь посмотрю, были задумки насчет, того, чтобы описать тип массивов.
чуть позже отпишусь.

4_All
все охото чтобы хватало одной строчки в программе для заполнения массива, а другой для вывода массива. Считаю очень, было бы удобно.

Кстаи, можно обойтись, без описания массива как типа?
 
Ответить с цитированием

  #618  
Старый 10.06.2008, 11:09
Mosvit
Познающий
Регистрация: 05.03.2007
Сообщений: 99
Провел на форуме:
744734

Репутация: 44
По умолчанию

Цитата:
Сообщение от Dober'man  
4_Mosvit

Цикл переставит элементы массива (по возрастанию) по диагонали сверху вниз:
....
Попробовал, что-то не пашет, элементы переставляет, но явно не по-возрастанию, а как-то на бум.

Само задаине тут

Последний раз редактировалось Mosvit; 10.06.2008 в 11:11..
 
Ответить с цитированием

  #619  
Старый 10.06.2008, 11:12
Dober'man
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме:
801879

Репутация: 337
Отправить сообщение для Dober'man с помощью ICQ
По умолчанию

hoty
Цитата:
все охото чтобы хватало одной строчки в программе для заполнения массива, а другой для вывода массива. Считаю очень, было бы удобно.
Код:
читаешь - for i:=1 to k do mas[i]:=read(mas[i]);
выводишь - for i:=1 to k do write(mas[i],' ');
Цитата:
Кстаи, можно обойтись, без описания массива как типа?
Да. Разницы нет.
 
Ответить с цитированием

  #620  
Старый 10.06.2008, 11:15
Dober'man
Banned
Регистрация: 16.07.2007
Сообщений: 79
Провел на форуме:
801879

Репутация: 337
Отправить сообщение для Dober'man с помощью ICQ
По умолчанию

Mosvit
Так я же исправил: предпоследний пост, 63 страницы!.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ