Вопрос № 78466: Уважаемые эксперты! Помогите пожалуйста решить задачу(задача на псевдопаскале, ибо в Паскале такой функции нет). Дано прямоугольное поле M на N клеток для игры в Морской бой. На поле расположены прямоугольные корабли произвольного размера. f(i,j) опр...Вопрос № 78547: Здравствуйте, помогите, пожалуйста, если не трудно, учусь заочно, преподы по телефону посылают просто((
1. Написать программу создания файла прочитать и напечатать созданный файл:
Создать файл, содержащий сведения о личной коллекции книг...Вопрос № 78551: Доброе время суток эксперты!!!
Кто знает на эти вопросы ответы помогите ответить правильно, хоть на пару вопросов из всех, я просто не успеваю сам ответить на эти все вопросы времени не хватает.
Заранее благодарен.
1. Алгоритм линейной с...
Вопрос № 78.466
Уважаемые эксперты! Помогите пожалуйста решить задачу(задача на псевдопаскале, ибо в Паскале такой функции нет). Дано прямоугольное поле M на N клеток для игры в Морской бой. На поле расположены прямоугольные корабли произвольного размера. f(i,j) определяет есть ли корабль на поле (i,j). Посчитать кол-во кораблей. Задачу необходимо решить к 19 марта.
Заранее Вам благодарна
Отправлен: 15.03.2007, 19:48
Вопрос задала: Miry (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 7)
Отвечает: Яна
Здравствуйте, Miry!
Заводим массив размера M*N, в котором 0 - означает, что нет корабля, 1 - что есть корабль.
Затем делаем обход массива.
Если в клеточке 0 - пропускаем, если 1 - увеличиваем количество кораблей на 1 и заменяем эту клеточку и все соседние содержащие 1 (весь корабль на числа 2), а потом все 2 на нули. (это можно сделать рекурсией, двигаться от этой 1 в четыре разных направления, если 1 - то замещать на 2, если 0 - то останавливать рекурсию). Потом 2 заменяем на нули.
И все повторяется заново. Ищем второй корабль, увеличиваем количество кораблей, заменяем его на двойки, и потом двойки на единицы.
Возможно, будет работать даже в том случае, если вы будете сразу заменять на нули (без двоек), то тут нужно очень аккуратно отнестись к выходу из рекурсии.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 15.03.2007, 21:16
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Miry!
В приложении один из вариантов решения Вашей задачи.
P.S. Я все еще желаю узнать, какой именно функции нет в паскале, и что такое "псевдопаскаль", в котором эта функция есть.
Ответ отправил: Устинов Сергей Евгеньевич (статус: Практикант)
Ответ отправлен: 17.03.2007, 01:04 Оценка за ответ: 5 Комментарий оценки: Большое спасибо за задачу! Даже не зная как оперировать с массивами на Паскале я поняла решение.
Вопрос № 78.547
Здравствуйте, помогите, пожалуйста, если не трудно, учусь заочно, преподы по телефону посылают просто((
1. Написать программу создания файла прочитать и напечатать созданный файл:
Создать файл, содержащий сведения о личной коллекции книголюба. Структура записи: шифр книги, автор, название, год издания, местоположение (номер стеллажа, шкафа и т.п.).
Количество записей – произвольное.
2. Написать программу обработки файла, созданного в п.1:
Написать программу, выдающую следующую информацию:
- местонахождение книги автора Х названия Y. Значения X, Y;
- список книг автора Z, находящихся в коллекции;
- число книг издания ХХХХ года, имеющееся в библиотеке.
спасибо!
Отправлен: 16.03.2007, 10:49
Вопрос задал: Mayra (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Verena
Здравствуйте, Mayra!
Вообще почитать про работу с файлами можно в любом учебнике, например, здесь http://declic.narod.ru/ossio/files/welcome.html
Чтобы создать необходимый Вам типизированный файл сначала надо объявить запись, которые он будет содержать:
type rec = record
sh: string [7]; {шифр книги}
aut: string [15]; {автор}
nazv: string [15]; {название}
year: word; {год}
mp: word; {местоположение}
end;
Например, пусть шифр, автор и название будут символьными полями (не более 7 и 15 знаков соответственно), а год и местоположение - числовыми. Файл с такими записями объявляется так:
Var f: file of rec;
Перед использованием в программе переменную надо связать с реальным файлом при помощи процедуры assign (f {имя переменной}, 'real_file_name' {имя (адрес) файла}). Для создания файла пишут rewrite (f), для открытия для чтения/записи - reset (f). В конце файл следует закрыть - close (f). Создают файл, например, так:
assign (f, 'real_file_name');
rewrite (f);
write (f, c); {здесь с имеет тип rec и всем его полям заблаговременно присваиваютя значения}
close (f);
Это будет файл из одной записи. Выборка каких-либо данных делается так (на примере пункта 2.1 Вашей задачи):
reset (f);
while not eof (f) do {пока не конец файла}
begin
read (f, c); {читаем очередную запись, после этого указатель файла перейдёт на следующую запись}
if (c.aut=X) and (c.nazv=Y) then writeln (X, ' ', Y, ' ', mp); {проверяем поля на совпадение, если автор и название нужные, то выводим местоположение на экран}
end;
close (f);
Другие действия выполняются аналогично. Вернуться к началу файла можно при помощи функции seek (f, 0), где 0 - номер требуемой компоненты, в данном случае, нулевой (так можно переместиться на любую запись файла).
Удачи!
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 6-ой класс)
Ответ отправлен: 17.03.2007, 00:36 Оценка за ответ: 5 Комментарий оценки: надеюсь поможет
Вопрос № 78.551
Доброе время суток эксперты!!!
Кто знает на эти вопросы ответы помогите ответить правильно, хоть на пару вопросов из всех, я просто не успеваю сам ответить на эти все вопросы времени не хватает.
Заранее благодарен.
1. Алгоритм линейной сортировки ?
2. Алгоритм нахождения наибольшего?
3. Алгоритм пузырьковой сортировки ?
4. Алгоритм суммирования ?
5. Бинарный метод поиска ?
6. Ветвление ?
7. Два способа передачи параметров в подпрограммы ?
8. Динамические переменные ?
9. Естественный, машинный и язык программирования ?
10. Инкапсуляция ?
11. Линейный алгоритм ?
12. Линейный метод поиска ?
13. Логические операции ?
14. Массивы ?
15. Модули в Turbo Pascal ?
16. Наследование ?
17. Операции над строками ?
18. Отладка программы ?
19. Подпрограммы-процедуры ?
20. Подпрограммы-функции ?
21. Полиморфизм ?
22. Понятие цикла. Циклы FOR, WHILE и REPEAT_UNTIL ?
23. Работа с внешними файлами ?
24. Связанные списки ?
25. Среда разработки Turbo Pascal ?
26. Схемы алгоритмов ?
27. Тип данных – запись ?
28. Тип данных – объект ?
29. Тип данных – перечисление ?
30. Типы данных в Turbo Pascal ?
31. Трансляторы и интерпретаторы ?
32. Обработка исключений в Object Pascal ?
33. Разработка приложения в среде Delphi ?
34. События. Процедура обработки события ?
Отвечает: Яна
Здравствуйте, Анатолий И.О!
Тут совершенно не нужно самому на это все отвечать. Достаточно иметь конспект или учебник по Паскалю. Вы предлагаете набрать из учебника соответствующие главы и напечатать в окне ответа?
Купите книжку по Паскалю или найдите в интернете. Ксерокс или распечатка куда быстрее и дешевле.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 16.03.2007, 15:19 Оценка за ответ: 5 Комментарий оценки: Ага понятно, да нодо так сделать.