1 кол2 пара3 трояк4 хорошо5 отлично (1голосов, средний: 5,00 out of 5)
Загрузка...

Лишь одни избранники в состоянии передать потомству не только содержание, но и форму своих мыслей и воззрений. И. С. Тургеневу принадлежит замечательная формула: язык = народ. Большую часть жизни проведший за границей, знаток многих иностранных языков, И. С. Тургенев не переставал восхищаться русским языком, называя его «великим и могучим», связывая с ним надежды на светлое будущее России: «но нельзя не верить, чтобы такой язык не был дан великому народу».

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

[smszamok]

молодым литераторам, Тургенев пишет: «Берегите наш язык, наш прекрасный русский язык, этот клад, это достояние, переданное нам нашими предшественниками… обращайтесь почтительно с этим могущественным орудием; в руках умелых оно в состоянии совершать чудеса!»

Сам великий писатель виртуозно владел этим орудием. «Говорят, он удивительно рассказывал… в его литературе чувствуешь коренной великорусский говор… с великою подлинностью и тем удивительным равнодействием культуры и стихии, природы, какое редко встретишь. В его книгах говорит барин, взявший все теплое и живое у мужика, леса, зари… его прелесть в естественности», — писал Б. Зайцев. И в романе «Отцы и дети» И. С. Тургенев остается истинно великим художником слова. Такой тонкий стилист, как А. П. Чехов, восторгался лирической взволнованностью и задушевностью авторского повествования в романе, а о сцене смерти Базарова воскликнул: «Это черт знает как сделано, просто гениально!»

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

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

В речи Базарова много научных слов и выражений, связанных с его занятиями естественными науками, в частности медициной («симптома, «человеческий экземпляр», «опыты», «телесные недуги», «латинская терминология»), а также политических и философских выражений, указывающих на особенности его мировоззрения («нигилизм», «доктринерство», «община», «парламентаризм»). Базаров часто использует выразительные оценочные эпитеты, выявляющие его отношение к разным людям: «архаическое явление» (о Павле Петровиче); «славный малый», «божья коровка» (о Николае Петровиче); «баба с мозгом», «тертый калач» (об Одинцовой); «мя-конький, либеральный барич» (об Аркадии), «какая хорошенькая» (о Фенечке).

Для языка Базарова характерно органичное взаимодействие литературного языка с лучшими образцами народной лексики, ему близка и понятна разговорная народная интонация, при которой, прежде чем быть произнесенным, взвешивается каждое слово. Герой часто употребляет пословицы и поговорки: «бабушка надвое сказала»,  «шила в мешке не утаишь»,  «там хорошо, где нас

125

нет», «мертвый живому не товарищ», «днем с огнем не сыскать». Базаров часто слегка изменяет народные выражения, естественно вводя их в свою речь: «обломаю дел много», «для-ради важности», «дурь из него вся вышла», «бедность, говорят, не порок», «в тихом омуте… ты знаешь…», «у твоего отца, видно, губа не дура», «не богам же, в самом деле, горшки обжигать» и другие. О простоте и демократичности героя и в то же время о его пренебрежении к утонченной, манерной речи дворян свидетельствуют просторечные, бытовые, подчас грубоватые слова и выражения: «мать у меня такая сердобольная», «черт меня дернул», «нет, это дудки», «коли брюха не отрастил», <барчуки проклятые», «махнем», «плюхнуть», «шлялись», «что за охота», «нора бросить эту ерунду», «княжеское отродье», «слыхали мы эту песню», «вилять хвостом не стану».

Острый ум Базарова, способность логично развивать свою мысль, обоснованно возражать проявляются в его «собственных» афоризмах, выразительных и метких: «Природа не храм, а мастерская, и человек в ней работник»; «Настоящий человек тот… которого надобно слушаться или ненавидеть»; «Попал под колесо — туда и дорога»; «Я ничьих мнений не разделяю; я имею свои»; «Порядочный химик в двадцать раз полезнее всякого поэта»; «Старая штука смерть, а каждому внове».

Интересно, что интонация речи Базарова меняется в зависимости от того, к кому она обращена, С Павлом Петровичем он говорит просто в прямо, высказывает то, что думает, или с явной насмешкой и даже презрительно-иронически, снижая таким образом «высокий тон» речи своего противника. В беседах с Николаем Петровичем ощутимы снисходительно-почтительные интонации, с Аркадием — назидательные ноты, а в разговорах с отцом присутствует снисходительно-добродушная тональность, прорывающаяся сквозь напускную сухость и холодность.

Речь Кирсановых определяется их характерами и мировоззрением. Павел Петрович — главный идейный противник Базарова — все время ершится, затевает споры и при этом, как барин-аристократ, надменен, сохраняет «высокий стиль», витиеватость: «Я имею честь предложить вам следующее», «смею сказать», «за сим, милостивый государь, мне остается только благодарить вас», «чувствительно вам обязан». Эти выражения подчеркивают изысканность и холодно-бездушное обращение. Павел Петрович называет себя «человеком либеральным и любящим прогресс» и старается показать это в разговоре, используя слова, обороты, характерные для языка тогдашней дворянской интеллигенции: «Личность, милостивый государь, — вот главное… ибо на ней все строится»; «логикаистории», «цивилизация», «материализм». Излюбленное словечко («принсип») он произносит на французский манер. Вообще Павел Петрович часто прибегает к французскому языку, особенно когда затрудняется точно выразить свою мысль по-русски.

Николай Петрович робок, уступчив, у него нет собственного мнения, и потому его речь отличают неуверенность, нечеткость, мягкость, порой многословие: «Только вот чего я в толк не возьму. Кажется, я все делаю, чтобы не отстать от века; крестьян устроил, ферму завел, так что даже меня во всей губернии красным величают; читаю, учусь, вообще стараюсь стать в уровень с современными требованиями, — а они говорят, что песенка моя спета. Да что, брат, я сам начинаю думать, что она точно спета».

[/smszamok]

Характер Аркадия еще не сформировался, ионпокамыс-лит и говорит с чужого голоса, слепо подражая Базарову.

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

1 кол2 пара3 трояк4 хорошо5 отлично (Еще не оценили)
Загрузка...

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

Примеры аргументов, которые є выражениями, нам знакомые из вызовов стандартных подпрограмм: sqrt(b*b-4*a*c) , chr (ord ( ‘ 0 ‘ ) +1) , writeln (x*x) и т.п..

В вызовах нашей процедуры min первые два аргументы тоже могут быть произвольными выражениями типа integer, например min (10+х,3*х,v), где х, v — имена целых сменных.

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

ПОДСТАНОВКА ЗА ССЫЛКОЙ

Параметр-сменная во время выполнения подпрограммы обозначает одну и ту же сменную, которую обозначает соответствующий ему аргумент, указанный в вызове. Чтобы обеспечить это, к памяти подпрограммы передается ссылка на эту сменную. Соответствующим аргументом может быть ім ‘я ЗМІННОЇТОГО же типа, что и у параметра.

Примеры аргументов, которые отвечают параметрам параметр-сменным: readln(a,b,c) или іпс(х), а также третий аргумент в вызовах нашей процедуры min.

Этот способ передач данных в подпрограмму называется подстановкой аргумента на место параметра за ссылкой.

ЧТО ВЫБИРАТЬ?

Если после вызова подпрограммы используется старое значение аргумента или аргументом может быть произвольное выражение, ему имеет відпо-;»;Яати параметр-значение.

Вспомогательные алгоритмы, или подпрограммы

Если после вызова подпрограммы должны использоваться новое значение аргумента, полученное при выполнении вызова, то параметр надо объявить как параметр-тінну.

Первое правило имеет исключения, связанные с массивами (см. раздел 7). Параметры х и у процедуры min (см. выше) иллюстрируют первое правило, параметр z — второе.

ПАРАМЕТРА-КОНСТАНТЫ

В языке Turbo Pascal есть еще один разновидность параметров — параметра-константы; они объявляются со словом const в начале. Аргументом для них может быть произвольное выражение того же типа, что и параметр.

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

1 кол2 пара3 трояк4 хорошо5 отлично (Еще не оценили)
Загрузка...

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

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

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

program MinOfTwoNumbers; var a, b : integer;

{ функция вычисления минимума }

function min(x,y : integer) : integer;

begin

if x<y then min:=x else min:=y

end;

Begin

wrіteln(‘Задайте два целых числа:’)

readln(arb);

{вызов функция-аргумент в вызове процедуры}

writeln(‘Минимальное Из них: ‘, min(a,b));

End.H

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

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

Проиллюстрируем выполнение приведенной программы, считая, что сменные а таЬ во время введения получают значение 1 и 2. Сменная, одноименная с функцией, имеет «собственную» участок пам ‘яти и в таблице обозначенная min. min. Когда заканчивается вызов min, п значения присваивается дополнительной сменной, которая есть в «машинной» программе и обозначенная «Аргумент writeln» (см. табл. на с. 106).

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

Примеры использования вызовов min

1.         Если с какой-то целью нам надо вычислить квадрат значения, которое возвращает из вызова min, или прибавить к нему 1, можно написать выражение sqr (тел (a,b)) или, соответственно,min (a,b) +1.

2.         Для вычисления минимального с трех целых значений a, b, с можно записать такие вызовы функции min.

m:=min(a,b);  m:=min(m,c)

Вместе с тем, минимальное с трех целых значений a, b, с является значением выражения min (min (а,b) , с). При его вычислении, когда начинает выполняться «внешний» вызов min, надо вычислить значения первого аргумента, а им есть «внутренний» вызов min (a,b). Поэтому выполняется этот «внутренний» вызов. Лишь потом значения, которые возвращает из него, присваивается первому параметру в выполнении «внешнего» вызова.

Аналогично минимальное с четырех значений задает выражение min (min (a,b) ,min (c,d)).

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

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

Напишем функцию, которая вычисляет признак,  можно ли с трех отрезков образовать треугольник. Но возвращать из нее будем не булеве значение этого признака, а целое (0 отвечает false, 1 — true). Это разрешит просто напечатать сумму этих признаков:

program NumberOfTriangles;

var a, b, c, d : integer; function triangle(x, y, z : integer) : integer; begin

triangle:=ord{(x+y>z) and (x+z>y) and (y+z>x)) end; Begin

wrіteln(‘Задайте четыре додатних целых числа:’) readln(a,b,crd);

wrіteIn(‘Количество треугольников: ‘, triangle(a,b,c)+triangle(a,b,d)+ triangle(a,c,d)+triangle(b,c,d)) End.

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

Записывать имя функции в вызовах процедур введение запрещено (в отличие от записи в левых частях операторов присваивания).

10 Окт »

Анализ эпизода в последней главе романа Отцы и дети

Автор: Основной язык сайта | В категории: Примеры сочинений
1 кол2 пара3 трояк4 хорошо5 отлично (6голосов, средний: 4,67 out of 5)
Загрузка...

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

Во-первых, внимательно приглядимся к ее композиции. Главу обрамляют два пейзажа. Открывает дивный, чисто русский, зимний: «Стояла белая зима с жестокою тишиной…». Звучит как музыка, как бы предвещая мелодичность и ритмический строй стихотворений в прозе. Второй пейзаж, завершающий главу и роман в целом, насквозь пронизан лиризмом и элегической печалью о быстротекущем времени, мыслью о всепримиряющей вечности, о бессмертной силе любви и о «жизни бесконечной».

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

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

Перед тем как нарисовать небольшое сельское кладбище и одинокую могилу Базарова, Тургенев, то усиливая, то ослабляя иронию, рассказывает о дальнейшей судьбе героев: Одинцовой, которая доживет со своим мужем, «пожалуй, до счастья… пожалуй, до любви»; в том же ключе сообщается и о княжне Х…ой, забытой «в самый день ее смерти», и о Петре, совсем окоченевшем «от глупости и важности».

«Немножко грустно и, в сущности, очень хорошо» описаны семейная идиллия Кирсановых — отца и сына — и счастливое материнство Фенечки и Катерины Сергеевны.

В рассказ о жизни Павла Петровича за границей врываются наряду с иронией грустные ноты, и внимательный читатель заметит не только серебряную пепельницу в виде мужицкого лаптя, но и его трагическое одиночество: «жить ему тяжело… тяжелей, чем он сам подозревает… Стоит взглянуть на него в русской церкви, когда, прислоняясь в сторонке к стене, он задумывается и долго не шевелится, горько стиснув губы, потом вдруг опомнится и начнет почти незаметно креститься…»

Мягкий юмор, с которым повествует Тургенев о своих героях, сменяется резкой иронией и даже сарказмом, когда он пишет о дальнейшей судьбе «последователей Базарова» — Ситникове и Кукшиной. Здесь и в авторской речи сатирически звучит слово «ирония»: «Говорят, его (Сит-никова) кто-то недавно побил, но он в долгу не остался: в одной темной статейке, тиснутой в одном темном жур-нальце, он намекнул, что побивший его — трус. Он называет это иронией…»

И вдруг интонация резко меняется. Торжественно, грустно и величественно рисует Тургенев могилу Базарова. Финал напоминает мощную, страстную музыку Бетховена. Автор словно с кем-то горячо спорит, страстно и напряженно размышляет о мятежном человеке, на могилу которого он привел читателя, о его неутешных родителях: «Неужели их молитвы, их слезы бесплодны? Неужели любовь, святая, преданная любовь не всесильна?..»

Повторы, восклицания, вопросы — все это передает драматизм раздумий автора, глубину и искренность его чувств. Так можно писать лишь о дорогом и очень близком человеке. Можно по-разному трактовать заключительные строки романа, но одно несомненно — Тургенев, прощаясь со своими героями, еще раз отчетливо выразил свое к ним отношение и подчеркнул основную идею романа, которую, на мой взгляд, наиболее точно уловил критик Н. Н. Страхов: «Как бы то ни было, Базаров все-таки побежден; побежден не лицами и не случайностями жизни, но самою идеею этой жизни. Такая идеальная победа над ним возможна была только при условии, чтобы ему была отдана всевозможная справедливость… Иначе в самой победе не было бы силы и значения».[/rkey]

10 Окт »

Экономика Робинзона Крузо

Автор: Основной язык сайта | В категории: Европейская экономическая модель
1 кол2 пара3 трояк4 хорошо5 отлично (Еще не оценили)
Загрузка...

О жизни Робинзона Крузо ты безусловно читал в книжке Дениэля Дефо или смотрел фильм. После корабельной аварии Робинзон на безлюдном острове. Чтобы выжить, ему пришлось все необходимое добывать, выращивать, изготавливать самому. Количество вырабатываемых продуктов целиком зависело от индивидуального мастерства и практических привычек Робинзона, возможностей использования естественной среды и нехитрых приспособлений — орудий труда. Набор необходимых продуктов определялся его собственными нуждами. Экономисты называют такой способ хозяйствования натуральным.

Экономика на «Таинственном острове»

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

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

10 Окт »

Путешествие из настоящего в прошлый мир

Автор: Основной язык сайта | В категории: Государственная собственность
1 кол2 пара3 трояк4 хорошо5 отлично (Еще не оценили)
Загрузка...

Вообразим, что во время эксперимента с машиной времени произошла поломка. В давнее  прошлое попал экскурсионный автобус с 45 лицами разного возраста, профессий, пола. Они оказались на территории современной Украины. Вокруг их на сотни километров нет человеческих поселений. Рассчитывать на помощь напрасно. Остается действовать. Но с чего начать?

Прежде всего, надо добыть пищу и питьевую воду и запастись ими на некоторое время. Дальше — срочно строить жилье. А потом возникнет немало новых проблем. Среди тех, кто попал в необыкновенную ситуацию, окажутся больные и немощные, ленивые и трудолюбивые, честные и мошенники, профессионалы своего дела и бездари. У каждого из них свои привычки, нужды, взгляды на жизнь. Как организовать общую жизнь, по каким правилам? Кто будет устанавливать эти правила и контролировать их выполнение? Как и кто будет организовывать продуктивную работу и будет распределять произведенный продукт, будет предотвращать нападения хищных зверей и будет поддерживать людей в затруднительную минуту? На эти и много других вопросов необходимо срочно искать и давать ответы.

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

Попробуем поискать в литературе или истории опыт, который бы мог чем-то помочь в этой ситуации.

1 кол2 пара3 трояк4 хорошо5 отлично (3голосов, средний: 5,00 out of 5)
Загрузка...

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

Один из эпизодов, которым начинается роман И. С. Тургенева «Отцы и дети», — возвращение Аркадия Николаевича Кирсанова в имение своего отца Марьино. Сама ситуация «возвращения домой после долгого отсутствия» предопределяет отношение читателя к происходящему как к новому этапу в жизни молодого человека.

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

Проблема отношений «отцов» и «детей», отразившаяся в заглавии романа и составляющая основной конфликт его, — проблема вневременная, жизненная. Потому Тургенев отмечает типичность «небольшой неловкости*, которую ощущает Аркадий за первым после разлуки «семейным ужином» и «которая обыкновенно овладевает молодым человеком, когда он только что перестал быть ребенком и возвратился в место, где привыкли видеть и считать его ребенком. Он без нужды растягивал свою речь, избегал слова «папаша» и даже раз заменил его словом «отец», произнесенным, правда, сквозь зубы…».

Однако этому эпизоду в романе соответствует точная дата — 20 мая 1859 года, как бы диктующая необходимость исторического комментария ко всему содержанию романа, остро полемического, отражающего идейную борьбу 60-х годов, споры вокруг подготавливающейся крестьянской реформы. Не случайно основное действие романа происходит в «дворянских гнездах», а Николай Петрович Кирсанов уже в первом разговоре с сыном заводит речь о «хлопотах с мужиками». Важно отметить, что подобная конкретность не исключение, а скорее правило для романов Тургенева, очень точно отражающих время, в которое они написаны. И неудачное хозяйствование Николая Петровича, и то, что «толпа дворовых не высыпала на крыльцо встречать господ», — знаки времени, заключающие в себе скрытое сравнение с прежними временами.

Молодого Кирсанова встречают барин и слуга. Как ни странно, но разговор о новом поколении начинается именно с Петра, «в котором все: и бирюзовая сережка в ухе, и напомаженные разноцветные волосы, и учтивые телодвижения, словом, все изобличало человека новейшего, усовершенствованного поколения». Он не подходит «к ручке барича», а только издали кланяется ему, а к мужикам относится презрительно. Это вульгарное понимание «нового», «глупость и важность» свойственны не одному Петру. По той же причине столь же ироничны описания Кукшинойи Ситникова, «вытащивших», по выражению Писарева, идею Базарова «на улицу», опошливших его взгляды. Петр, конечно, представляет гораздо меньшую опасность для общества, чем мнимые единомышленники Базарова, но едва ли меньшую роль играет его комический образ. Петр встречает Кирсанова и Базарова в начале романа, он участвует как единственный «секундант» в одном из важнейших эпизодов — дуэли Базарова с Павлом Петровичем и, наконец, подобно Николаю Петровичу и Аркадию Николаевичу, женится.

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

Уже в первом эпизоде, говоря Аркадию о своих отношениях с Фенечкой, Николай Петрович переходит на французский язык, с появлением Павла Петровича в тексте появляются английские слова — и в речи персонажа, и в авторской речи. Так, европейское «shakehands» Павла Петровича столь же далеко от «рукопожатия», как далеко от поцелуя троекратное прикосновение Павла Петровича «до щек» племянника «своими душистыми усами».

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

Предыстория тургеневских героев, как правило, лишенных прямой авторской оценки, всегда значима. Их духовный мир тесно связан с обстоятельствами, в которых формируется их характер. Не случайно Аркадий, стремясь оправдать своего дядю в глазах друга, рассказывает ему историю Павла Петровича. Не случайно у главного героя романа — Евгения Васильевича Базарова -отсутствует предыстория.

Образ Николая Петровича Кирсанова обладает высокой степенью типичности. Этот человек не исключение, он таков, как многие, — из обычной дворянской семьи, получивший обычное для того времени образование, женившийся по любви и живший в своей деревне «хорошо и тихо». Он не преуспевает в хозяйственной деятельности, не живет, подобно брату, воспоминаниями яркой и бурной молодости. Но он неравнодушен к музыке, восхищается природой и в этом смысле гораздо более выражает суть своего поколения, чем Павел Петрович, постоянно декларирующий свои убеждения и привязанности, но, в сущности, равнодушный ко всему. Судьбы Павла Петровича и Николая Петровича иллюстрируют две возможности, два пути для людей одного поколения, точно так же, как и Аркадий с Базаровым. И близость Аркадия к отцу свидетельствует скорее о преемственности поколений, чем о консерватизме взглядов молодого Кирсанова.

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

По дороге в Марьино размышления Аркадия о необходимости преобразований сменяются восхищением представшей перед ним картиной природы: «…Апока он размышлял, весна брала свое. Все кругом золотисто зеленело, все широко и мягко волновалось и лоснилось под тихим дыханием теплого ветерка… Аркадий глядел, глядел, и, понемногу ослабевая, исчезали его размышления… Он сбросил с себя шинель и так весело, таким молоденьким мальчиком посмотрел на отца, что тот опять его обнял…».

Пейзаж в романе Тургенева служит выражению внутреннего мира героев, является одним из приемов создания образа. Не случайно именно «на фоне прекрасной природы» Тургенев выносит приговор Павлу Петровичу, не случайно природа, интересующая Базарова только в смысле практическом, в финале романа как будто бы последний раз и до конца противоречит его нигилистическим убеждениям. И то, что Аркадий не может устоять перед природой, с первых страниц романа указывает на необходимость переворота в его душе. Природа близка ему так же, как и его отцу.

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

«— Право, мне кажется, нигде в мире так не пахнет, как в здешних краях! Да и небо здесь…

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

—        Конечно, — заметил Николай Петрович, — ты здесь родился, тебе все должно казаться здесь чем-то особенным. ..

—        Ну, папаша, это все равно, где бы человек ни родился».

А вечером, когда Базаров уходит в свою комнату, Аркадием овладевает «радостное чувство» от ощущения «дома», той атмосферы теплоты и любви, которая соединяет его с детством. Аркадий вспомнил нянюшку Егоровну, «и вздохнул, и пожелал ей царствия небесного… О себе он не молился». Глубокая эмоциональная связь с миром детства и напускной нигилизм еще уживаются в Аркадии: он как будто по привычке молится за нянюшку, в отношении себя оставаясь атеистом.

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

9 Окт »

Пирамидальная сортировка

Автор: Основной язык сайта | В категории: Изучаем информатику
1 кол2 пара3 трояк4 хорошо5 отлично (Еще не оценили)
Загрузка...

Описанное здесь сортировка в среднем медленнее, чем быстрое, хотя и имеет сложность в наиболее плохом случае B(n\ogn) . Тем не менее этот алгоритм применяется для сортировки файлов и решение некоторых других задач. Пирамидальная сортировка (или сортировка с помощью груды) использует бинарное дерево (пирамиду). Рассмотрим цс понятие. Расположим элементы массива с индексами 1..к строками, удваивая количество элементов в строках: в первой строке — первый элемент (с индексом 1), во второму — с индексами 2 и 3, в третьему — с индексами 4-7, дальше— 8-15 и т.п.. Последняя строка может остаться неполным, Например, при п = 10 будет образована пирамида индексов, как на рисунке.

Рассмотрим пирамиду как бинарное дерево с корнем наверху и листвой внизу. Дерево образовано узлами, которые відловідають индексам, и связями между ними — дугами. Корнем дерева является узел 1. Узлы 2 и С назовем сыновьями узла І (их отца), узлы 4 и 5 — сыновьями 2 и т.п.. Узлы, которые не имеют сынов, называются листками (на рисунке это узлы 6-10. Итак, если узел и имеет сынов, то ими есть узлы с индексами 11 и 2/ + 1, а его отцом является узел с индексом / div 2.

Дальше будем рассматривать узлы дерева, которые содержат значение элементов массива с соответствующими индексами, Для сортировки важным есть упорядочения значений в массиве, за который при каждому возможному и исполняется неровность А\\ div 2] >/4[j], т.е. «сын не больше отца». Это свойство не касается лишь корня дерева, поскольку он не имеет отца. Дерево с этим свойством называют правильным, или правильной грудой. Рассмотрим пример правильного дерева, которое отвечает последовательности значений

Сортировка с помощью груды использует то, что корень правильной груды содержит ее максимальное значение. Сначала в массиве образуем правильную груду, дальше поменяем местами значения первого элемента массива (корня дерева) и последнего. Наибольшее значение займет «свое» последнее место в массиве, и дальше о нем можно забыть. Среди сдачи элементов массива восстановим основное свойство груды и обменяем местами значения первого элемента и теперь уже предпоследнего, и так будем действовать дальше, пока дерево не сократится до одного элемента. procedure   heapSort(var   A:alnt;   n:word);

var   j:word;    {индекс   последнего} begin

build(A,n);    {начальное   построение   хупи} for   j:=n   downto   2   do   begin swap(A[l],A[j]);

rebuild(A,1,j-1)    {восстановление  правильности} end end;

Сначала уточним процедуру rebuild восстановление правильности груды. Если значение в корневом узле изменилось, основное свойство в нем может не выполняться, поэтому по потребности больший из сынов обменивается с отцом, после чего основное свойство проверяется и восстанавливается для сына. Действия из восстановление правильности груды в части массива А]/], …, A[d] нетрудно уточнить рекурсивной процедурой.

  • procedure   rebuild(var  A:alnt;   f,d:word); var   maxSon:word;    {индекс   максимального   сына} begin
  • maxSon:=f;
  • if    (2*f<=d)and(A[f]<A[2*f])
  • then  maxSon   :=   2*f;
  • if    (2*f+K=d) and(A[maxSon]<A[2*f+1])
  • then maxSon:=2*f+1; if   maxSonOf   then   begin swap(A[f] r[maxSon]) ; rebuild<A,maxSon,d); end; end;
  • Приведенная процедура является примером так называемой «хвостовой ре-курсії», когда после рекурсивного вызова нет никаких действий. В подобных ситуациях рекурсию можно заменить циклом, условие завершения которого отвечает условию «дна рекурсн». Очевидно также, что перестройку дерева можно закончить, если значение максимального сына и отца местами не обменивались. В этой ситуации, чтобы прекратить выполнение цикла, присвоим индекса «отца» f значение за пределами части массива, который перестраивается. Итак, приведем нерекурсивный вариант процедуры rebuild, procedure   rebuild(var   A.alnt;    f,d:word); var  maxSon:word;    {индекс   максимального   сына} begin
  • while (2*f<=d)do begin
  • maxSon:=f;
  • if   <M?]<A[2*ff]) then maxSon:=2*f;
  • if    (2*f+K=d)andCA[raaxSon]<   A[2*f+1]) then maxSon:=2*f+l; if   maxSonOf   then  begin swap(A[f],A[maxSon]);
  • f :=maxSon  -{дальше  перестройка пирамиды сына} end
  • else   f:=d+l; end;
  • {2*f   >  d   или   A[f]    >= A[maxSon]} end;

В конце концов уточним начальное построение груды за процедурой build. Заметим, что в массиве с п элементами максимальным ‘индексом узла-отца есть п div 2. Итак, последовательно образуем правильные груды в піддеревах, корнями которых являются узлы п div 2, п div 2 — и,…, 1. Это разрешит утверждать, что построенный массив представляет собой правильную груду.

  • procedure build(var A:alnt; n:word); var и:word;
  • begin
  • for i:=n div 2 downto 1 do
  • rebuild(A,i,n); {перестройка чаотини массива}
  • end;

Оценим сложность алгоритма. Очевидно, что она прямо пропорциональная общему количеству вызовов rebuild. При выполнении build процедура rebuild вызывается п div 2 раза, а при выполнении цикла for процедуры treeSort — еще л — 2 раза, т.е. общее количество вызовов процедуры rebuild из других процедур есть ®(п).

Оценим сложность выполнения одного вызова процедуры rebuild. Заметим, что в цикле значения сменной f не менее чем удваивается, а цикл не будет продлеваться, если это значение станет больше d, которое не больше г. Итак, таких удвоений не может быть больше чем |_log2 п\ . Количество действий в теле цикла является константой, поэтому общая сложность имеет оценку 0{n\ogn). Высотой узла дерева называют количество ребер в наиболее длинном пути из этой вершины вниз к листкам; высоту корня называют высотой дерева. Дерево, которое образовано как пирамида с п узлов, имеет высоту log2 п .

9 Окт »

Быстрая сортировка

Автор: Основной язык сайта | В категории: Изучаем информатику
1 кол2 пара3 трояк4 хорошо5 отлично (Еще не оценили)
Загрузка...

Первый алгоритм быстрой сортировки 1960 года разработал Ч.А.Р. Хоар (CA.R.Hoare). Этот алгоритм есть одним из найпопу-лярніших, поскольку сравнительно нескладный в реализации, хорошо работает на разнообразных видах входных данных и не требует огромных объемов дополнительной памяти (кроме относительно небольшого стека).

Идея быстрой сортировки такая. В некоторый способ выбирается эталонное значение есть. Значение элементов массива А обмениваются так, что массив разбивается на две участка — левую и правую. Элементы в левом участке имеют значение не больше есть, а в правой — не меньше. После этого достаточно отдельно отсортировать эти две участка.

Существует простой, но довольно эффективный способ выбора есть в участке массива A[L],…, A[R]: есть = A[(L+R) div 2]. Для разбивки используются два индекса — «левый курсор» и и «правый курсор» j. Сначала i=L, j=R; дальше они двигаются навстречу друг другу в такой способ. Значение меньше есть («хорошие») в левой части пропускаются, а на «плохому» движение останавливается. Аналогично после этого в правой части пропускаются значение, которые большие есть. Если и еще не стал больше j, то это означает, что оба они указывают на «плохие» значение. Эти значения обмениваются местами, а курсоры сдвигают навстречу друг другу. Движение курсоров продлевается, пока и не станет больше j. Тогда все элементы от A[L] к А[ j] имеют значение не больше есть, а все от А [и] к A[R] — не меньше. Эти две участка, если их длина больше 1, делятся и сортируются рекурсивно. Если же участок имеет длину 1, то ее уже отсортировано.

Оформим сортировка части массива A [L], …, A[R] такой процедурой:

  • procedure   quicksort(var  A:alnt;   L,R:word); var   e:integer;    {эталонное   значение} и,j:word;    {левый   и   правый   курсоры) begin
  • и:=L;   j:=R; e:=A[(i + j)    div   2] ; while   i<=j   do begin
  • while  A[i]<e   do   inc(i); while   A[j]>e   do   dec(j); if   i<=j   then  begin swap(A[i],A[j]); inc(i);   dec(j); end; end;
  • {i  >  j};
  • if L<j {сортировать левый участок) then quicksort(A,L,j); if i<R {сортировать правый участок) then quicksort(А,и,R); end;

Оценим сложность приведенной реализации быстрой сортировки. Пусть массив А имеет п элементов. В наиболее плохом случае в каждом вызове процедуры quicksort эталонным значением есть меньше всего в участке от A. [L] AO[R] , и разбивка участка массива длиной т дает участка длиной 1 и т — 1, Поскольку т = п, п—1, …, 2, глубина рекурсии достигает 0(и), и при каждом значении т разбивка участка длиной т имеет сложность ОБ(т). Тогда суммарная сложность имеет оценку 0 (w) + 9 (« -1)+…+Є>(2) = 0(л2) .

Тем не менее описанный наиболее плохой случай в реальных данных практически никогда не случается. Для подавляющего большинства данных разбивки участка массива дает две участка с приблизительно равными длинами. Поэтому размеры массивов, которые сортируются, при переходе на следующий уровень рекурсии уменьшаются приблизительно вдвое. Итак, в среднем количество уровней рекурсии оценивается как 0(log п). Очевидно, что на каждом равные рекурсии суммарная сложность есть 0(п), поэтому общая сложность в среднем имеет оценку 0(nlogn).

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

Для выбора эталонного значения существует много способов, а не только выбор A[(L + R)/2). Если эталонным есть одно со значений в сортированной части массива, ведь это разрешает не беспокоиться о предотвращении выхода за границы сортированной часть и не проверять дополнительных условий.

Выбор «золотой середины» (значение, которое должных быть посредине, или медиана) требует немалых дополнительных усилий и может вообще ухудшить оценку сложности. Тем не менее довольно эффективным есть выбор среднего с трех значений — первого (с индексом L), последнего {R) и срединного ((І + R)/2). Для этого перед выбором эталону их можно обменять местами таким образом.

  • if  A[L]   >  A[(L+R)    div   2]
  • then   swap (A[L] ,A[ (L+R)   div   2] ) ;
  • if   A[(L+R)    div   2]    >  A[R]
  • then   swap   (A[(L+R)   div   2],A[R]>;
  • if  A[L]    >  A[(L+R)    div   2]
  • then   swap(A[L],A[(L+R)    div  2]);
  • e   := A[(L+R)   div   2];

Еще два способа выбора эталонное значение приведено в задачах к этой главе.

Итеративная версия алгоритма. Запишем итеративную процедуру, в которой явным образом реализуем обработку стека, необходимую для выполнения рекурсивной процедуры. Смоделируем программный стек с помощью массива Stack, в котором будем сохранять левые и правые границы сортированных підмасивів. Сначала присвоим элементам массива Stack значение 0 с помощью стандартной подпрограммы f illchar.

  • procedure   Quicksort(var  A:alnt;   nrword); var   i,   j,   L,   R,   top   :   word; e   :   integer;
  • Stack   :   array[1..N_max,1..2]   of   word; Begin
  • FillChar(Stack,SizeOf (Stack) ,0) ;
  • top:=l;    {индекс   верхушки   стека}
  • Stack[top,1]    :=  1;   Stack[top,2]    := N;
  • while   top>0   do
  • begin
  • L:«Stack[top,1]; R:=Stack[top,2];
  • dec(top);
  • e:=A[(L+R) div 2];
  • и:»L; j:=R;
  • repeat
  • while (A[i]<e) do inc(i); while (A[j]>e) do dec(j); if i<=j then begin Swap(A[i],A[j]); inc(i); dec(j); end; until i>=j; if L<j then begin inc(top);
  • Stack[top,1]:=L; Stack[top,2]:=j; end;
  • if i<R then begin inc(top); Stack[top,1]:=i; Stack[top,2]:=R;
  • end; End; End;
9 Окт »

Сортировка «слиянием»

Автор: Основной язык сайта | В категории: Изучаем информатику
1 кол2 пара3 трояк4 хорошо5 отлично (Еще не оценили)
Загрузка...

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

Пусть в массиве А з элемента A [L ] начинается упорядоченный участок длиной m-L + 1, а из элемента А [га+1] — участок длиной R-m. Под упорядоченным участком (отрезком или серией) понимаем участок, который не является частью другого упорядоченного участка. Например, длина таких упорядоченных участков равняется m-L + 1 = 3 и R-m = 3.

  • из
  • L         m         m+1     R
  • Они объединяются в такой участок длиной R-L+1 во вспомогательном массиве В.
  • 13
  • L         m         m+1     R
  • Рассмотрим процедуру слияния в массив Z пары сопредельных участков массива X, в котором левая содержит индексы от L до т, а права — відт+1 flo.
  • procedure  merge(var   X,Z:aInt;   L,m,R:word); var   k:word;    {индекс   в целевом  массиве} и, j:-word;   {индексы  в половинах) begin
  • и:=L;   j:=т+1; for   k: =L   to   R  do
  • {заполнение элементов Z[L], …, Z[R]) if и>m then
  • begin Z[k]:=X[j]; inc(j) end else if j>r then
  • begin Z[k]:=X[i], inc(i) end
  • Сортировка линейных массивов
  • else   if   X[i]<X[j]    then
  • begin   Z[k]:=X[i];   inc(i)    end else  begin   Z[k]:=X[j];   inc(j)   end end;
  • Очевидно, тело цикла выполняется R — L + І раз, и каждый раз выполняется 0(1) элементарных действий. Итак, сложность выполнения вызова процедуры merge есть &(R-L + l).

Алгоритм сортировки слиянием заключается в повторении таких шагов слияния пар. В массиве происходит поиск пары сопредельных упорядоченных участков, которые объединяются в один участок вспомогательного массива, например, с помощью процедуры merge. Потом происходит поиск и объединяется следующая пара и т.п.. Возможно, в конце останется участок, который не имеет пары, — ее будет скопировано без перемен. На следующем шаге происходит подобное слияние пар участков вспомогательного массива в основной. Шаги повторяются, пока какой-либо из массивов не превратится на один упорядоченный участок. Если это вспомогательный массив, он копируется в основной. Продемонстрируем выполнение алгоритма на массиве А = < 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1> длиной п = 11.

Упорядоченные последовательности выделены дужками < >, пары участков, которые объединяются, отделенные «;», В— имя вспомогательного массива.

  • А = «11Х10>; <9><8>; <7><6>; <5><4>; <3><2>; <1»
  • В= «10, 11X8, 9>; <6, 7X4, 5>; <2, 3><1»
  • Л = «8, 9, 10, 11X4, 5, 6, 7>;<1,2, С»
  • Я = «4, 5,6, 7, 8, 9, 10, 11X1,2,3»
  • Л = <1,2, 3, 4, 5,6, 7, 8, 9, 10, 11>

Как видим, массив отсортирован за четыре шага слияния.

После первого шага слияния длина упорядоченных участков не меньше 2 (за исключением, возможно, «хвоста» длиной 1), после второго — не меньше 4 (кроме, возможно, «хвоста» меньшей длины) и т.п.. Итак, после /-го шага длина упорядоченных участков, кроме, возможно, «хвоста», не меньше 2′. Пусть п — количество элементов массива. На последнему, к-му, шаге объединяются две участка; первая из них имеет длину не меньше 24″1, причем 2*»1 < г.  Итак, количество шагов к < log« + l. За счет возможного дополнительного копирования количество шагов надо увеличить на 1, но оценка 0(logn) сохранится. На каждом шаге общее количество элементарных действий есть 0(и), поэтому сложность алгоритма — 0(и • log п).

Реализуем алгоритм сортировки слиянием с помощью процедуры sortByMrg. Шаг слияния участков одного массива в другого оформим функцией mergeStep. Она возвращает признак того, что на шаге слияния было найдено хотя бы одну пару упорядоченных участков. Если пара не найдено, то массив, начальный в вызове функции, отсортировано. На непарных шагах слияния функция mergeStep выполняет слияние участков основного массива А у вспомогательный массив В, на парных — наоборот. Якшо массив, начальный в вызове mergeStep, оказался отсортированным на парном шаге слияния, значит, это массив В, и его надо скопировать в основной массив А, А если на непарном шаге, то это массив А, и больше ничего делать не надо.

Пара сопредельных упорядоченных участков и-елементного массива (первый из них начинается индексом left) ищет функция findPair. Она возвращает признак того, что пар найден. Правые границы участков сохраняются в ее параметрах mid и right. Если после ее вызова исполняется условие (lef t=l) and (right=n), то пара не найдено, т.е. массив отсортирован. Для слияния используем процедуру merge (см. выше). Вспомогательная процедура копирования участка массива в другой массив copy Аг есть очевидной.

  • procedure copyAr<var X,r:alnt;
  • left,right:word)); var и:word; begin
  • for i:= left to right do Y[i]:= X[i] end; function findPair(var X:alnt; n,left:word;
  • var mid, right   word): boolean; {функция возвращает признак «того, что пара сопредельных упорядоченные участки найдены} begin
  • findPair := false; if left <= n then
  • Сортировка линейных массивов
  • begin
  • mid := left;
  • while (mid<n)and(X[mid]<=X[mid+1]) do
  • inc(mid); {(mid=n) or (X[mid]>X[mid+l])} if mid~n    {правая граница — конец массива} then right:=mid else
  • begin {поиск правой границы} findPair := true; right := mid+1; while(right<n)and(X[right]<=X [right+1])
  • do inc(right); {(right=n) or (X[right]>X[right+l]} end; end; end;
  • function mergeStep(var X,Y:aInt; n.word): boolean;
  • {функция возвращает признак того, что слияние массива X в массив Y состоялось} var left,mid,right:word; begin
  • mergestep:=true; left:=l;
  • while findPair(X,n,left,mid,right) do begin merge(X,Y,left,mid,right) ; left:=right+l end;
  • {последний вызов findPair возвратил false} if (left=l)and(right=n)
  • then mergeStep:=false {массив X отсортировано} else if left<=n
  • then copyAr(X,Y,left,n); {копирование «хвоста»} end;
  • procedure sortByMrg(var A:alnt; n:word); var B:alnt;    {вспомогательный массив}

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


Всезнайкин блог © 2009-2015