Листинг программы на c что это

Изучение листинга ассемблирования, генерируемого компилятором C++ — часть 1

Компилятор VC++ может создать текстовый файл, показывающий ассемблерный код, сгенерированный для файла C/C++ file. Этот файл позволяет узнать, какой вид кода генерирует компилятор. Файл дает хорошее представление о ряде принципов, таких как обработка исключений, таблицы вызова и т.д. Элементарного знания языка ассемблера достаточно для понимания вывода файла листинга. Цель данной статьи (первой в серии из двух статей) – показать, как файл листинга помогает понять внутренние механизмы компилятора C++.

Установка файла листинга

Можно установить параметры компилятора C/C++ для генерации файла листинга в диалоговом окне «Настройки проекта VC6», как показано ниже.

В VC++.NET можно установить тот же параметр в диалоговом окне «Свойства проекта».

Компилятор генерирует следующие разные типы листинга:

1. Только ассемблерный код (.asm)
2. Ассемблерный код и машинный код. (.cod)

Язык Си для начинающих / #1 — Введение в язык Си


3. Ассемблерный код вместе с исходным кодом. (.asm)
4. Ассемблерный код вместе с машинным и исходным кодом. (.cod)

Просмотр файла листинга

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

#include

int main(int argc, char* argv[])
printf(«Hello World!»);
return 0;
>

1. Листинг только ассемблера (/FA)

Листинг ассемблирования помещается в файл с расширением .asm в промежуточном каталоге. Например, если имя файла — main.cpp, то в промежуточном каталоге появится файл main.asm. Ниже приведен фрагмент кода главной функции из файла листинга:

• Строки, начинающиеся с ; , являются комментариями
• PUBLIC _main означает, что функция _main используется совместно с другими файлами (в отличие от статических функций). У статических функций нет префикса.
• CONST SEGMENT указывает начало сегмента данных CONST. Компилятор VC++ помещает в эту секцию постоянные данные, такие как строки. Видно, что строка «Hello World» помещается в сегмент CONST. Изменение любых данных в сегменте вызывает генерацию исключения нарушения доступа. Подробнее об этом позже.
• _TEXT SEGMENT отмечает начало другого сегмента. Компилятор помещает весь код в этот сегмент.
• _argc$ = 8 и _argv$ = 12 указывают стековые положения аргументов argc и argv. В данном случае это значит, что если прибавить 8 к указателю стека (регистр ESP процессора), то получится адрес параметра argc. Для адреса возврата будет смещение 4.
• _main PROC NEAR указывает на начало функции _main. Заметьте, что у функций C (функций, объявленных с extern «C») в начале имени ставится _, у функции C++ имя декорируется.
• Видно, что компилятор проталкивает адрес строки «Hello World» в стек и вызывает функцию printf. После окончания вызова функции указатель стека увеличивается на 4 (так как printf имеет соглашение о вызовах C).
• EAX – регистр, хранящий возвращаемое значение функции. EAX подвергается операции «исключающее или» сам с собой. (Это быстрый способ привести регистр к нулю.) Причина состоит в том, что содержимое оригинального кода возвращает 0 из функции main.
• Наконец, ret 0 – команда возврата из функции. Числовой аргумент 0, идущий за командой ret, указывает число, на которое надо увеличить указатель стека.

Это был листинг только ассемблера. Посмотрим, как выглядят три остальных листинга.

2. Ассемблер с исходным кодом (/FAs)

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

3. Ассемблер с машинным кодом (/FAc)

Листинг показывает коды команд вместе с мнемониками команд. Этот листинг обычно генерируется в файле .cod. В данном примере листинг окажется в файле main.cod.

4. Ассемблер, машинный и исходный код (/FAsc)

Этот листинг также генерируется в файле .cod. Как и ожидалось, он показывает исходный код вместе с машинным кодом и ассемблером.

Были рассмотрены все четыре типа листинга, генерируемые компилятором. Обычно нет необходимости смотреть на машинный код. Большей частью ассемблер с исходником (/FAs) – самый полезный листинг.

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

Сегмент Const

Компилятор поместил постоянную строку «Hello World» в сегмент CONST. Последствия этого показаны на следующем пробном приложении.

#include

char* szHelloWorld = «Hello World»;

int main(int argc, char* argv[])
printf(szHelloWorld);

szHelloWorld[1] = ‘o’;
szHelloWorld[2] = ‘l’;
szHelloWorld[3] = ‘a’;
szHelloWorld[4] = »’;

printf(szHelloWorld);

return 0;
>

Сначала это пробное приложение печатает «Hello World», пытается преобразовать строку «Hello» в «Hola'» и в конце печатает измененную строку. Скомпонуем и запустим приложение. Оно аварийно завершит работу с исключением нарушения доступа и строкой szHelloWorld[2] = ‘l’;.

char* szHelloWorld = «Hello World»;
char szHelloWorld[] = «Hello World»;

На этот раз приложение успешно запустится. Изучение листинга показывает причину.

1. В первом случае данные «Hello World» помещаются в сегмент CONST, являющийся неизменяемым сегментом

2. Во втором случае данные помещаются в сегмент _DATA, являющийся сегментом для чтения и записи

Источник: www.cyberguru.ru

Язык программирования C++

Бьёрн Страуструп

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

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

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

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

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

Читайте также:
My drivers что это за программа

И если это чудовище даже начинало работать, то в него уже никто не лез – себе дороже. Говорят, даже Вирт как-то выразился о С++ в том плане, что сложность и избыточность языка вовсе не обозначает его мощности, и путать это не надо. А представить себе более сложный и запутанный в старых и новых проблемах язык, чем С++, почти нереально. Это, так сказать, что касается критики языка.

Из достоинств можно назвать то, что С++ стал самым стандартным и востребованным базовым языком в мире, на котором до недавнего времени писалось практически все: как в мире Windows, так и Unix/Linux. Мода есть мода, а без знания оного языка заполучить престижную работу было нельзя. Что-то вроде дресс-кода на костюмы или туфли на каблуках у женщин – пусть неудобно и ноги ломаются, но надо! В результате С++ стали использовать везде – где надо и где не надо, создав вынужденную армию кодеров, языка до конца не воспринимающих, но готовых до смерти биться под его знаменами. И неважно, что теперь чаще пишут на Java, С#, Nemerle и прочих потомках Си – синтаксис и концепции у них практически одинаковы.

В связи с «глобальностью» языка, компиляторы под него пишут многие компании: Microsoft, Intel, Watcom, Embarcadero и др. Помимо коммерческих реализаций, есть и бесплатные, включая линейку Turbo C++ for DOS, а также проект GNU. Интересно, что «родитель» языка Си тоже развивается в своем направлении, причем своими возможностями увеличивает пропасть в плане совместимости языков.

Листинг программы на C++

В качестве примера синтаксиса предоставляем вам кусочек заимствованной программы. Программа печатает на экран содержимое текстового файла.

Источник: dprogu.ru

Как сделать листинг и описание кода?

Описание кода )
Есть код ,реализовывает класс квадратной матрицы заданного пользователем размера .Реализовываются.

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

Как сделать листинг программы?
Подскажите как сделать листинг программы. Написал программу а теперь надо сделать листинг и.

Получить ассемблерный листинг из кода на с++
Требуется написать программу на ассемблере, которая бы занималась неким.

17 / 17 / 17
Регистрация: 31.10.2014
Сообщений: 79

Итропинкаилесок, Почему у вас в формуле где x1,2 вы сначала делите на 2, а потом еще на ‘a’?
Если мне не изменяет память, то там 2*a

606 / 581 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
как делать ЛИСТИНГ
прямо в студии Ctrl+P -> Ок
и из принтера магическим образом ваш листинг сам выползет.
Регистрация: 04.08.2015
Сообщений: 180
Spectral-Owl, код и является листингом ?
TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
код и является листингом ?
Регистрация: 04.08.2015
Сообщений: 180

Woldemar89, а сам код можете проверить ? Преподаватель говорит что код с ошибкой. Он его запустил пару раз он работал и в какой-то n-ый раз он чето ввел и вылезла ошибка и довай унижать мну)) А я ведь новичок не шарю еще совсем .

TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
а сам код можете проверить ? Преподаватель говорит что код с ошибкой.

А чему уравнение то равно? Y где?

Добавлено через 1 минуту
Хотя, чет туплю — 0 наверно.

Добавлено через 1 минуту
http://www.kvadur.info/
Думаю, нужно просто описать условия от A и D и не трогать остальное.

Где A не равно 0.
Если D > 0, то уравнение имеет два различных вещественных корня.
Если D = 0, то оба корня вещественны и равны.
Если D < 0, то оба корня являются комплексными числами.

Регистрация: 04.08.2015
Сообщений: 180

Ну код же нормальный правильно без ошибок ? Не должно же ошибку выдавать ?Woldemar89,

Добавлено через 4 минуты
Woldemar89, т.е убрать строки 22-29?

TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
Ну код же нормальный правильно без ошибок

Я хз, я бы так сделал, если что сильно не ругай, пятница все-таки

Кликните здесь для просмотра всего текста

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
using System; namespace уравнение { class Program { static void Main(string[] args) { Console.WriteLine(«Решаем квадратное уравнение»); Console.WriteLine(«Введите а=»); var a = double.Parse(Console.ReadLine()); Console.Write(«Введите b=» var b = double.Parse(Console.ReadLine()); Console.Write(«Введите с=»); var c = double.Parse(Console.ReadLine()); var d = b * b — 4 * a * c; if (a == 0) Console.WriteLine(«Уравнение не квадратное (оно линейное).»); else { if (d == 0) Console.WriteLine(«Оба корня вещественны и равны. x12 = «, -b/2/a); if (d 0) Console.WriteLine(«Оба корня являются комплексными числами.»); if (d > 0) Console.WriteLine(«Уравнение имеет два различных вещественных корня. x1 = ; x2 = ;», (-b + Math.Sqrt(d)) / 2 / a,(-b — Math.Sqrt(d)) / 2 / a); } Console.ReadKey(); } } }
Регистрация: 04.08.2015
Сообщений: 180

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

Добавлено через 2 минуты
Может какая программа есть например «справочник по С# где описываются действия элементов кода» . Woldemar89,
например вводишь код а он тебе описывает )

TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
написать описание

Комментарии к коду сделай, или оформи все в класс с методами и перед классом и методами 3 раза жмакни слеш.
Появится че то типа этого. Summary, как ты понял, — описание.

1 2 3 4 5
/// /// /// /// static void Main(string[] args)
Добавлено через 55 секунд
например вводишь код а он тебе описывает

Кгда наводишь на методы итп — всплывает подсказка, ты может в своих проектах сделать также — используй summary — как я описал выше.

Регистрация: 04.08.2015
Сообщений: 180

Догадался посчет ошибок ) Преподаватель тупо меня завалил. видимо вбил в место цифр буковки вшатал и глумился подоНОК

Добавлено через 1 минуту
Ок щас попробую

TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403

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

Читайте также:
Что за программа оксана

TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
видимо вбил в место цифр буковки вшатал и глумился подоНОК

Глумиться над отсутствием защиты от дурака — их любимое дело

Добавлено через 1 минуту
По мне, когда-то, самое обидное было когда защита от дурака занимала больше, чем сама лаба..

Регистрация: 04.08.2015
Сообщений: 180

Woldemar89, а так я так примерно и делал только к каждой строке писал комментарий только я всякую чушь написал. вот и думаю может есть программа или сайт для новичков где описываются методы класы и т.п Если наводить на элементы или хз как они нозываются КОДА то выходят на некоторых подсказки но они ГРУБЫЕ и непонятные.

TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
где описываются методы класы

msdn — но, вставлять оттуда,- както глупо выглядит. Не понимаю, чего от тебя требуют.
Может, реально препод стебет, иили не объясняет, что хочет видеть.

Регистрация: 04.08.2015
Сообщений: 180

Woldemar89, он требует описания. Я сначала подумал что через слешы тоже хочет комментарии ) А потом говорит что не так надо делать. Надо прямо в отчете в ворде написать ОПИСАНИЕ:
например
using System;// using System; — говорит о том, что мы будем использовать в тексте программы некие классы (или другие типы) из пространства имен System библиотеки классов .NET Framework.

namespace уравнение // namespace — мы определяем для программы собственное пространство имен с именем уравнение.
class Program //Класс — это основная организационная структура объектно-ориентированных языков типа C#. Все ваши операторы должны находиться внутри определения какого-либо класса. Невозможно написать какой-либо оператор вне класса. Проще всего сказать, что класс — это совокупность данных и связанного с ним кода. Определение класса заключается в фигурные скобки.
static void Main(string[] args)// Функция Main является точкой входа в программу, с которой начинается ее выполнение. Ключевое слово void указывает, что функция ничего не возвращает. Функция Main принимает параметр в виде массива строк с именем args. Данный параметр имеет смысл, когда мы запускаем приложение и передаем ему в командной строке какие-либо параметры, которые затем передаются приложению в массиве args.
«Информация возможна не верна»

Добавлено через 4 минуты
Woldemar89, вообщем главная проблема в том что я не могу описать действия кода че оно делает в той или и ной момент и т.п Нешарю в C# юзать начал неделю назад

TheGreatCornholio
1249 / 727 / 285
Регистрация: 30.07.2015
Сообщений: 2,403
он требует описания.
Ну, раз ты понял, что он хочет — накатай, ты неплохо начал, в чем конкретно трудности?

Регистрация: 04.08.2015
Сообщений: 180

Console.WriteLine (выводит вводит . как правильно описать ))
var. (что такое ? )))
if (условие или как описать эту штуКУ ? )
else — ?

Вот так не могу сформулировать правильно

Добавлено через 34 секунды
Woldemar89,

Добавлено через 5 минут
Console.WriteLine (выводит вводит . как правильно описать ))
var n = double.Parse(Console.ReadLine())
var. (что такое ? )))
if (условие или как описать эту штуКУ ? )
else — ?

Вот так не могу сформулировать правильно

Добавлено через 34 секунды
Woldemar89,

Источник: www.cyberforum.ru

Структура программ на языке Си

Все программы, написанные на языке Си, имеют общую структуру. О которой мы и поговорим в этом уроке. В этом нам поможет наша первая программа, написанная на предыдущем шаге.

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

Рис.1 Карта «Структура программ на языке Си.» Начальный уровень.

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

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

Листинг 1. Программа 1. Печатает «Hello, World!»

#include int main(void)

Листинг 2. Программа 2

int main(void)

Листинг 3. Программа 3

#include int main(void)

Не торопитесь смотреть продолжение урока и правильный ответ на эту задачу. Для начала попробуйте ответить самостоятельно. После этого нажмите кнопку «Смотреть продолжение!»

Итак, ответ: Во всех программах выше присутствует следующая конструкция:

Листинг 4. Главная функция любой программы на языке Си — функция main.

int main(void)

Что же это за конструкция. Это объявление функции main. Такая функция обязательно есть в каждой программе, которая написана на языке Си.Большая программа или маленькая, компьютерная игра или программа «Hello, World!», написана вами или Биллом Гейтсом — если программа написана на языке Си — в ней есть функция main. Это так сказать главная функция нашей программы. Когда мы запускаем программу, то можно думать, что запускаем функцию main этой программы.

Остановимся на секундочку. Мы, кажется, уже кое-что выяснили о структуре программ на языке Си. Любая программа на языке Си должна содержать функцию main. Отобразим этот факт на нашей карте знаний «Структура программ на языке Си.»

Рис.2 Карта «Структура программ на языке Си.» Функция main.

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

Давайте я расскажу немного о функции main и о функциях вообще.

Перед именем функции написано int, это сокращение от слова integer, которое переводится с английского, как «целое». Подобная запись означает, что когда функция main завершит свою работу, она должна вернуть вызывающей программе (в нашем случае это операционная система) какое-нибудь целое число. Обычно, для функции main это число ноль, которое оповещает операционную систему: «Мол, всё хорошо. Происшествий не случилось.»

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

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

Читайте также:
Adsl что это за программа

Внутри фигурных скобок идёт описание функции main, т.е. непосредственно то, что эта функция должна делать.

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

Вы можете спросить, а почему именно нуль? А чёрт его знает! Просто так обычно делают. Можно, в принципе, возвращать какое-нибудь другое целое число, например 100, или -236. Лишь бы оно было целым числом.

Помните про int? Поэтому и целое.

Вот мы и разобрались с функцией main. Ещё один момент. То что записано в фигурных скобках обычно называют «тело функции» (или описание функции), а первую часть, та что перед фигурными скобками называется заголовок функции.

Вернёмся теперь к нашей первой программе «Hello, World» и посмотрим, что там к чему.

Листинг 5. Программа «Hello, World»

#include int main(void)

Кое-что нам теперь уже понятно в этой программе. Не ясными остаются только две строки, пойдём по порядку.

Листинг 6. Директива include

#include

Данная строчка это сообщение компилятору. Такие сообщения, начинающиеся с символа #, называются директивами компилятора. Буквально: «подключи файл stdio.h». Во время компиляции вместо этой строчки вставится содержимое файла stdio.h. Теперь немного поговорим об этом файле. stdio.h (от англ.

STanDart Input Output) это заголовочный файл, в нем описаны различные стандартные функции, связанные с вводом и выводом.

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

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

Так же и компилятор. Когда он встречает какую-нибудь функцию, он ищет её описание (т.е. что она должна делать и что обозначает) в начале программы (с самого начала и до момента её использования в программе). Так вот, функция printf() описана в файле stdio.h. Поэтому мы и подключаем его. А вот когда мы его подключим, компилятор сможет найти функцию printf(), иначе он выдаст ошибку.

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

Рис.3 Карта «Структура программ на языке Си.» Блок подключения заголовочных файлов.

Продолжим разбираться с нашей программой.

Листинг 7. функция printf()

printf(«Hello, World!n»);

В этой строке мы вызываем стандартную функцию вывода на экран printf(). В данном простейшем случае мы передаем ей один параметр, строку, записанную в кавычках, которую надо вывести на экран, в нашем случае это Hello, World! n. Но постойте, а что это за n? На экране, во время запуска программы, никаких n не было. Зачем тогда мы тут это написали?

Данная последовательность это специальный символ, который является командой перейти на следующую строку. Это как в MS Word нажать клавишу Enter. Таких специальных символов несколько, все они записываются с помощью символа «» — обратный слеш. Такие специальные символы называются управляющими символами. Потом я еще покажу вам их.

В остальном на экране появится именно то, что вы написали в двойных кавычках.

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

Чтобы вызвать какую-нибудь функцию, необходимо написать её имя и указать передаваемые ей параметры в круглых скобках. У функции может быть один или несколько параметров. А может не быть параметров вовсе, в таком случае в скобках писать ничего не нужно. Например, выше мы вызвали функцию printf() и передали ей один параметр строку, которую необходимо вывести на экран.

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

Листинг 8. Стандартная заготовка для программ на языке Си.

#include int main(void)

Ну вот вроде бы и всё. Этом первый урок можно считать законченным. Хотя нет, ещё один момент есть.

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

Рис.4 Программа-открытка на 8 марта.

Исходный код программы-открытки есть в архиве с исходными кодами этого урока. Экспериментируйте! У вас всё получится.

Сохрани в закладки или поддержи проект.

Практика

Задачи с автоматической проверкой решения. Для удобства работы сразу переходите в полноэкранный режим

Исследовательские задачи для хакеров:

  1. Попробуйте добавить управляющий символ после слова Hello,. Посмотрите, как изменится ситуация на экране.
  2. Попробуйте добавить в программу еще несколько функций вывода на экран.
  3. Попробуйте удалить из программы точку с запятой после какого-нибудь оператора. Посмотрите, как на это отреагирует ваш компилятор, какую ошибку он вам выдаст.

Дополнительные материалы

  1. Переживаете из-за того, получится ли у вас научиться или нет? Тогда посмотрите следующее видео.

Источник: youngcoder.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru