Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с массивами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Тимур 2
1) заполнение массивов:Заполните массив, чтобы в нем чередовалось 0 и 1.
2)Преобразование линейного массива:Отсортируйте массив в порядке убывания линейной сортировки.
3)Получение данных о линейном массиве: Определить, есть ли в массиве элементы, равные своему индексу.
Lapp
М
Тема переименована (Правила Форума, п.4, и правила раздела Задачи, п.1)


Цитата(Тимур 2 @ 5.04.2011 21:01) *
1) заполнение массивов:Заполните массив, чтобы в нем чередовалось 0 и 1.
2)Преобразование линейного массива:Отсортируйте массив в порядке убывания линейной сортировки.
3)Получение данных о линейном массиве: Определить, есть ли в массиве элементы, равные своему индексу.

1)
for i:=1 to n do a[i]:= i mod 2;


2) См. в FAQ, Методы сортировок

3)
const
n= 100;
var
yes: boolean;
i: integer;
a: array [1..n] of integer;

begin
for i:=1 to n do a[i]:= Random(100)+1;
yes:= false;
for i:=1 to n do yes:= yes or (a[i]=i);
WriteLn(yes);
ReadLn
end.
Тимур 2
В паскале ABC
volvo
И что из вышенаписанного у тебя не работает в ABC? Третья программа точно работает, проверил. В чем проблема?
Тимур 2
я первый раз вижу yes: boolean;
volvo
В таком случае начинай с изучения самых основ Паскаля. Как ты собрался писать программы, если не знаешь синтаксис описания переменных?
Тимур 2
нас пока такому не учили
Lapp
Цитата(Тимур 2 @ 6.04.2011 18:53) *
я первый раз вижу yes: boolean;

нас пока такому не учили

Пожалуйста, выражайся конкретнее. Вы не знаете тип boolean? логический тип?
Гость
Задачи на одномерные массивы
Заполнение массивов:Заполните массив, чтобы в нем чередовалось 0 и 1.
Преобразование линейного массива:Отсортируйте массив в порядке убывания линейной сортировки.
Получение данных о линейном массиве: Определить, есть ли в массиве элементы, равные своему индексу.
Гость
помоги пожалуйста
volvo
Не надо тупо копировать вопросы. Решение одной из задач было приведено выше. Оно кому-то не понравилось, потому что кого-то "пока такому не учили" (С) Я не телепат, чтоб знать, чему его учили, а чему - нет. Так что либо этот кто-то пробует делать сам, и задает вопросы, если что не получилось, с приведением того кода, который был им написан, и с указанием, в чем сложность решения задачи, либо он идет читать букварь по Паскалю.

Третьего варианта (выкладывания десятков работоспособных вариантов, пока, наконец, этот кто-то не найдет то, чему его учили) не будет...
Lapp
Цитата(Гость @ 10.04.2011 15:03) *
помоги пожалуйста

Мы бы рады помочь - но как это сделать, если ты не отвечаешь на вопросы?
Ответь на мой вопрос в посте #8.
И вообще скажи, с чем именно затруднения.
И в чем именно проявляется специфика ABC в этом случае.

Говори, короче, а не повторяй условие, как бот последний.. Тут люди, а не автоматы по решению задач.
Тимур 2
1 задача
uses crt;
const n=20;
var a:array [1..n] of integer;
i : integer;
Так будет начало???
TarasBer
тему не читай
@
сразу отвечай

> Так будет начало???

Сообщение номер 2 в этой теме посмотри.
Lapp
Цитата(Тимур 2 @ 11.04.2011 14:52) *
1 задача
uses crt;
const n=20;
var a:array [1..n] of integer;
i : integer;
Так будет начало???

В целом - да, так.
Только uses CRT - лишнее. Зачем оно тебе? Тебе же ничего из библиотеки CRT не нужно здесь (по делу). Так что эта строка не нужна.
А объявление константы и переменных - правильно.

Дальше отурывай блок операторов (begin), вставляй ту мою строку с циклом - и в принципе задача решена. Так что можно поставить end с точкой, "end." - и все. Но тебе, возможно, потребуется еще вывести этот массив (в условии этого нет, но это может подразумеваться, поскольку какой-то результат же должен быть).
Сможешь?


Добавлено через 9 мин.
Цитата(TarasBer @ 11.04.2011 15:01) *
тему не читай
@
сразу отвечай
Это ты автору темы? )) я не сразу понял.. )))
Тимур 2
uses crt;
const n=20;
var a:array [1..n] of integer;
i : integer;
begin
randomize;
begin
For i:=1 to n do
if i mod 2=0
a[i]:=1;
a[i]:=0;
write(a[i],'');
end.

а уменя че то не работает((

М
Программный код заключай, пожалуйста, в теги (закрась мышкой и выбери нужный пункт из меню CODE над окном ввода)

Тимур 2
а как 2 задачу решать?
Lapp
Цитата(Тимур 2 @ 11.04.2011 19:52) *
а уменя че то не работает((

Смотри, вот кусок из твоего кода с моими пояснениями:
For i:=1 to n do    // тут нужен begin в конце строки, иначе последняя строка выпадает из цикла
if i mod 2=0 // тут ты потерял then
a[i]:=1; // ЭТУ и следующую строку надо объединить в одну конструкцию then .. else .. ,
a[i]:=0; // иначе ЭТА строка будет затирать то, что сделала предыдущая
// а тут нужен end


В результате получится вот так:
For i:=1 to n do begin
if i mod 2=0 then a[i]:=1 else a[i]:=0; // что внутри begin/end, сдвигаем вправо на indent
end;


Но тогда получается, что внутри цикла только ОДИН оператор, так что begin и end не нужны. Окончательный вариант:
For i:=1 to n do
if i mod 2=0 then a[i]:=1 else a[i]:=0; // окончание оператора цикла тоже сдвигаем


Только я не понял, чем тебе не понравилось мое заполнение. Поясни, пожалуйста.
И еще одно: зачем ты везде пихаешь CRT?? Ты же ее не используешь тут. Для важности, что ли? Глупо smile.gif. Убери.


Добавлено через 1 мин.
Цитата(Тимур 2 @ 11.04.2011 23:41) *
а как 2 задачу решать?
А ты сходил по той ссылке, которую я привел в посте #2?
Тимур 2
не понимаю че то((
Lapp
Цитата(Тимур 2 @ 12.04.2011 16:36) *
не понимаю че то((

Тимур, так не пойдет.
Либо ты пишешь где и что ты не понимаешь и задаешь конкретные вопросы - либо я умываю руки.
Оставь "моя твоя не понимает" для анекдотов.
Тимур 2
uses crt;
const n=20;
var
a: array[1..n] of Integer;
i: Integer;

begin

for i := 1 to n do
begin начало тоже самое будет))??
Lapp
Заключай код в теги. В посте #16 я подробно описал, как это делать.

Цитата(Тимур 2 @ 13.04.2011 8:43) *
начало тоже самое будет))??
ммм..

Короче, вот, смотри, как будет в результате:
const
n=20;
var
a: array [1..n] of integer;
i: integer;

begin
For i:=1 to n do a[i]= i mod 2;
for i:=1 to n do write(a[i],' ');
end.

Но в этом коде есть одна ошибка: пропущен один символ. Исправь, и все будет нормально.
Гость
Цитата(Тимур 2 @ 6.04.2011 17:53) *

я первый раз вижу yes: boolean;

Логику Джоржа Буля раньше проходят чем массивы! Незнание объявления переменных этого типа... Как бы ты писал это, если бы у тебя нета не было бы?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.