2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Олимпиадная задача по Pascal
Сообщение24.09.2010, 16:36 


24/09/10
3
~На круговую нитку нанизаны бусы. Таблица В содержит веса бусинок b1, b2, ..., bn, причём первым указан вес самой тяжёлой бусинки, веса остальных бусинок указываются в соответсвии с расположнием их на нитке при обходе её по часовой стрелке.
Перестроить таблицу В так, чтобы обход нитки по часовой стрелке начинался с бусинки с минимальным весом. Нитка не разрывается. Если решение не единственное, то найти любое (1<=n<=100, 1<=bi<=1000).
____________________________

Суть задачи понятна и ход решений тоже, только при написании уже в паскале выдается ошибка :cry: ...(там где описание переменных, а именно массива)


Код:
program Z6;
var    f1,f2:text;
        k,min,i:longint;
        a:array[1..n]of integer;
begin
assign(f1,'Intup.txt');
assign(f2,'Output.txt');
reset(f1);
rewrite(f2);
for i:=1 to n do
readln(f1,a[i]);
min:=a[1];
for i:=2 to n do
if a[i]<min then
a[i]:=k;
for i:=k to n do
writeln(f2,a[i]);
for i:=1 to k-1 do
writeln(f2,a[i]);
close(f1);
close(f2);
end.

 Профиль  
                  
 
 Re: Олимпиадная задача по VPascal
Сообщение24.09.2010, 16:42 
Заслуженный участник


04/05/09
4587
Где объявление n? Откуда взялось k?
Я бы объявил массив фиксированного размера, т.к. по условию n не больше 100. Но настоящее значение n должно быть где-то во входных данных, и переменную n всё равно надо объявить и прочитать.

 Профиль  
                  
 
 Re: Олимпиадная задача по Pascal
Сообщение24.09.2010, 16:59 


24/09/10
3
venco k-это переменная которой потом как раз присваиваю значения с мин и т.д...(чтоб не вводить второй массив)

т.к 9 класс то про фиксированный пока вообще не знаю ничего)
но опять вылетает в строке a:array[1..n]of integer "Cannot evaluate this expression"

 Профиль  
                  
 
 Re: Олимпиадная задача по Pascal
Сообщение24.09.2010, 17:04 
Заслуженный участник


04/05/09
4587
Nefik в сообщении #355808 писал(а):
venco k-это переменная которой потом как раз присваиваю значения с мин
Где?

Nefik в сообщении #355808 писал(а):
т.к 9 класс то про фиксированный пока вообще не знаю ничего)
но опять вылетает в строке a:array[1..n]of integer "Cannot evaluate this expression"
Что значит "опять"? Вы что-то изменили?

Совет:
прочитайте программу сверху вниз, и попытайтесь исполнить (хотя бы в уме) только то, что написано.
Например, дошли до строчки:
a:array[1..n]of integer
Заводим место под массив размера n... а сколько это? Ведь надо выделить конкретное количество памяти. Т.е. в этот момент значение n должно быть известно. А у Вас оно известно?

 Профиль  
                  
 
 Re: Олимпиадная задача по Pascal
Сообщение24.09.2010, 17:16 


24/09/10
3
Этот момент:
Код:
a[i]:=k;
for i:=k to n do
writeln(f2,a[i]);
for i:=1 to k-1 do
writeln(f2,a[i]);


Цитата:
Что значит "опять"? Вы что-то изменили?

добавила n в описание переменных, и перед началом цикла прочитала ее.

 Профиль  
                  
 
 Re: Олимпиадная задача по Pascal
Сообщение24.09.2010, 18:38 
Заслуженный участник


04/05/09
4587
Nefik в сообщении #355816 писал(а):
Этот момент:
Код:
a[i]:=k;
for i:=k to n do
writeln(f2,a[i]);
for i:=1 to k-1 do
writeln(f2,a[i]);
И где тут присваивание k?

Nefik в сообщении #355816 писал(а):
Цитата:
Что значит "опять"? Вы что-то изменили?

добавила n в описание переменных, и перед началом цикла прочитала ее.
При чём тут начало цикла. Массив-то объявлен выше. Так вот в строчке, где массив объявлен, границы индексов должны быть уже известны компилятору. Т.к. прочитать ещё ничего нельзя, предлагаю границы массива объявить фиксированным числом (100 достаточно), или именованной константой.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group