Персональная страничка
Диканева Тараса
Викторовича

Главная \ Преподавательское \ Программирование для начинающих

16. Указатели

Предыдущий раздел:

Задание 16: Указатели

1. Присвойте какой-нибудь переменной значение не напрямую, а узнав ее адрес и изменив содержимое памяти по этому адресу.

2. Узнайте, что станет с переменной типа char, если в соответствующую ей память записать целое число.

3. Для однонаправленного списка из целых чисел создайте следующие процедуры:

а) Создание списка с заполнением его случайными целыми числами. В лекции приведен пример создания списка, начиная с 1-го элемента, попробуйте создать список, начиная с последнего.

б) Печать значений элементов списка.

в) Исключение из списка элемента с заданным номером.

г) Меняющую два элемента списка местами.

д) Уничтожающую список.

4. В текстовом файле содержится столбик чисел. Создайте новый файл, где будут те же числа, но записанные в обратном порядке. Для промежуточного хранения данных используйте однонаправленный список.

5. Создайте однонаправленный список из целых чисел. Перестройте элементы списка в обратном порядке.

6. По строке, содержащей арифметическое выражение, куда входят числа и символы операций (+, -, /, *), постройте бинарное дерево и создайте функцию, которая по такому дереву вычисляет значение выражения.

Предыдущий раздел:

7 комментариев

  1. Илья

    Задание 2 существенно сложнее, чем кажется. Непосредственное присваивание с использованием типизированных указателей не работает, поскольку выдаётся ошибка типов. Непосредственное присваивание с помощью нетипизированного указателя тоже — с ним операции связывания и взятия адреса не работают.

    Задание можно выполнить,е сли использовать 3 указателя: 2 типизированных на целый тип и символ соответственно и один нетипизированный. Это то, что ты задумывал или нет?

  2. Taras

    Да, так и задумывалось.

    В надежде, что прочитавший легче решит задачу, добавил в конец раздела про нетипизированные указатели фразу:

    p := x;
    z := p;
    После таких присваиваний x и z содержат содержат один и тот же адрес памяти. Однако содержимое этой памяти будет интерпретироваться по-разному: x^ — как целое, z^ — как вещественное число.

  3. Илья

    Хорошо, но никто кроме меня до этого пока не догадался ;(

  4. Константин

    Абсолютно весь учебник скопировал в тетрадь :3 Подхожу к завершению ;) А у вас ещё есть учебники?

  5. Taras

    >> Абсолютно весь учебник скопировал в тетрадь
    О_о ))

    >> А у вас ещё есть учебники?
    Нет, только этот.

  6. Константин

    Я по ходу обучения в тетрадь переписывал. Так лутше запоминается и чисто для самовнушения, что я не просто время за компом просиживаю ;D + В школе повторял.

  7. Зимфира

    Спасибо, буду прорабатывать, надеюсь смогу разобраться.

Добавить комментарий