02.05.2012, 15:25 | #1 (permalink) |
Новичок
Регистрация: 02.05.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите написать блок-схему для курсовой
Помогите пожалуйста! Program King; Const Size=10; Var A:Array[1..Size+1,0..Size] of Integer; i,j,n,m:Byte; Begin Assign(Input, ‘Input.txt’); Reset(Input); Readln(n,m); for i:=1 to n do for j:=1 to m do A[I,j]:=-1; Repeat Readln(I,j); A[I,j]:=0; Until EOF; A[n,1]:=1; For i:=n downto 1 do For j:=1 to m do If A[i,j]=-1 Then A[I,j]:=A[i+1,j]+A[I,j-1]+A[i+1,j-1]; Assign(Output, ‘Output.txt’); Rewrite(Output); Writeln(A[1,m]_; Close(Input); Close(Output); End. |
02.05.2012, 15:25 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
решение проблемы должно упроститься, если прочитать содержимое схожих тем Помогите написать блок-схему для курсовой Помогите написать блок-схему |
02.05.2012, 18:59 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
С блок-схемой помочь, увы, не могу - не занимаюсь этим, а вот что касается того, что Вы именуете "программой"... Ужас! Едва ли не в каждой строке ошибка. В общем, бессмысленный набор букв это, а не программа.
|
03.05.2012, 17:26 | #5 (permalink) |
Новичок
Регистрация: 02.05.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Вот задача:
КОРОЛЬ В левом нижнем углу шахматной доски mxn стоит одинокий король. Некоторые ячейки доски запрещены для посещения королем. Король имеет возможность ходить или вправо или вверх (или вправо-вверх) на одну ячейку. Найти количество путей короля в правый верхний угол доски. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
03.05.2012, 18:28 | #6 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
1. Шахматная доска что, нестандартная? Не 8х8? В таком случае, надо указать пределы чисел m и n. 2. Действительно ли требуется найти полное количество путей, т.е. перебрать все варианты? Но их безумно много! Ну то есть если конечно доска большая, а не, скажем, 3х2. 3. Как задаются "запретные" клетки? Сколько их? 4. В программе я вижу файлы ввода-вывода. Каков их смысл? Что должно в них быть? 5. Как вообще должен быть представлен результат работы программы? Только количество путей или и сами пути? В каком виде? 6. Какой Паскаль? Сразу предупреждаю, что если АВС, то и смотреть в ту сторону не буду. |
|
04.05.2012, 10:19 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Драть вас, студентов, некому. Ремнем. Ну неужели вы не понимаете, что если сразу выложите ясное и полное задание, то будет легче и нам, и вам? И почему мы должны это из вас клещами тянуть?
Теперь об ошибках. Ну ладно описки типа Writeln(A[1,m]_; - подчерк вместо закрывающей скобки и т.п., но самое главное - Вы, к сожалению, совсем не знаете, как работать с файлами. Запомните: 1. Файловую переменную необходимо задать, т.е. в разделе Var должно стоять что-то вроде f:Text; или Xxx: file of Integer; 2. При записи в файл и чтении из файла в параметрах команды должно стоять имя файловой переменной, например readln(f,a[i,j]); write(Xxx,D); и т.п. 3. При использовании функции EoF (End of File) необходимо опять же указывать имя файловой переменной, т.е. EoF(f); или EoF(Xxx); 4. При написании имени файла в параметрах команды Assign использовать ТОЛЬКО апостроф (') - который в русифицированной клавиатуре там же, где буква "э". Использование каких-либо других значков НЕ ДОПУСКАЕТСЯ. Ну и вот исправленная программа: Код:
Const Size=10; Var A:Array[1..Size+1,0..Size] of Integer; i,j,n,m,k:Byte; Inp,Outp:Text; Begin Assign(Inp,'Input.txt'); Reset(Inp); Readln(Inp,n,m); for i:=1 to n do for j:=1 to m do A[i,j]:=-1; for i:=1 to n do A[i,0]:=0; for j:=0 to m do A[n+1,j]:=0; Repeat Readln(Inp,i,j); A[i,j]:=0; Until EoF(Inp); A[n,1]:=1; Close(Inp); For i:=1 to n+1 do begin For j:=0 to m do write(A[i,j]:4); Writeln; end; Writeln; For i:=n downto 1 do For j:=1 to m do If A[i,j]=-1 then A[i,j]:=A[i+1,j]+A[i,j-1]+A[i+1,j-1]; For i:=1 to n+1 do begin For j:=0 to m do write(A[i,j]:4); Writeln; end; Writeln; Writeln('Press "Enter" to quit'); Readln; Assign(Outp,'Output.txt'); Rewrite(Outp); Writeln(Outp,A[1,m]); Close(Outp); End. Ну а что касается блок-схемы - тут, как уже говорил, не компетентен. Может быть Анджела (11Angelav) поможет? Она у нас виртуоз блок-схем. |
04.05.2012, 22:22 | #10 (permalink) |
Новичок
Регистрация: 02.05.2012
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо огромное вам.
Ок, оброщусь к ней. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|