![]() |
![]() |
compiler |
![]()
Сообщение
#1
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Добрый день!
Надо довести до совершенство решение задачи, тема который для меня тёмный лес: Написать программу, содержащую процедуру, которая меняет местами первый и второй элементы не пустого списка. Если элементы не найдены, то выдать на экран соответствующие сообщение. задача уже решалась на форуме, однако хотелось бы увидеть оптимальное решение, учитывая возможности FP моё решение {$mode objfpc}заранее благодарен. -------------------- Спасибо!
Удачи! |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Комментарии добавлены...
А насчет Цитата когда стоит передавать список через var, а когда просто так? Если тебе надо получить из процедуры/функции измененное значение параметра - то через Var, иначе (если ты не хочешь знать, что происходит со значением параметра внутри подпрограммы, а хочешь сохранить в основной программе старое значение параметра) - без Var. Ну, это ты наверное знаешь... Я так понимаю, вопрос возник, потому что я добавил Var в процедуру Free? Просто я считаю, что если ты удаляешь что-то то логично указатель на это что-то обнулить, чтобы потом не было казусов. Ты же здесь: free(sp); удалял все содержимое списка, но вот сам указатель на начало списка у тебя не обнулялся. А что если дальше в программе тебе еще раз захочется распечатать список? Ну, вызовешь ты print(sp). В моем варианте sp = nil, процедура закончится сразу же. А в твоем? Что будет печататься? AV/SF давно не видел? ![]() |
compiler |
![]()
Сообщение
#3
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Комментарии добавлены... теперь, вроде, разобрался, но как её изменить чтоб при вводе первым числом 0 не возникала дальнейшая не корректная работа при печати(run time error 216) Я так понимаю, вопрос возник, потому что я добавил Var в процедуру Free? да, спасибо.. теперь ясно...А в твоем? Что будет печататься? мусор какой-то:)Сообщение отредактировано: compiler - 26.01.2008 14:00 -------------------- Спасибо!
Удачи! |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 13:54 |