1. Анализ текста начинаем с выявления темы (о чем текст). Для этого выделяем ключевые слова (слова, относящиеся к одной теме, синонимичные слова и выражения).
… – вот тема, к которой обращается автор текста.
Этот текст (статья) о …
Автор обращается к актуальной теме – теме…
Этот текст о …
Автор посвящает статью…
2. Определив тему, можно попытаться сформулировать проблему.
Проблема – (от греч.) – задача – вопрос, требующий изучения, разрешения.
Проблема чего, точка зрения на какую-либо проблему, поставить, выдвинуть, рассмотреть, обсудить, изложить, разрешить какую-либо проблему, коснуться какой-либо проблемы, уделить внимание какой-либо проблеме, какая-либо проблема возникает, встает, представляет интерес, заслуживает внимания.
Проблема формулируется как вопрос, либо сочетанием слова «проблема» с существительным в родительном падеже.
Проблем может быть несколько. Важно увидеть две и прокомментировать. Важно комментировать не весь текст, а ту (те) проблемы, которые вы заявили вначале.
Какой вопрос выбрать? Важно выбрать тот вопрос, над которым автор размышляет больше всего и по поводу которого отчетливо заявлена авторская позиция.
Перечитайте, как вы обозначили проблему. Если в форме вопроса, то позиция должна звучать как ответ на вопрос. Если по формуле «проблема + существительное в родительном падеже», то это существительное должно прозвучать в обозначении авторской позиции.
Шаблоны: автором проблема может быть:
- поставлена
- изложена
- рассмотрена
- выдвинута
- затронута
- поднята
- сформулирована
- исследована
- проанализирована
Возможные проблемы:
- Проблема памяти о своих истоках, о своём детстве (почему, повзрослев, человек ощущает связь с домом своего детства, с миром своего детства?);
- Проблеме роли детства в жизни человека (почему детство – важнейший этап жизни человека?);
- Проблема исторической памяти (зачем человеку хранить память о прошлом? Что значит любить свою семью и свою Родину7);
- Проблеме отчего дома (почему нельзя забывать отчий дом7);
- Проблема оценки такого периода жизни человека, как детство (действительно ли детство – «золотой» период жизни человека? Какова роль детства в становлении личности?);
- Проблема нравственной прочности человека (почему именно в обыденных житейских ситуациях зачастую проявляется нравственная сущность человека?);
- Проблема развития и сохранения русского языка (обогащается или портится русский язык благодаря заимствованиям?);
- Проблеме влияния человека на природу (какова степень влияния человека на природу и в чём заключаются возможные последствия этого влияния);
- Проблеме восприятия человеком природы как живой материи (должен ли человек воспринимать природу как нечто живое, заботиться о ней?);
- Проблеме несправедливости социального устройства общества (естественно ли деление людей на богатых и нищих, правильно ли устроено общество?);
- Проблеме отчуждённости мира богатых и сытых от мира бедных и голодных (думают ли сытые и богатые о тех, кто не может позволить себе есть досыта?);
- Проблема внутреннего противостояния искушению изобилием (могут ли дети из бедной семьи противостоять искушению изобилию и не озлобиться?);
- Проблеме выбора профессии с учётом личных и общественных интересов (могут ли при выборе профессии совпадать личные и общественные интересы?)
- Проблема ответственности человека перед самим собой и обществом (может ли человек быть свободным от общества, от других людей?);
- Проблеме коммерциализации культуры.
3. Комментируем проблему.
Комментарий от простого пересказа отличается тем, в пересказе вы говорите, что делают герои, а в комментарии, что делает автор. Это – самое важное и сложное.
Важно поразмышлять над некоторыми вопросами, связанными с прочитанным текстом; кому адресован текст? Какова степень актуальности текста? Как автор подходит к решению этой проблемы? К какой категории относится проблема: нравственная, этическая, социальная, экологическая, общественно-политическая, философская, психологическая? Насколько освещена эта проблема в литературе? Кто из авторов касался ее? Как автор подошел к своей задаче? Как автор рассказывает о ситуации, на чем заостряет внимание?
Здесь возможно обратиться к средствам выразительности, если они помогают определить авторскую позицию. Какова точка видения писателя? Может автор показывает это глазами рассказчика, говорит от имени героя? С каким настроением пишет автор? Что подчеркивает? Что из этого следует? К каким выводам подводит нас?
Шаблоны: Проблема может быть:
|
|
Значимость проблемы можно подчеркнуть с помощью слов:
|
|
Проблема может заставить читателя:
|
|
Почему важно уметь комментировать основную проблему текста?
- Это позволяет увидеть, что интересует автора.
- Комментируя проблему, вы показываете и своё восприятие того, что волнует автора.
- Комментарий позволит вам глубже посмотреть на поставленную проблему.
В комментарии не должно быть:
- Пересказа исходного текста или его части.
- Рассуждений по поводу всех проблем текста.
- Комментариев о действиях героев текста.
- Избегать повторов слова «проблема»
- Не допускать выражений «проблема о том, что…», «проблема того, что..», «проблема о мужестве и стойкости..».
4. Определяем авторскую позицию (идея текста).
При этом необходимо сказать о том, как автор решает заявленную проблему, как аргументирует свою позицию («за»), какова, в итоге, цель написания текста, Если проблема текста – это вопрос, то позиция автора – это ответ на вопрос, как автор на него отвечает. Формулируя проблему в виде вопроса, вы должны знать, как автор на него отвечает. От вас не требуется сформулировать позицию автора вообще, а показать его мнение по выделенной и прокомментированной вами проблеме.
Авторская позиция в публицистическом стиле, скорее всего, будет обозначена прямо, и ее легко можно обнаружить. Лучше не цитировать целиком предложение, в котором отражена авторская позиция, а процитировать частично или пересказать (чтобы не снизили балл).
Если текст художественный, то авторская позиция может быть прямо не заявлена. Здесь важно обратить внимание, как она заявлена: прямо или косвенно; использование средств выразительности; призывность; оценочность; доступность; простота и т.д.
Автор может |
|
|
|
Автор стремится реализовать цели:
- Поделиться с вами своими размышлениями, передать вам свою заинтересованность данной темой, проблемой
- Эмоционально воздействовать на вас
- Найти в вас единомышленника
Клише:
- Автор считает, что… Автор утверждает, что…
- Автор убеждён, что…, и подобная уверенность имеет свои основания.
- Автору важно убедить читателя в том, что…
- Бесспорно мнение автора о том, что…
- Автор подводит читателя к мысли о том, что…
- Автор стремиться донести до читателя мысль о том, что…
- Решая проблему, автор приходит к выводу: …
- … – в этих словах, по – моему, отражена основная проблема текста.
- … – это высказывание точно отражает мысль автора.
- Позиция автора очевидна:…
5. Выражение собственного отношения к данной проблеме.
Доказывая, приводим 2 аргумента, обращаясь к примерам из читательского или жизненного опыта. Собственное мнение должно быть высказано корректно. Ваши аргументы не должны повторять то, что прозвучало в исходном тексте.
Покопайтесь в памяти, вспомните, что читали об этом, какие литературные ассоциации у вас вызывает. Очень важно, чтобы ваши аргументы подтверждали, доказывали вашу точку зрения, а не были просто иллюстрацией на ту же тему. Поэтому при каждом аргументе формулируйте, что вы доказываете приведенным примером.
Важно доказать, почему вы так думаете. Я (не) согласен с автором, потому что …, и считаю…
Здесь идет строгое сочинение-рассуждение:
- тезис
- аргументация
- вывод
- аргументация
Каждый аргумент начинать с нового абзаца.
Приводить примеры, ссылаясь на примеры из художественной литературы, авторитетных людей или из своей жизни и жизни окружающих.
Нельзя не согласить с автором в том, что…
С автором можно поспорить …
Автор прав в том, что…
Однако его мысль о … вызывает сомнение
С автором трудно (не) согласиться
Позиция автора близка (понятна ) мне
Я (не) разделяю точку зрения автора
Я разделяю негодование (неприятие, восторг) автора и думаю…
Мне приходит на ум история, услышанная (прочитанная, которая произошла со мной)
Мое мнение подтверждает и такой факт…
Шаблоны:
- С удовольствием прочитал…
- Нельзя остаться равнодушным…
- К сожалению…
- Следует отметить, что бесспорность авторской позиции не вызывает сомнений…
- Автор убедительно доказывает, что…
- Автор, по – моему, не совсем прав, утверждая, что…
- Точка зрения автора, конечно, интересна, но я считаю, что…
- На мой взгляд, автор несколько категоричен в своих суждениях.
- Я считаю, что не совсем справедливо автор говорит о том, что…
- Автор справедливо отмечает, что…
- Авторские оценки справедливы и точны. Действительно, …
- Авторская позиция по данному вопросу совпадает с моей точкой зрения.
- Во-первых,…
- Во-вторых,…
- Таким образом,
Аргументы должны быть точными.
Аргументы должны быть развёрнутыми и убедительными.
Аргументы должны доказывать вашу точку зрения.
Как можно ввести аргументы в изложение собственной позиции?
С помощью словосочетаний:
- Обратимся к (факту, воспоминаниям кого – либо, научным данным…)
- Достаточно привести такой пример…
- Это можно доказать следующим образом..
- Подтверждением сказанному может служит следующий факт…
- Приведу ещё один пример, доказывающий мою точку зрения.
- В этом легко убедиться, обратившись к…
С помощью вводных слов и словосочетаний:
- Например,… Допустим…
- По свидетельству кого-либо,… Предположим…
- Во-первых, …, во-вторых, … и т.д.
С помощью союзов и придаточной части:
- Так как…
- Потому что…
- Оттого что…
- Благодаря тому что…
- В связи с тем что…
6. Как заканчивать сочинение?
- 2-3 предложениями, дублирующими вступление.
7. Как начать сочинение?
- Если знаете что-либо об авторе, можно написать 2-3 предложения.
- Можно написать о позитивном впечатлении, которое произвел на вас текст.
- Можно обрисовать типичную картину (Часто бывает так, что…)
- На вечные темы можно начать так: Любовь…Сколько о ней сказано!
Алгоритм написания сочинения-рассуждения
- Вступление.
- Проблемы, над которыми размышляет автор.
- Комментарий.
- Выявление позиции автора.
- Собственное мнение (согласие или несогласие с позицией автора).
- Первый аргумент.
- Второй аргумент.
- Вывод (заключение).
Советы:
- Не забывайте каждую часть начинать с новой строки.
- Продумывайте логику перехода от одного абзаца к другому.
По теме: методические разработки, презентации и конспекты
Таблицы для подготовки к ЕГЭ
Помощь выпускнику при подготовке к экзамену по русскому языку….
ЕГЭ. Русский язык. Часть С. Аргументы.
ЕГЭ. Русский язык. Часть С. Аргументы….
Подготовка к сочинению-рассуждению.Аргументы.
Урок подготовки к написанию сочинению на ЕГЭ по русскому языку,отрабатывает умение подбирать аргументы из личного и читательского опыта….
Подготовка к ЕГЭ: часть С, аргументы к тексту о Родине
Урок сбора аргументов к сочинению-рассуждению по тексту о Родине….
Система подготовки к Единому государственному экзамену: этапы подготовки к части С
Данный материал является дипломной работой по курсу переподготовки учителей…
Таблица «Не с различными частями речи»
Таблица «Не с различными частями речи»…
Подготовка к ЕГЭ «Банк аргументов»
quot;Банк аргументов» при подготовке к написанию сочинения-рассуждения в 10-11 классах удобен тем, что даны названия темы , проблемы и к ним приводятся аргументы….
Как правильно привести аргументы?
Аргументы — это очень важная составляющая сочинения.При правильном подходе к написанию этой части можно приобрести немало ценных баллов, и наоборот, при неправильном, упуститт возможность пополнить свою копилку. Поэтому, постарайтесь максимально хорошо проработать этот момент. Итак, В сочинении вы должны выразить своё мнение относительно проблемы, которую автор выделил как главную. По правилам сочинений,мы не просто должны выразить своё мнение, ещё надо привести аргументы.
Что такое аргумент в сочинении?
Аргументы в сочинении — есть доказательства вашей позиции (тезиса), которые могут выражаться через примеры, факты, знания. То есть это не просто позиция, а позиция с объяснением.
В сочинении ЕГЭ по русскому в 3-ей части их должно быть два. Один — литературный (читательский), второй — жизненный (личный). Допускается привести два 2 литературных аргумента, не рекомендуется 2 жизненных, иначе наберете только 2 балла из 3-х возможных.
По содержанию один-два предложения (на 1 аргумент). По объему нужно смотреть, исходя из всего сочинения. Напомню, что наилучший набор слов — 250. Указывать аргументы нужно после вашей позиции/согласия, не согласия (5 пункт в плане).
Пример
Проблема доброты. 1 аргумент: в наши дни люди всё чаще поступают, руководствуясь эгоистическими побуждениями. Равнодушие стало чуть ли не нормой, а в обществе очень многие нуждаются в помощи. Наше бездушие – это оружие в руках зла. (Пример: бездомные, больные, бомжи).
2 аргумент: доброту в человеке нужно воспитывать с детства. Это чувство должно быть неотъемлемой частью личности. (Пример: Наташа Ростова).
Виды аргументов
Существуют различные классификации аргументов. Например, различают логические аргументы — это доводы, апеллирующие к человеческому рассудку, к разуму (научные аксиомы, законы природы, статистические данные, примеры из жизни и литературы), и психологические аргументы — доводы, которые вызывают у адресата определённые чувства, эмоции и формируют определённое отношение к описываемому человеку, предмету, явлению (эмоциональная убеждённость пишущего, апелляция к общечеловеческим ценностям и др.).
Главное, что должен знать пишущий сочинение: используемые вами аргументы «имеют различный вес», то есть оцениваются различными баллами. Одни аргументы оцениваются одним баллом, а другие — двумя.
Обратите внимание на то, что аргументы, оцениваемые двумя баллами, всегда предполагают ссылку на автора и название произведения. Кроме того, говоря о художественном тексте, недостаточно просто упомянуть автора и название произведения (О проблеме патриотизма размышляет Л.H.Толстой в романе «Война и мир»), необходимо также указать конкретных героев, их поступки, слова, мысли, которые демонстрируют связь упоминаемого вами художественного произведения с рассматриваемой в исходном тексте проблемой.
Пример
О проблеме гуманизма очень эмоционально и выразительно написал М. Горький в рассказе «Старуха Изергиль». Данко, герой одной из легенд, пожертвовал жизнью ради спасения своего народа. Он появился именно тогда, когда людям понадобилась помощь, и повёл их, отчаявшихся и озлобленных, через лес к свободе. Подвиг Данко, вырвавшего из груди сердце, чтобы осветить путь к свободе, — потрясающий пример истинного гуманизма, безграничной любви к людям.
Аргументы, оцениваемые двумя баллами
В качестве аргумента, оцениваемого 2 баллами, могут рассматриваться пословицы, поговорки, афоризмы, но только в том случае, если они сопровождаются пояснениями, вашими размышлениями над их содержанием.
Пример
Не случайно народная мудрость утверждает безусловную ценность дружбы: «Не имей сто рублей, а имей сто друзей»; «Старый друг лучше новых двух», «Друга ищи, а найдёшь — береги»… Действительно, верные друзья готовы разделить с тобой горе и радость, прийти на помощь в трудную минуту. Именно друзья дают нам понять, что мы не одиноки в этом мире.
Надо сказать, что любой пример из художественной, научной или публицистической литературы должен быть «обрамлён» вашими рассуждениями, подчеркивающими связь приведённого примера с рассматриваемой вами проблемой. Приведя пример из публицистической литературы, также не забудьте, кроме фамилии автора, указать название заметки, статьи, очерка и, если возможно, название издания, в котором опубликован этот материал. Над проблемой влияния телевидения на современное российское общество размышляет тележурналист Олег Пташкин в статье «Треш-ТВ», опубликованной на сайте www.gazeta.ru. По словам автора, современное телевидение в России переживает острейший кризис — кризис идей и смысла. Те, кто создаёт телепередачи, совершенно не думают об общественной пользе. Журналист озабочен тем, что современные СМИ пропагандируют бездуховность и аморальность, приучают к мысли, что нормальная жизнь ради семьи, детей, успехов в работе — удел неудачников. Автор убеждён в том, что главная задача современного телевидения — просвещение: оно должно научить чтить семью, родителей, культурные традиции. Только тогда телевидение будет способствовать возрождению духовности. Всё, что было сказано ранее, касается и примеров из научной литературы. Люди, не пасующие перед жизненными трудностями, смело смотрящие правде в глаза, — это хозяева своей судьбы. Историк Лев Гумилёв в своей работе «Этногенез и биосфера Земли» назвал таких людей пассионариями. Среди них много великих исторических деятелей, знаменитых полководцев, борцов за свободу и права человека, и каждый из них внёс свой вклад в развитие общества. В поисках весомых аргументов некоторые ученики смело придумывают фамилии «известных публицистов» или названия несуществующих произведений, приписывая их порой знаменитым писателям. Например: В одном из своих произведений «Природа» русский писатель И. С. Тургенев размышляет о взаимосвязи природы и человека. Критик Белинский в своей статье «О человечности» писал о том, что люди должны помогать друг другу. Также можно привести в пример рассказ А. Приставкина «Война русских и чеченцев». Не сомневайтесь: все подобные «опусы» будут квалифицированы как фактические ошибки, а значит, вы не только не заработаете баллов за аргументацию, но и потеряете 1 балл за нарушение фактической точности.
Аргументы, оцениваемые одним баллом
Аргументы, оцениваемые 1 баллом, как правило, подобрать проще, поэтому и «удельный вес» их ниже. Большинство из них так или иначе опирается на наш жизненный опыт, наши наблюдения над своей жизнью, жизнью других людей или общества в целом.
Что проверяет эксперт?
Эксперт выделяет ту часть текста сочинения, которая выполняет функцию аргументации. Затем он устанавливает соответствие аргумента утверждаемому (аргумент должен доказывать именно то, что утверждается), оценивает степень убедительности, которая может проявляться как в строгой логичности, так и в эмоциональной оценочности, образной экспрессии.
Эксперт определяет количество аргументов, а также соответствие аргумента смысловой функции: приведённый пример должен не просто выступать как яркий повествовательный или описательный микротекст, а доказывать или опровергать то или иное утверждение. Максимальный балл (3) по критерию К4 ставится за работу, в которой экзаменуемый выразил своё мнение по сформулированной им проблеме (согласившись или не согласившись с позицией автора), аргументировал его (привёл не менее 2-х аргументов, один из которых взят из художественной, публицистической или научной литературы).
— Понравилась статья?:) Поделитесь с друзьями!
Аргументация собственного мнения по проблеме.
Другие части курса:
Часть 1 — основные сведения.
Часть 2 — выявление и формулирование проблемы.
Часть 3 — комментарии к сформулированной проблеме.
Часть 4 — позиция автора.
Что такое аргумент?
В сочинении вы должны выразить своё мнение по сформулированной проблеме, согласившись или не согласившись с позицией автора, как написано в задании части С. В своём ответе вы должны привести два аргумента, опираясь на знания, жизненный или читательский опыт.
Обратите внимание
Недостаточно лишь формально заявить о своём мнении: Я согласен (не согласен) с автором. Ваша позиция, даже если она совпадает с авторской, должна быть сформулирована в отдельном предложении.
Например: Таким образом, автор стремится донести до читателя мысль о том, что природа уже давно нуждается в помощи каждого из нас. Я полностью согласен с автором и тоже считаю, что человечество должно пересмотреть своё потребительское отношение к природе.
Затем ваша позиция должна быть подкреплена двумя аргументами. В этой части работы вы должны строго следовать правилам построения текста-рассуждения.Аргументация — это приведение доказательств, объяснений, примеров для обоснования какой-либо мысли перед слушателями (читателями) или собеседником.
Аргументы — это доказательства, приводимые в поддержку тезиса: факты, примеры, утверждения, объяснения — словом, всё, что может подтвердить тезис.
Иллюстрирование аргумента
Важным элементом аргументации являются иллюстрации, т. е. примеры, поддерживающие аргумент.
Коллекция аргументов:
Аргументы, оцениваемые двумя баллами
Виды аргументов
Существуют различные классификации аргументов. Например, различают логические аргументы — это доводы, апеллирующие к человеческому рассудку, к разуму (научные аксиомы, законы природы, статистические данные, примеры из жизни и литературы), и психологические аргументы — доводы, которые вызывают у адресата определённые чувства, эмоции и формируют определённое отношение к описываемому человеку, предмету, явлению (эмоциональная убеждённость пишущего, апелляция к общечеловеческим ценностям и др.).
Главное, что должен знать пишущий сочинение: используемые вами аргументы «имеют различный вес», то есть оцениваются различными баллами.
Одни аргументы оцениваются одним баллом, а другие — двумя.
Обратите внимание на то, что аргументы, оцениваемые двумя баллами, всегда предполагают ссылку на автора и название произведения. Кроме того, говоря о художественном тексте, недостаточно просто упомянуть автора и название произведения (О проблеме патриотизма размышляет Л.H.Толстой в романе «Война и мир»), необходимо также указать конкретных героев, их поступки, слова, мысли, которые демонстрируют связь упоминаемого вами художественного произведения с рассматриваемой в исходном тексте проблемой.
Например: О проблеме гуманизма очень эмоционально и выразительно написал М. Горький в рассказе «Старуха Изергиль». Данко, герой одной из легенд, пожертвовал жизнью ради спасения своего народа. Он появился именно тогда, когда людям понадобилась помощь, и повёл их, отчаявшихся и озлобленных, через лес к свободе. Подвиг Данко, вырвавшего из груди сердце, чтобы осветить путь к свободе, — потрясающий пример истинного гуманизма, безграничной любви к людям.
В качестве аргумента, оцениваемого 2 баллами, могут рассматриваться пословицы, поговорки, афоризмы, но только в том случае, если они сопровождаются пояснениями, вашими размышлениями над их содержанием. Например: Не случайно народная мудрость утверждает безусловную ценность дружбы: «Не имей сто рублей, а имей сто друзей»; «Старый друг лучше новых двух», «Друга ищи, а найдёшь — береги»… Действительно, верные друзья готовы разделить с тобой горе и радость, прийти на помощь в трудную минуту. Именно друзья дают нам понять, что мы не одиноки в этом мире.
Надо сказать, что любой пример из художественной, научной или публицистической литературы должен быть «обрамлён» вашими рассуждениями, подчеркивающими связь приведённого примера с рассматриваемой вами проблемой.
Приведя пример из публицистической литературы, также не забудьте, кроме фамилии автора, указать название заметки, статьи, очерка и, если возможно, название издания, в котором опубликован этот материал.
Над проблемой влияния телевидения на современное российское общество размышляет тележурналист Олег Пташкин в статье «Треш-ТВ», опубликованной на сайте www.gazeta.ru. По словам автора, современное телевидение в России переживает острейший кризис — кризис идей и смысла. Те, кто создаёт телепередачи, совершенно не думают об общественной пользе. Журналист озабочен тем, что современные СМИ пропагандируют бездуховность и аморальность, приучают к мысли, что нормальная жизнь ради семьи, детей, успехов в работе — удел неудачников. Автор убеждён в том, что главная задача современного телевидения — просвещение: оно должно научить чтить семью, родителей, культурные традиции. Только тогда телевидение будет способствовать возрождению духовности.
Всё, что было сказано ранее, касается и примеров из научной литературы.
Люди, не пасующие перед жизненными трудностями, смело смотрящие правде в глаза, — это хозяева своей судьбы. Историк Лев Гумилёв в своей работе «Этногенез и биосфера Земли» назвал таких людей пассионариями. Среди них много великих исторических деятелей, знаменитых полководцев, борцов за свободу и права человека, и каждый из них внёс свой вклад в развитие общества.
В поисках весомых аргументов некоторые ученики смело придумывают фамилии «известных публицистов» или названия несуществующих произведений, приписывая их порой знаменитым писателям. Например: В одном из своих произведений «Природа» русский писатель И. С. Тургенев размышляет о взаимосвязи природы и человека.
Критик Белинский в своей статье «О человечности» писал о том, что люди должны помогать друг другу.
Также можно привести в пример рассказ А. Приставкина «Война русских и чеченцев».
Не сомневайтесь: все подобные «опусы» будут квалифицированы как фактические ошибки, а значит, вы не только не заработаете баллов за аргументацию, но и потеряете 1 балл за нарушение фактической точности.
Аргументы, оцениваемые одним баллом
Аргументы, оцениваемые 1 баллом, как правило, подобрать проще, поэтому и «удельный вес» их ниже. Большинство из них так или иначе опирается на наш жизненный опыт, наши наблюдения над своей жизнью, жизнью других людей или общества в целом.
Примеры из жизни. Несмотря на то, что жизненный опыт выпускника ещё не очень велик, в своей жизни или жизни окружающих можно найти примеры хороших или плохих поступков, проявления дружеских чувств, честности, доброты или чёрствости, эгоизма.
Будьте осторожны с аргументами этого типа, поскольку, как показывает наш опыт проверки сочинений, большинство из них просто-напросто выдуманы учениками и убедительность подобных доводов весьма сомнительна. Например:
Я на собственном опыте убедилась во вреде дешёвой литературы. После одной из таких книг у меня сильно разболелась голова. Это книга про вора-неудачника. Бред страшный! Действительно, я испугалась, что получу рак мозга после этой книги. Ужасное ощущение!
Приведу пример из личной жизни: сидят люди на улице без жилья, без еды, абсолютно без ничего. Сидят и просят деньги на какую- нибудь еду.
К сожалению, мой небогатый жизненный опыт не позволяет мне выразить моё обширное мнение по данному вопросу.
Особенно часто в подобных горе-аргументах фигурируют разнообразные родственники, друзья и знакомые, с которыми происходят чрезвычайно поучительные истории. Например:
Я знаю одного человека, который пропустил мимо глаз (?!) болезнь и смерть своего отца. Теперь его дети ему не помогают.
Мне мой дедушка рассказывал, что его папа в 1812 году (?!) был в отряде, когда на Москву начали наступать войска под командованием Наполеона.
Хорошим примером проблемы данного текста являются некоторые мои одноклассники. Очевидно, их слишком мало воспитывали, и они не приучились к труду с детства, так ничего и не делают.
Гораздо реже встречаются примеры из жизни, которые можно признать подходящими доводами:
Я убедилась в том, что существуют не только равнодушные люди. Два года назад в нашу семью пришла беда — случился пожар. Родственники, соседи, знакомые и даже просто люди, знавшие о нашей беде, помогали нам кто как мог. Я очень благодарна всем, кто не остался равнодушным и помог мне и моей семье в трудную минуту.
Убедительнее выглядят наблюдения над жизнью людей и общества в целом, поскольку отдельные факты в таких примерах подвергаются обобщению и оформляются в виде некоторых выводов:
Я считаю, что сочувствие и сострадание прививаются людям с детства. Если ребёнок был окружён заботой и лаской, то, повзрослев, он будет дарить это добро окружающим.
Впрочем, и аргументы этого типа могут выглядеть курьёзными и не самыми убедительными:
Наверное, у всех мамы и бабушки увлекаются женскими романами. Начитаются женщины всяких книжечек, а потом страдают от того, почему у них не так, как в книжке.
Предположительные примеры представляют собой размышления о том, что могло бы случиться при определённых условиях:
Я не могу представить свою жизнь без книг: без учебников, которые помогают нам познавать мир, без художественной литературы, открывающей тайны людских взаимоотношений и формирующей нравственные ценности. Такая жизнь была бы неимоверно бедной и скучной.
Ссылки на авторитет представляют собой высказывания знаменитых политических и общественных деятелей, учёных — одним словом, людей, обладающих опытом, знаниями в опредёленных сферах деятельности:
«У слепой веры — злые глаза»,— точно заметил однажды польский писатель Станислав Ежи Лец.
О сущности писательского таланта размышлял Фёдор Михайлович Достоевский: «Талант есть способность сказать или выразить хорошо там, где бездарность скажет и выразит дурно». «Для иных природа — это дрова, уголь, руда, или дача, или просто пейзаж. Для меня природа — это среда, из которой, как цветы, выросли все наши человеческие таланты», — писал Михаил Пришвин.
Помните, что лица, на высказывания которых вы ссылаетесь, действительно должны быть авторитетными в той или иной области. Например, нидерландский философ Бенедикт Спиноза вообще сомневался в значимости подобных аргументов, считал, что «ссылка на авторитет — не довод».
По своей сути пословицы и поговорки представляют собой разновидность ссылки на авторитет. Сила этих доводов заключается в том, что мы обращаемся к авторитету народной мудрости. Помните, что простое упоминание пословиц, поговорок, крылатых слов, не сопровождающееся вашими размышлениями над их содержанием, оценивается 1 баллом.
Не случайно в русских пословицах утверждается ценность опыта старших поколений: «Родительское слово на ветер не молвится; Кто родителей почитает, тот вовеки не погибает».
Ссылки на кинофильмы, в последнее время часто встречающиеся в сочинениях, чаще всего свидетельствуют об узости кругозора, о небольшом читательском опыте. Мы убеждены, что примеры дружбы, гуманного отношения к людям или подвига всегда можно найти не только в фильмах «Аватар» или «Гарри Поттер и философский камень», но и на страницах художественных произведений.
Мне кажется, прекрасным подтверждением мысли автора о том, что человек должен стремиться к осуществлению своей мечты, может служить судьба героини фильма В. Меньшова «Москва слезам не верит». Катерина работала на фабрике, сама воспитывала ребёнка, заочно окончила институт и в результате добилась успеха — стала директором комбината. Таким образом, каждый из нас в силах добиться осуществления своей мечты. Необходимо только каждым шагом, каждым своим поступком приближать её осуществление.
(Можно заметить, что подтверждение мысли автора можно было бы найти и в судьбе Александра Григорьева, героя романа В. Каверина «Два капитана», или привести в пример Алексея Мересьева из произведения Б. Полевого «Повесть о настоящем человеке», или вспомнить Ассоль из одноимённой повести А. Грина.)
Структура аргумента
При написании сочинения следует помнить, что между тезисом и двумя аргументами, подтверждающими вашу позицию, должна просматриваться чёткая связь, которая обычно выражена так называемыми «логическими переходами» — высказываниями, связывающими известную информацию текста с новой. Кроме того, каждый аргумент сопровождается «микровыводом» — высказыванием, подводящим итог некоторым размышлениям.,
Несоблюдение этой структуры (в сущности, по этой схеме строится любой абзац связного текста) часто приводит к логическим ошибкам.
Типичные ошибки аргументации
Что проверяет эксперт?
Эксперт выделяет ту часть текста сочинения, которая выполняет функцию аргументации. Затем он устанавливает соответствие аргумента утверждаемому (аргумент должен доказывать именно то, что утверждается), оценивает степень убедительности, которая может проявляться как в строгой логичности, так и в эмоциональной оценочности, образной экспрессии.
Эксперт определяет количество аргументов, а также соответствие аргумента смысловой функции: приведённый пример должен не просто выступать как яркий повествовательный или описательный микротекст, а доказывать или опровергать то или иное утверждение.
Максимальный балл (3) по критерию К4 ставится за работу, в которой экзаменуемый выразил своё мнение по сформулированной им проблеме (согласившись или не согласившись с позицией автора), аргументировал его (привёл не менее 2-х аргументов, один из которых взят из художественной, публицистической или научной литературы).
Другие части курса:
Не буду сильно углубляться в теорию. Что такое частичное применение легко найти в интернете. В том числе на Википедии.
Если кратко, то это механизм, позволяющий зафиксировать k
аргументов функции от n
аргументов, сделав из неё функцию от (n - k)
аргументов.
// Пусть имеется функция f от четырёх аргументов:
int f (int a, int b, int c, int d)
{
return a + b + c + d;
}
// Фиксируем первые два аргумента:
auto g = part(f, 1, 2); // 1 + 2 + ...
// Добрасываем оставшиеся два:
assert(g(3, 4) == 10); // ... + 3 + 4 = 10
На эту тему уже существует масса публикаций, в том числе и на Хабре:
- C++ Variadic templates. Каррирование и частичное применение
- Частичное применение и каррирование в C++
- Каррируем на C++
А ветка «How should I make function curry?» на stackoverflow — просто кладезь для тех, кто впервые сталкивается с этой темой.
К сожалению, количество пока не переросло в качество, и хорошего, пригодного к использованию варианта я так и не увидел. При этом любопытно вот что.
Замечательный факт №1. В упомянутых статьях присутствуют все техники, которые нужны для реализации правильного (по моему мнению) частичного применения.
Надо только всё внимательно проанализировать и сложить кубики в правильном порядке. Именно этим я и собираюсь заняться в данной статье.
Содержание
- Цели
- Существующие решения
- Философствования
- Новое решение
- Реализация
- Заключение
Цели
Итак, какие цели стоят перед нами:
-
Собственно реализация требуемой функциональности
То есть реализация в каком-то виде частичного применения функции.
-
Максимально возможная эффективность
Нельзя забывать, что мы пишем на языке C++, одним из основных принципов которого является принцип «Абстракции без накладных расходов» (см. Stroustrup, Foundations of C++).
В частности, не должно произойти ни одного лишнего копирования и ни одного лишнего переноса.
Скрытый текст
Добавлю, что это не только одно из самых важных мест в программировании на плюсах, но, одновременно, и одно из самых интересных.
-
Удобство в использовании
Прикладному программисту должно быть легко создавать частично применённые функции.
Также ему должно быть легко использовать частично применённые функции совместно с уже существующими решениями. Например, передавать частично применённую функцию в какой-то стандартный алгоритм.
Существующие решения
Авторы имеющихся решений предлагают два основных варианта. Назовём их применение по возможности и явное применение.
Применение по возможности
Эта техника заключается в том, что результат частичного применения — это функция, которую снова можно частично применить. А вызов исходной функции происходит тогда, когда полученных аргументов уже достаточно для того, чтобы произвести вызов.
// Пусть дана функция:
int f (int a, int b, int c, int d);
// Частичное применение функции:
auto g = part(f);
// Фиксируем первый элемент:
auto h = g(1);
// Одного аргумента недостаточно для вызова функции `f`, поэтому функция пока не вызывается.
// Забрасываем ещё два аргумента:
auto i = h(2, 3);
// Трёх аргументов по-прежнему недостаточно для вызова функции `f`.
// Забросили последний аргумент, функция может быть вызвана, следовательно,
// этот вызов и происходит.
assert(i(4) == 10);
Достаточно остроумная идея. Но, к сожалению, на практике не работает.
Почему? Допустим, мы хотим частично применить функцию, вычисляющую сумму произвольного количества переменных:
auto sum (auto ... xs);
В таком случае, мы не знаем, когда нужно остановиться в процессе частичного применения.
Эта сумма вычисляется и от одного, и от двух, и от трёх, да и вообще от любого количества переменных.
Следовательно, предыдущий пример ломается на втором шаге, если вместо f
подставить sum
:
auto g = part(sum);
auto ??? = g(1); // Уже вычислять, или пока нет?
То же самое произойдёт, если у функции есть несколько перегрузок с разным количеством аргументов. Будет непонятно, какую из них нужно вызвать.
Есть и другая проблема, когда можно «проскочить» правильное количество аргументов. В нашем примере можно изобразить так:
auto g = part(f, 1, 2, 3);
auto h = g(4, 5, 6); // Ой...
Тогда функция будет частично применяться до бесконечности, и никогда не будет вызвана.
Явное применение
Итак, — говорят авторы, — раз мы не знаем, когда нужно остановить частичное применение, давайте сделаем это явно.
А именно, создадим перегрузку оператора «скобочки» без аргументов, вызов которого будет означать, что нужно вызвать внутреннюю функцию с теми параметрами, которые уже были частично применены:
auto g = part(sum);
auto h = g(1); // Уже вычислять, или пока нет? Пока нет!
auto i = h(2, 3, 4, 5, 6); // Записываем новые аргументы и снова ждём.
assert(i() == 21); // А вот теперь вычисляем.
Старая проблема решена. Но возникла новая.
Теперь каждое использование частично применённой функции подразумевает знание о том, что это именно частично применённая функция. Это значит, что её не получится использовать в стандартных алгоритмах. Они просто не знают о том, что после забрасывания аргументов нужно ещё позвать пустые «скобочки».
Философствования
Чтобы продвинуться дальше, немного пофилософствуем и выскажем пару важных мыслей.
Мысль первая
Частичное применение является отложенным вызовом. Иначе говоря, частичное применение не производит никаких «частичных вычислений». Оно просто запоминает несколько аргументов и ждёт, пока придут остальные.
Если для суммы, произведения и других ассоциативных функций ещё можно придумать костыль, который будет уметь и возвращать частично вычисленный результат (сумму или произведение полученных ранее чисел), и продолжать частичное применение, то для произвольной функции такое решение не подойдёт.
Мысль вторая
В языке C++ нет встроенного механизма частичного применения. Это значит, что программист, вообще говоря, не ожидает, что может какой-то произвольной функции передать только часть аргументов, а остальные «добросить» когда-нибудь потом.
Следовательно, работая с частичным применением, программист заведомо знает, что он его использует.
Значит, частичное применение в языке C++ всегда будет явным.
Результат размышления
Выходит, перечисленные варианты не годятся. Из-за, казалось бы, маленьких недочётов эти «прикольные» решения приходится признавать крайне непрактичными, и потому непригодными к повседневному использованию.
Всё же не стоит забывать, что C++ не является функциональным языком. Нельзя так просто взять и перенести конструкции и идеологию одного языка на другой. Тут как с переводом поэзии с иностранного языка: перевод должен быть не дословным, а поэтическим, то есть рифмоваться в языке перевода.
Новое решение
Исходя из всего сказанного выше, я пришёл к следующему выводу. Поскольку программист всегда знает, где у него частичное применение, а где вызов функции, то можно нашу модель одновременно и упростить, и сделать более универсальной.
Состоять она будет из двух этапов:
- Захват первоначальных аргументов.
- Безусловный вызов с оставшимися аргументами.
Проиллюстрирую на примере.
// Дана функция суммирования:
auto sum (auto ... xs);
// Частичное применение суммирования к трём аргументам.
auto f = part(sum, 1, 2, 3);
// Результат сохранён в функциональном объекте `f`.
// Вызов функции суммирования:
assert(f(4) == 10);
assert(f(4, 5) == 15);
assert(f(4, 5, 6) == 21);
Если нужно частично применить ещё несколько аргументов, то они «добрасываются» при помощи того же явного вызова функции частичного применения:
auto g = part(f, 4, 5); // Эквивалентно part(sum, 1, 2, 3, 4, 5).
Это же std::bind
!
Похоже, но нет. С одной стороны, std::bind
позволяет обходиться с аргументами более гибко. Ставить их в произвольные места, перемешивать и т.п.
С другой стороны, std::bind
требует явного расставления заполнителей и не работает с произвольным числом аргументов. То есть пользователь обязан заранее указать, сколько аргументов будет «доброшено» в будущем, и на каких конкретно местах в вызове они будут стоять.
Поэтому я считаю, что получившееся решение достаточно самостоятельно и не является частным случаем каких-либо других имеющихся механизмов.
Реализация
Возможно, самая интересная часть. Код. В начале статьи я уже упоминал один замечательный факт. Так вот, есть ещё один.
Замечательный факт №2. В стандартной библиотеке (C++17) есть почти всё необходимое для реализации частичного применения по данной модели.
Нам придётся только доопределить одну операцию, которая, впрочем, тоже выражается через те же самые стандартные инструменты.
Итак, нам понадобятся (полный и исчерпывающий список):
- std::forward
- std::move
- std::forward_as_tuple
- std::apply
- std::invoke
- std::tuple_cat
- std::make_tuple
Когда я говорил, что имеется почти всё необходимое, я имел в виду, что нужно доопределить одну функцию:
template <typename T>
constexpr decltype(auto) forward_tuple (T && t)
{
return apply(forward_as_tuple, std::forward<T>(t));
}
Данная функция принимает произвольный кортеж и возвращает новый кортеж, состоящий из ссылок на элементы входного кортежа. Если во входном кортеже лежали ссылки на lvalue
, то они такими и остаются. Те же объекты, которые хранились в кортеже, передаются по ссылке на rvalue
.
Теперь можно с уверенностью говорить, что всё необходимое у нас уже имеется. Можно писать код.
-
Функция
part
template <typename ... As> constexpr auto part (As && ... as) -> part_fn<decltype(std::make_tuple(std::forward<As>(as)...))> { return {std::make_tuple(std::forward<As>(as)...)}; }
Принимает произвольное количество аргументов, первым из которых является некоторая функция или функциональный объект. Сохраняет их все в один кортеж при помощи функции
make_tuple
и возвращает этот кортеж, завёрнутый в структуруpart_fn
. -
Структура
part_fn
template <typename Tuple> struct part_fn { template <typename ... As> constexpr decltype(auto) operator () (As && ... as) const & { return apply(invoke, std::tuple_cat(forward_tuple(t), std::forward_as_tuple(std::forward<As>(as)...))); } template <typename ... As> constexpr decltype(auto) operator () (As && ... as) & { return apply(invoke, std::tuple_cat(forward_tuple(t), std::forward_as_tuple(std::forward<As>(as)...))); } template <typename ... As> constexpr decltype(auto) operator () (As && ... as) && { return apply(invoke, std::tuple_cat(forward_tuple(std::move(t)), std::forward_as_tuple(std::forward<As>(as)...))); } Tuple t; };
-
Хранит частично применённые объекты: функцию и первые её
k
аргументов. -
Имеет оператор «скобочки», который принимает произвольное количество аргументов
- При вызове формируется кортеж ссылок на входные аргументы при помощи функции
forward_as_tuple
. - Кортеж с сохранёнными ранее объектами также преобразуется в кортеж ссылок при помощи определённой нами функции
forward_tuple
. - Оба кортежа ссылок склеиваются в один при помощи функции
tuple_cat
. Получается один большой кортеж ссылок. - Склеенный кортеж разворачивается и передаётся в функцию
invoke
при помощи функцииapply
. - Вызов функции
invoke
от полученных аргументов.
- При вызове формируется кортеж ссылок на входные аргументы при помощи функции
-
Всё.
В этом месте любители хитровывернутого шаблонного кода (как я, например), должны испытать лёгкое разочарование.
С другой стороны, простота, элегантность решения и то, что оно собрано всего из нескольких стандартных «кубиков», косвенно свидетельствует о том, что оно вполне жизнеспособно и может быть легко интегрировано в прикладной код.
Использование
int modulo_less (int modulo, int a, int b)
{
return (a % modulo) < (b % modulo);
}
auto v = std::vector<int>{...};
std::sort(v.begin(), v.end(), part(modulo_less, 7));
Благодаря вызову make_tuple
поддерживаются std::ref/cref
:
int append (std::string & s, int x)
{
return s += std::to_string(x);
}
auto s = std::string("qwerty");
auto g = part(append, std::ref(s));
g(5);
g(6);
assert(s == "qwerty56");
А благодаря использованию функции invoke
будут поддерживаться различные сложные случаи, такие как вызов метода класса (см. std::invoke) и т.п.
И всё это «из коробки» и без каких-либо специальных телодвижений с нашей стороны.
Заключение
Почему я считаю своё решение правильным.
- Оно просто и прозрачно. Собирается из «элементарных» компонент, которые уже есть в языке.
- Оно эффективно. Абстракция без накладных расходов.
- Надёжно как молоток. Никакой «магии».
- Хорошо встраивается в существующую парадигму программирования на языке C++.
- Совместимо с инструментами, которые используются в стандартной библиотеке. Например, с
reference_wrapper
для сигнализирования о передаче параметров по ссылке (как вstd::make_tuple
,std::bind
,std::thread
), а также, что очень важно, с алгоритмами.
» Полный исходный код здесь.
К содержанию