7 класс 1 четверть Вопросы к зачету
1. Информация
2. Непрерывный сигнал
3. Дискретный сигнал
4. Виды информации
5. Свойства информации
6. Определение каждого свойства
7. Информационные процессы
8. Основные информационные процессы
9. Информационная деятельность
10. Обработка информации
11. Структурирование
12. Кодирование
13. Что значит сохранить информацию
14. Схема передачи информации
15. Всемирная паутина
16. Знак
17. Знаковая система
18. Язык
19. Дискретизация информации
20. Алфавит
21. Двоичный алфавит
22. Двоичное кодирование
23. Двоичный код
24. Равномерный код
25. Неравномерный код
1. Короткое решение, оставляющее в недоумении: а для чего тут было использовать двусвязный список? ответ: потому что таково задание!
// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!
function IsFib(n:integer):boolean;
begin
if (n=1) or (n=2) then Result:=true
else begin
Result:=false;
(var n1, var n2):=(1,2);
var Fib:integer;
repeat
Fib:=n1+n2;
if Fib=n then begin Result:=true; break end;
(n2,n1):=(Fib,n2)
until Fib>n
end;
end;
begin
var L:=ReadSeqInteger('->',ReadInteger('n=')).ToLinkedList;
L:=L.Where(x->not IsFib(x)).ToLinkedList;
L.Println
end.
Пример
n= 9
-> 3 17 13 10 12 4 11 0 5
17 10 12 4 11 0
2. Несколько более длинное решение для желающих немного порулить удалением узлов.
Функция остается той же, а изменения делаются в главной программе.
begin
var L:=ReadSeqInteger('->',ReadInteger('n=')).ToLinkedList;
var a:=L.Where(x->IsFib(x)).ToArray; // список значений для удаления
foreach var t in a do L.Remove(t); // собственно удаление узлов
L.Println
end.
3. Бонус. Как это сделать без двусвязного списка (опять же, основная программа).
begin
var a:=ReadSeqInteger('->',ReadInteger('n='))
.Where(x->not IsFib(x)).ToArray;
a.Println
end.