Дана клетчатая таблица размера WxH (1 <= W, H <= 80). Нужно найти путь из клетки помеченной буквой 's' (или 'S') до клетки помеченной буквой 'e' (или 'E').
Ходить можно в 4-х направлениях. Сквозь стенки (на карте помечены, как '#') ходить нельзя.
Входные данные лежат в файле input.txt, формат файла - W (ширина), H (высота), табличка WxH - карта.
Вывести карту с нарисованным путем прямо на экран.
Найти произвольный путь (написать Depth First Search)
Пример:
6 4
...#.s
##
..#...
e...#.
Произвольный путь:
6 4
...#*s
#...*#
**#**.
e***#.
#include - подключение библиотеки.
using namespace std; - объявление пространства имен
void swap(int x, int y, int z) - определение функции swap, которая ничего не возвращает, с принимаемыми аргументами типа int. Служит для обмена значений
{} - операторные скобки
int temp - объявление локальной переменной temp.
if(x > y ) - Если x > y, мы меняем значения x и y. temp - промежуточная переменная для хранения значения.
if(x > z) - Если x > z, мы меняем значения x и z. temp - промежуточная переменная для хранения значения.
if(y > z) - Если y > z, мы меняем значения y и z. temp - промежуточная переменная для хранения значения.
cout << x << " " << y << " " << z << "\n"; - вывод переменных x y z через пробел. \n - перевод каретки на новую строку.
}
int main() - главная функция, которая начинает свое выполнение при запуске
{
int x = 2, y = 6, z = 5; - определение переменных x y z
swap(x, y, z); - вызываем функцию и передаем ей значения x y z
system("pause >> null"); - передача команды "pause >> null" командному процессору. Тормозим выполнение программы. >> null означает, что не будет ничего написано. (Без этого будет писать, в роде: Для продолжения нажмите")
return 0; - возвращаемое значение
}
1. Встречен repeat но нет until
2. Есть 3 begin, но только 2 end
3. Константа N лишняя. Нигде в программе не используется
После исправления ошибок программа с краткими комментариями будет выглядеть так:
program Zinaida;
var
i, k: integer;
inString: String;
isize, count: integer;
begin
write('String: ');
readln(inString); //ввод текста
k := length(instring); //длина текста
if instring[k] = '.' then dec(k);
//цикл для поиска пробелов и
//слов с длиной 5 символов
for i := 1 to k do
begin
if instring[i] <> ' ' then inc(isize);
if (instring[i] = ' ') or (i = k) then
begin
//если длина слова = 5 то увеличиваем count на 1
if isize = 5 then inc(count);
isize := 0;
end;
end;
write('Количество слов из пяти букв', count);
end.