Содержание

Основные элементы, узлы и агрегаты легкового автомобиля. Техобслуживание и мелкий ремонт автомобиля своими руками.

Основные элементы, узлы и агрегаты легкового автомобиля

Любой легковой автомобиль, независимо от производителя, марки и модели, состоит из трех основных частей: двигателя, шасси и кузова. В данном разделе мы подробно расскажем только о кузове, а на остальных элементах остановимся кратко, поскольку их более подробное описание приведено ниже, в соответствующих главах книги.

Двигатель — это источник механической энергии, которая приводит автомобиль в движение. Он преобразует тепловую энергию, образующуюся при сгорании топлива, в механическую, которая создает на валу двигателя крутящий момент, используемый для движения автомобиля. Как правило, двигатель располагается в передней части автомобиля, однако есть и исключения — например, тот же «Запорожец». Часть кузова, где находится двигатель, называется моторный отсек (рис. 1.12).

Шасси включает в себя три группы механизмов: трансмиссию, ходовую часть и механизмы управления.

Трансмиссия предназначена для передачи крутящего момента от двигателя к ведущим колесам, а также для изменения крутящего момента в зависимости от текущих условий движения автомобиля. Составными частями трансмиссии являются: коробка переключения передач, сцепление, карданная передача, главная передача, дифференциал, полуоси.


Знайте.

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

Коробка переключения передач предназначена для изменения крутящего момента, передаваемого на ведущие колеса автомобиля, для езды задним ходом, а также для отключения двигателя от трансмиссии (точнее — от ведущих колес) при движении «накатом», а также во время длительной стоянки автомобиля.

Сцепление необходимо для кратковременного отключения двигателя от трансмиссии (ведущих колес) и плавного их соединения при работающем двигателе. Это необходимо при переключении передач, а также при трогании с места.

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

Для того чтобы ведущие колеса автомобиля вращались с различными скоростями там, где это нужно (на поворотах, при езде по ухабистой дороге), используется специальный механизм, называемый дифференциал.

Ходовая часть легкового автомобиля внешне напоминает обыкновенную тележку и включает в себя совмещенный с кузовом подрамник (в легковых автомобилях чаще используется просто несущий кузов), передний и задний мост, подвеску (с рессорами и амортизаторами) и колеса.

На совмещенном с кузовом подрамнике крепятся агрегаты автомобиля. Отметим, что в некоторых легковых автомобилях имеется отдельная рама, выполняющая эти функции.

Мосты автомобиля предназначены для поддерживания кузова, через них вертикальная нагрузка передается на колеса. С помощью подвески устанавливается упругая связь кузова с мостами (колесами), а посредством колес осуществляется связь всего автомобиля с дорогой.

Механизмы управления автомобиля состоят из рулевого управления, с помощью которого осуществляется изменение направления движения автомобиля, и тормозной системы, предназначенной для замедления движения, остановки автомобиля и удержания его во время стоянки в неподвижном состоянии.

Кузов автомобиля — это то, что, собственно, мы видим, глядя на автомобиль. Он предназначен для размещения водителя, пассажиров и грузов (багажа). Кузов стандартного легкового автомобиля состоит из моторного отсека, пассажирского салона и багажника.

Помимо того, что кузов предназначен для размещения водителей, пассажиров и грузов, он является несущим элементом любого современного легкового автомобиля. В нем находится салон, к нему крепятся все агрегаты трансмиссии, ходовой части, двигатель внутреннего сгорания, механизмы управления, а также все дополнительное оборудование. Кроме этого, на кузов замыкается «минус» электрической цепи автомобиля.

В основном кузов современного автомобиля состоит из металла и стекла, но используются и другие материалы (краска, грунтовка, резиновые прокладки на дверях и стеклах, дерматин, утеплитель и др.). Существуют модели автомобилей, у которых кузова делают из специального крепкого пластика. Правда, это исключения, и большинство кузовов все же изготовлены из металла, и в дальнейшем мы будем исходить именно из этого.

Металлическая часть кузова включает в себя следующие основные компоненты: днище, крыша, крылья, панели, двери, капот и крышка багажника. Кроме них, каждый кузов включает в себя ряд более мелких металлических деталей и элементов. Лобовое и заднее стекла вставляются в специальные проемы соответственно в передней и задней частях кузова; боковые стекла устанавливаются в дверях, которые навешиваются на петли.

Двери кузова крепятся к соответствующим стойкам петлями, которые держатся на винтах. При этом имеется возможность регулирования дверей по вертикали и по горизонтали относительно оси кузова. Это бывает необходимо, в частности, после ДТП, или для обеспечения герметичности салона.

Замки как передних, так и задних дверей автомобиля имеют специальную конструкцию, которая полностью соответствует установленным требованиям безопасности. В частности фиксаторы замков сконструированы таким образом, что самопроизвольное открывание дверей при столкновении автомобиля с каким-то препятствием практически полностью исключается.

Каждая дверь имеет специальный ограничитель, который не позволяет ей упираться в кузов автомобиля внешней стороной при открывании. Такая конструкция приобретает особую важность в ветреную погоду: часто приоткрытую дверь сильным порывом ветра вырывает из рук и распахивает настежь, и в это время ограничитель предотвращает выламывание двери и соприкосновение ее с кузовом.

Внутри дверей имеются стеклоподъемники, предназначенные для открывания и закрывания бокового стекла. Стеклоподъемники бывают двух типов: ручные и электрические.

Ручные стеклоподъемники приводятся в действие с помощью специальной рукоятки, расположенной на внутренней поверхности двери, и имеют привод от металлического троса. Электрический стеклоподъемник работает от электрической цепи автомобиля и приводится в действие нажатием специальной кнопки, расположенной в салоне автомобиля — например, на дверной ручке или между передними сидениями (рис. 1.13).

Отметим, что на многих автомобилях используются и ручные, и механические стеклоподъемники: например, спереди могут использоваться электрические стеклоподъемники, а сзади — ручные.

Лобовое (иногда его называют ветровое) и заднее стекла являются панорамными (за исключением задних стекол кузовов «хэтчбэк» и «универсал»). Лобовое стекло является трехслойным, а заднее и боковые стекла — закаленными. Поэтому лобовое стекло при ударе может лишь потрескаться, а все остальные стекла рассыпаются на мелкие кусочки. Это предотвращает водителя и пассажиров от травм, которые могли бы быть нанесены большими осколками стекла в результате дорожно-транспортного происшествия.

Спереди и сзади кузова установлены бамперы. На современных автомобилях, как правило, устанавливаются бамперы, изготовленные из пластмассы или других подобных материалов (пенополиуретан с добавкой стекловолокна и др. ). В случае дорожнотранспортного происшествия при столкновении спереди или сзади именно бампер первым принимает на себя силу удара.

Водитель и пассажиры автомобиля размещаются на сиденьях. Большинство современных легковых автомобилей предусматривают перевозку людей в количестве не более пяти человек, включая водителя.


Передние сиденья автомобиля, как правило, являются раздельными и установлены на специальных салазках, по которым их можно передвигать в продольном направлении в зависимости от роста водителя и пассажира. Спинки передних сидений можно наклонять как вперед, так и назад, вплоть до полного откидывания спинки для организации спального места.

В трех- и двухдверных автомобилях («Опель-Астра», «Форд-Эскорт», ВАЗ-2108, «Запорожец» и др.) спинки передних сидений откидываются вперед, чтобы открыть пассажирам доступ к заднему сидению.

Кузова типа «хэтчбэк» и «универсал» можно преобразовывать из пассажирского в грузовой вариант и наоборот. При этом убирается складная полка или тент, отделяющий багажное отделение от пассажирского салона, а заднее сиденье складывается, в результате чего получается довольно внушительное пространство для перевозки объемных или многочисленных грузов.

Днища кузовов, а также внутренние поверхности крыльев покрыты специальным средством для защиты от коррозии и улучшения шумоизоляции. Но, несмотря на это, рекомендуется сделать полную антикоррозийную обработку кузова (в российских условиях эксплуатации это особенно актуально).

Внутри салона располагаются все органы управления автомобилем (рис. 1.14), а также великое множество устройств и приспособлений, призванных обеспечить комфорт, безопасность и удобство во время движения. К ним, в частности, относятся пепельница, подлокотники сидений, подголовники, ремни безопасности и т. д.

Снаружи кузов автомобиля окрашен заводом-изготовителем. Причем краска кладется не на голый металл: процесс покраски современного автомобиля довольно сложен и состоит из нескольких этапов: подготовка поверхности кузова к покраске, грунтовка, сушка, нанесение основного слоя и т. д. Это обусловлено тем, что автомобили эксплуатируются в сложных условиях — жара, дождь, снег, химические реагенты на дорогах и т.  д., что подразумевает необходимость высокой антикоррозийной стойкости кузова и надежность всех слоев краски.

Данный текст является ознакомительным фрагментом.

КОНСТРУКЦИЯ И ОСНОВНЫЕ ЭЛЕМЕНТЫ КНИГИ

КОНСТРУКЦИЯ И ОСНОВНЫЕ ЭЛЕМЕНТЫ КНИГИ
Нельзя приступать к переплетным или реставрационным работам, не зная, как устроена книга. Возьмите в руки хорошо выполненную книгу (рис. 1) и осмотрите ее внимательно. Внешнюю одежду книги составлявляет суперобложка, надеваемая

Конструкция кузова легкового автомобиля

Конструкция кузова легкового автомобиля
Назначение кузова современного легкового автомобиля определяется двумя функциями: кузов обеспечивает пассажирам и водителю комфорт и безопасность в аварийных ситуациях. По назначению и исполнению кузова легковых автомобилей

Объемные элементы

Объемные элементы
Стремление максимально снизить трудовые затраты и ускорить строительство вызвало появление новых конструктивных решений зданий – объемных элементов. Такие объемные блоки или собирают на заводе из отдельных плоских элементов, или изготовляют в

Электропроводка и ее элементы

Электропроводка и ее элементы
Передача электрической энергии осуществляется при помощи материалов, подходящих для этого не только с точки зрения способности проводить электроток, но и с точки зрения технического удобства. Так, например, многие соли являются

Основные элементы водяного теплого пола

Основные элементы водяного теплого пола
Классический «пирог» для укладки водяного теплого полаУстройство водяного теплого пола практически ничем не отличается от устройства электрического пола. Обычно на железобетонное перекрытие укладывается утеплитель толщиной

Признаки наиболее часто встречающихся неисправностей легкового автомобиля, влияющих на безопасность движения, которые легко выявит любой водитель

Признаки наиболее часто встречающихся неисправностей легкового автомобиля, влияющих на безопасность движения, которые легко выявит любой водитель
1. Мелкая вибрация автомобиля при определенной скорости (например, от 60 до 70 км/час) указывает на дисбаланс колеса (любого).

Признаки наиболее часто встречающихся неисправностей легкового автомобиля, влияющих на безопасность движения, которые легко выявит любой водитель

Признаки наиболее часто встречающихся неисправностей легкового автомобиля, влияющих на безопасность движения, которые легко выявит любой водитель
1. Мелкая вибрация автомобиля при определенной скорости (например, от 60 до 70 км/час) указывает на дисбаланс колеса (любого).

Опорные элементы

Опорные элементы
Основные опорные поверхности затворной коробки, которые воспринимают всю нагрузку в момент выстрела, – щиток и ось вращения. Сказанное иллюстрирует рис. 4.
Рис. 4: Величины и направления сил, действующих за затворную коробку вертикалки во время выстрела

Устройство автомобиля — схемы работы узлов и агрегатов

Устройство автомобиля – совокупность сложных систем и механизмов. Можно ли в этом разобраться? Или это удел опытных, квалифицированных автослесарей? В конструктивных азах, схеме работы узлов и агрегатов должен ориентироваться любой автомобилист.

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

На нашем сайте Вы найдете много полезной информации по уходу и обслуживанию за своим автомобилем, покупке и продаже, тюнингу и вождению, конкретным маркам машин. Приятного просмотра!

Среднестатистическую машину условно делят на несколько взаимосвязанных частей.

Кузов автомобиля

Кузов является несущей конструкцией.В кузове размещаются пассажиры и груз. Как правило, он прикреплен к раме. Но есть и так называемые безрамные кузова, с которыми соединены все важные системы машины.

Форма кузова зависит от производственной технологии, используемых материалов. Для продления его долговечности применяют антикоррозийную обработку.

Легковые авто по форме кузова делятся на седаны, универсалы, хетчбэки, минивэны, купе, микроавтобусы и т. д. Некоторые из них, фастбэк и родстер, производятся до сих пор, но встречаются реже.

Устройство кузова автомобиля предполагает наличие одно-, двух- или трёх объемных форм. Это зависит от количества фигур в силуэте, которые можно различить, взглянув на авто сбоку.

Устройство ходовой автомобиля

Ходовая часть – узлы и агрегаты, благодаря взаимодействию которых авто может перемещаться из точки А в точку Б.

Основные элементы ходовой части:

  • Передняя подвеска.
  • Задняя подвеска.
  • Колеса.

В устройство ходовой автомобиля в вышеупомянутый список иногда добавляют раму и балки мостов. Итак, за счет этих элементов авто перемещается, но при этом уровень комфорта водителя и пассажиров может существенно отличаться.

Кузов связан с ходовой частью с помощью подвесок и колес. При езде возникают медленные и быстрые колебания. От них защищают мягкие сиденья, опорные подушки мотора и КПП, подвеска и колеса.

Устройство легкового автомобиля включает в себя зависимую либо независимую подвеску. В независимой подвеске у каждого колеса есть отдельное крепление.Рассматривая устройство подвески автомобиля, в большинстве случаев передняя подвеска современных транспортных средств независимая, задняя — зависимая.

Рассмотрим конструкцию передней подвески. Благодаря упругим элементам, пружинам и амортизаторам, снижаются

нагрузки, передающиеся на кузов. Если пружина смягчает удары, то амортизатор предотвращает последующее раскачивание. При этом стабилизатору поперечной устойчивости также отводится важная роль – уменьшение крена во время поворота.

Передние колеса образуют с горизонтальной и вертикальной плоскостями небольшой угол, это сделано с целью снижения сопротивления движению, уменьшения износа шин и расхода топлива.

Передние колеса немного наклонены, за счет чего и обеспечивается их стабилизация.

Задняя подвеска в большинстве современных машин зависимая. Используются листовые или пружинные рессоры, а колебания гасятся с помощью амортизаторов.

Вы наверняка слышали о развале и схождении колес. Что это значит? Угол, который образует поверхность колеса и вертикальная плоскость именуют развалом. Зачастую он варьируется от 1 до 2°.

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

В устройстве легкового автомобиля особая роль отведена колесам, которые контактируют с поверхностью дороги. Колесо – диск с ободом и шина. В большинстве случаев используются бескамерные шины. Все шины имеют определенную маркировку, где указана их ширина и посадочный диаметр.Очень важно иметь правильное давление в шинах.

Рулевое управление

Как же водитель поворачивает колеса? Правильно, с помощью руля. В  рулевое устройство автомобиля входят механический редуктор и совокупность тяг. Угол поворота колес несколько отличается, чтобы не возникало бокового скольжения. Это обеспечивается системой тяг, которую именуют рулевой трапецией.

Чтобы облегчить поворот рулевого колеса, используют гидроусилитель. Кстати, гидроусилитель руля также смягчает удары, передающиеся на рулевое колесо при наезде на неровности. Его конструкция может существенно отличаться. Первый прототип гидроусилителя руля был использован на Чайке. Обслуживание данной системы предполагает своевременную замену жидкости.

В настоящее время,часто, вместо гидроусилителя используют электроусилитель. Его предназначение аналогичное, но работает он по-другому. Электроусилитель, как правило, установлен на рулевом валу. Для соединения его частей используют торсионный вал, в котором имеется датчик, корректирующий крутящий момент.

 Тормозная система

Устройство тормозной системы автомобиля позволяет корректировать скорость машины, добиваться её полного замедления. За создание тормозной силы отвечает специальный колесный механизм, трансмиссионный тормоз-замедлитель. Также можно использовать так называемое торможение мотором.

Тормозную систему условно делят на рабочую, запасную и стояночную. Фактически это важнейшее средство, обеспечивающее активную безопасность. Для повышения эффективности тормозной системы используют вспомогательные механизмы – усилитель тормозов, антиблокировочную систему.

Благодаря тормозному механизму рабочей системы создается момент, необходимый для полной остановки авто. Он находится непосредственно на колесе и может быть как барабанным, так и дисковым.

Современные машины чаще всего оснащаются дисковым тормозным механизмом. Он состоит из диска, который вращается, и 2-х колодок, находящихся во внутренней части суппорта. Для крепления суппорта используют кронштейн, а в его пазах имеются цилиндры, прижимающие колодки непосредственно к диску.

Излишний нагрев тормозного диска недопустим, поэтому он охлаждается воздухом. Иногда чтобы улучшить отвод тепла, диск делают вентилируемым.

Трансмиссия — коробка передач, сцепление

Устройство автомобиля продумано таким образом, чтобы трансмиссия передавала крутящий момент двигателя на ведущие колеса.

Устройство трансмиссии автомобиля выполняет три основные функции:

  • Передача крутящего момента мотора на ведущие колеса.
  • Изменение величины и направления крутящего момента.
  • Распределение крутящего момента.

Зачастую на современных машинах используют механическую трансмиссию. Если крутящий момент изменяется в автоматическом режиме, значит использована автоматическая трансмиссия.

Ведущие колеса могут быть как задними, так и передними. Также существуют модели с постоянным или подключаемым полным приводом.

Рассмотрим трансмиссию авто с задним приводом. Она состоит из сцепления, коробки передач, карданной и главной передач, дифференциала и полуоси.

Чтобы ненадолго отсоединять мотор от трансмиссии и плавно соединять их во время переключения передач используют сцепление. Оно же предохраняет трансмиссионные элементы от перегрузки.

С помощью коробки передач корректируют крутящий момент, скорость и направление движения авто. Очень удобна и популярна АКПП.  Автоматическая коробка переключения передач состоит из нескольких основных элементов: системы управления, гидротрансформатора, механической части.

Мотор – «сердце» авто

Традиционный двигатель внутреннего сгорания – источник механической энергии, которая возникает при сгорании топлива. Бак с топливом периодически пополняется.

Устройство двигателя автомобиля и основные разновидности моторов:

1. Двигатель внутреннего сгорания. Во время работы двигателя сгорает топливо, происходит преобразование химической энергии. Сегодня распространены поршневые, роторно-поршневые и газотурбинные ДВС. Широко распространены поршневые моторы, работающие за счет сгорания жидкого топлива – бензина или солярки. Иногда в качестве топлива используют газ.

2.Стоит отметить и набирающий популярность в последние годы электродвигатель. Для его работы нужна электрическая энергия. Источник – топливные элементы либо аккумуляторы. При этом запас хода редко бывает большим, что не особо удобно: нужна постоянная подзарядка источника электроэнергии.

3.Третья разновидность мотора – гибрид. Это ДВС, работающий в паре с электродвигателем. Их компоновка бывает последовательной и параллельной.

Ранее за приготовление топливовоздушной смеси отвечал карбюратор, в котором и происходило смешивание топлива с воздухом. Карбюраторы были востребованы до 80-х годов прошедшего столетия, пока им на смену не пришла инжекторная система. Главное отличие инжекторной системы от карбюраторной – принудительный впрыск топлива в цилиндры с использованием форсунок.

Преимущества инжекторной системы:

  • Снижение потребления топлива.
  • Упрощенный запуск мотора.
  • Обширные возможности для управления ДВС.
  • Впрыск не нужно регулировать в ручном режиме.

Двигатель запускается с помощью стартера, раскручивающего коленвал. Стартер может быть инерционным, комбинированным или прямого действия. Он работает за счет аккумуляторной батареи.

Аккумуляторная батарея подзаряжается специальным генератором. Генератор способствует нормальной работе всех электропотребителей.

Говоря об электронном устройстве автомобиля, важная роль отведена системе зажигания, бортовому компьютеру, диагностической системе, бесперебойная работа которых и обеспечивается генератором.

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

Что ж, теперь вы знаете азы устройства легкового автомобиля. Но это лишь малая толика полезной информации, связанной с машинами.

Чтобы овладеть этими данными в полном объеме, спешите изучить уникальный в рунете видеокурс Дмитрия Кирьянова: «Изучаем Автомобиль».

Многие новички уже успели убедиться в его эффективности! Курс представляет профессиональный автомеханик с более чем 20 летним стажем.Четыре часа полезной информации из собственного опыта.

Курс для тех, кто не хочет попадаться на уловки СТО, для тех, кто обеспокоен своей личной безопасностью, для тех, кто хочет научиться слышать то,что «говорит» ему автомобиль. Переходите по ссылочке выше и читайте,смотрите презентацию.

Не забудьте поделиться статьей в социальных сетях,нажав кнопочки ниже,оставить комментарий.

Заранее Спасибо.

Моя другая машина cdr. В Scheme автомобиль, cdr и минусы — это… | by Александра Сикора

Александра Сикора

·

Подписаться

3 минуты чтения

·

23 января 2018

In Scheme, car , cdr и cons являются наиболее важными функциями. Функция cons используется для создания пар, а пары используются для построения списков. car и cdr используются для доступа к данным и возврата соответственно первого и второго элемента из пары.

Имя функции cons является сокращением слова построить . Происхождение названий car и cdr немного историческое и происходит от IBM 704. car является аббревиатурой от фразы Содержание адресной части реестра ; а cdr является аббревиатурой от фразы Содержание декрементной части регистра . Эти фразы относятся к конкретным аппаратным средствам самого раннего компьютера, на котором был разработан язык Лисп. В настоящее время более подходящими именами для этих функций были бы 9.0015 сначала и остальное .

Функция cons принимает любые два значения, а не только список для второго аргумента. Два значения, соединенные с минус , печатаются в круглых скобках с точкой, потому что интерпретаторы Лиспа используют . для визуального разделения элементов в паре. Например:

 > (против 1 2) 
(1 . 2)

Списки строятся поверх пар. Например, список '(a b c) строится путем вычисления следующего выражения:

 > (cons 'a (cons 'b (cons 'c'()))) 
(a b c)

Процедура списка list предоставляет ярлык для создания списков:

 > (list 'a 'b c) 
(a b c)

То же самое можно сделать с помощью '(a b c) .

Добавление значения в список можно сделать следующим образом:

 > (cons 1 '(2 3 4)) 
(1 2 3 4)

Мы можем поиграть с функцией cons . Обратите внимание, что выражение (cons '(a b c) ()) создает пару, первый элемент которой является списком . Таким образом, он оценивается как:

 ((a b c)) 

() означает ноль, поэтому результатом является пара (значение, ноль) . Обратите внимание на двойные фигурные скобки в возвращаемом выражении. Рассмотрим еще примеры:

 > (cons '(a b c) '(d)) 
((a b c) d)

Результатом выше является список из двух элементов — список в качестве первого и d в качестве второго. Это эквивалентно [[a, b, c], d] .

Является ли данная пара списком, зависит от того, что хранится в поле cdr . Правильный список определяется рекурсивным способом как и пустой список () или пара, второй элемент которой является правильным списком . Цепочка пар, которая не заканчивается пустым списком, называется неправильным списком .

Как упоминалось ранее, автомобилей пары являются его первым товаром. А в случае списков это заголовок списка. Таким образом, вагон списка (а б в г) есть а и вагон пары (а. б) тоже а .

автомобиль это неразрушающий что означает, что он не мутирует пару, удаляя из нее первый элемент, он только повторяет то, что есть. После того, как автомобиль был применен к списку, список остается таким же, как и был.

Функция cdr возвращает второй элемент пары, который в случае списков является хвостом списка. Таким образом, применяя cdr function to the examples above we will get:

 > (cdr '(a b c d)) 
(b c d)> (cdr '(a . b))
b

Like car , cdr does not удалить любые элементы из списка.

Функции набор-автомобиль! и set-cdr! используются для установки соответственно первого и второго элемента пары. И в отличие от car и cdr они фактически мутируют пару. Применив их к спискам, мы получим следующие результаты:

 > (define x '(a b c d)) 

Сначала мы определили новый список x, и обозначение выше означает x = [a, b, c, d] .

 > (set-car! x 'z) 
> x
(z b c d)> (set-cdr! x '(y x))
> x
(z y x)

Если мы установим car списка как любое возможное значение остается списком, но если мы попытаемся установить cdr списка как значение, не входящее в список, мы получим пару взамен.

 > (set-cdr! x 'a) 
(z.a)

Введение в схему и ее реализацию

Введение в схему и ее реализацию — снова список
Перейти к первому, предыдущему, следующему, последнему разделу, оглавлению.


Снова список

Предположим, мы хотим составить список символов, печатными именами которых являются английские
слова для первых пяти целых чисел. Мы могли бы сделать это с помощью цитирования,
конечно вот так:

Схема>(определить firstfive '(один два три четыре пять))
#пустота
Схема>первая пятерка
(один два три четыре пять)
 

Нам не нужно указывать каждый символ отдельно. Внутри котировки
выражение, предполагается, что все является литеральными данными, а не выражениями для оценки.

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

Схема> (определить firstfive (перечислить «один», «два», «три», «четыре», «пять»))
#пустота
Схема>первая пятерка
(один два три четыре пять)
 

Поскольку список является процедурой, вычисляются выражения ее аргументов.
Мы используем кавычку вокруг каждого выражения, чтобы оно возвращало
указатель на соответствующий символ, а не на значение переменной
под тем же именем.

Это работает независимо от того, является ли переменной с таким именем, потому что
имена символов и имена переменных — совершенно разные вещи.

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

Неоднородные списки

Поскольку Scheme динамически типизируется, мы можем поместить любой объект в список.
Пока что мы составили список целых чисел и список символов. Мы также можем
составить список различных вещей, например, список целых чисел,
символы и списки.

Схема>(определить смешанные5' (один 2 (три и а) "четыре" 5))
#пустота
Схема>смешанный5
(один 2 (три и а) «четыре» 5)
 

Здесь мы создали смешанный список, первым элементом которого является символ,
второе — целое число, третье — список символов, четвертое
— это строка, а пятое — другое целое число. (Технический термин
смешанный список является «гетерогенным списком».)

Мы можем нарисовать это так:

       +-----+
смешанный5 | +--+-->+---+---+ +---+---+ +---+---+ +---+---+ +---+-- -+
       +-----+ | + | +-+->| + | +-+->| + | +-+->| + | +-+->| + | * |
                 +-+-+---+ +-+-+---+ +-+-+---+ +-+-+---+ +-+-+---+
                   | | | | |
                  \|/ \|/ | \|/ \|/
                  один 2 | "четыре" 5
                                         |
                                        \|/
                                       +---+---+ +---+---+ +---+---+
                                       | + | +-+->| + | +-+->| + | * |
                                       +-+-+---+ +-+-+---+ +-+-+---+
                                         | | |
                                        \|/ \|/ \|/
                                       три и
 

Обратите внимание, что мы рисуем символы ( один , три , и , и
a ) как простые последовательности символов. это просто рисунок
соглашение. Они действительно объекты, как и пары. Мы рисуем строки
аналогично, но с двойными кавычками вокруг них. Не дайте себя обмануть — эти
также являются объектами в куче. Мы просто рисуем их таким образом, чтобы сохранить
картинка от загромождения.

Операции со списками

Мы уже видели две процедуры обработки списков, которые вы будете часто использовать.
автомобиль и cdr . car принимает указатель на пару, и
извлекает значение своего первого ( car ) поля. cdr дублей
указатель на пару и возвращает значение второго ( cdr ) поля.

(Возможно, было бы лучше, если бы автомобиль сначала назывался .
а cdr назывался rest , так как это больше
наводит на мысль о том, как они используются: указатель на первый элемент в
список и указатель на пару, которая возглавляет остальную часть списка.)

Учитывая наш список, хранящийся в mixed5 , мы можем извлечь части
список с использованием car и cdr .

Схема>(машина смешанная5)
один
Схема>(cdr смешанный5)
(2 (три и а) «четыре» пять)
 

Используя car и cdr несколько раз, мы можем извлечь
вещи за пределами первого элемента. Например, взяв cdr
из cdr списка пропускает первые два элемента и возвращает
остальные:

Схема>(cdr (cdr смешанный5))
((три и а) "четыре" 5)
 

Взяв машину из того списка (то есть машина из cdr
из cdr ) возвращает первый элемент в этом списке:

Схема>(вагон (cdr (cdrmixed5)))
(три и а)
 

Мы можем продолжать делать это, например, взяв второй элемент этого
sublist, взяв машину своего cdr.

Схема>(автомобиль (cdr (автомобиль (cdr (cdrmixed5)))))
и
 

Это становится утомительным и запутанным — слишком много вложенных процедур.
которые делают слишком мало на каждом шаге, поэтому Scheme предоставляет несколько процедур
которые выполняют две операции со списками сразу. Два самых важных
кадр и cddr .

cadr берет car cdr , что дает вам
второй пункт в списке. cddr берет cdr из cdr ,
пропуская первые две пары в списке и возвращая остальную часть списка.

Это позволяет нам сделать то же самое, что мы сделали выше, немного более лаконично.
и читаемо:

Схема>(кадр(автомобиль(кддр смешанный5)))
и
 

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

Конечно, даже если схема не предоставила кадров и кадров ,
вы можете сами написать их в терминах car и cdr :

(определить (кадр х)
   (автомобиль (cdr х)))
(определить (cddr x)
   (кдр (кдр х)))
 

Схема фактически предоставляет предопределенные операции со списками для всех комбинаций.
до четырех автомобилей и cdr . Например, кададр
берет кадров из кадров . (Схема именования
что шаблон a и d отражает эквивалент
вложенность вызовов на car и cdr .)

Вы, вероятно, не захотите возиться с большинством из них, потому что
имена не очень интуитивно понятны. Две процедуры, которые стоит знать
list-ref и list-tail .

(список-ссылка список n ) извлекает n
элемент списка list , что эквивалентно n-1
приложения cdr , за которыми следует автомобиль . Например,
(list-ref '(a b c d e) 3) эквивалентно
(автомобиль (cdr (cdr '(a b c d e)))) , а возвращает d .)

По сути, вы можете индексировать список, как если бы это был массив, используя
список-ссылка . (Разумеется, время доступа к элементу списка
линейна по индексу элемента. Если вам нужно постоянное время
доступ, вы можете использовать векторы, т. е. одномерные массивы.) Обратите внимание, что
нумерация начинается с нуля, поэтому (list-ref lis 3) возвращает
четвертый элемент lis . Это согласуется с
индексация векторов, которые также отсчитываются от нуля, а также отражают
количество cdr операций.

(конец списка список n ) пропускает первый n
элементов списка и возвращает указатель на остальные, что эквивалентно
к повторным применениям cdr . (Это стандартная схема R4RS,
но не по схеме IEEE. Если ваша схема не предоставляет list-tail ,
Вы можете легко написать свой собственный.)

Эти две процедуры могут значительно прояснить, что вы делаете.
при извлечении элементов из вложенных списков. Предположим, что у нас есть
список foo , который представляет собой тройной вложенный список — список
списки списков, и мы хотим извлечь второй элемент из
список нижнего уровня, который является третьим элементом среднего уровня
список, который является четвертым элементом самого внешнего списка.

Мы могли бы написать (car (cdr (car (cdr (cdr (car (cdr) (cdr (cdr foo))))))))) ,
но это очень тяжело читать. Если мы используем кадров , кадров и
cadddr , мы можем сделать его более читабельным с помощью одной функции
вызов на каждом уровне структуры: (кадр (каддр (кадддр фоо))) .
Но все же понятнее написать
(ссылка-ссылка (ссылка-списка (ссылка-списка foo 4) 3) 2)

или (с отступом)

(ссылка-ссылка (ссылка-списка (ссылка-списка foo 4)
                    3)
          2)
 

list-ref и list-tail гораздо удобнее, чем
такие вещи, как caddr , когда индексы в списке меняются при запуске
время. Например, мы могли бы использовать индексную переменную i (или
какое-то другое выражение, которое возвращает целое число), чтобы выбрать
i -й член списка: (list-ref foo i) . Письмо
это с car и cdr потребует записи цикла
или рекурсия для выполнения n-1 cdr s и car .