Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 174
1

Перешёл с Lafore на Стенли Б. Липпмана

21.06.2021, 20:07. Показов 1563. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
И сразу же проблемы. Первое задание - создать функцию main (){return 0}.

Второе задание - main (){return -1}, мол, увидите, как компилятор реагирует на сообщение об ошибке.
А никак не реагирует. Я усложнил задачу, ввёл решение простого примера. Пример решает правильно, на сообщение об ошибке никакой видимой реакции.

Что я упустил? В чём урок?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2021, 20:07
Ответы с готовыми решениями:

Выполняя задания из книги Стенли Липпмана допустил ошибку. Не могу понять где.
Выполняя задания из книги Стенли Липпмана не могу понять где ошибка в коде с оператором While...

Найти причины и способы исправления ошибки "C1083: Не удается открыть файл включение" (книга Стенли Липпмана)
скачал язык программирования с++ базовый курс 5 издание липман. куда устанавливать файлы которые я...

Где взять файл Sales_item.h для книги Стенли Липпмана "C++ для начинающих"
Всем привет! Изучая классы по книге Стенли Липпмана "с++ для начинающих", столкнулся с такой...

Тонкости из учебника Lafore
Вот задача из учебника (Ниже вопросов). Разъясните мне, пожалуйста, кто-нибудь следующие моменты: ...

9
Вездепух
Эксперт CЭксперт С++
11695 / 6374 / 1724
Регистрация: 18.10.2014
Сообщений: 16,068
21.06.2021, 20:28 2
Цитата Сообщение от Walex Посмотреть сообщение
Перешёл с Lafore на Стенли Б. Липпмана
О какой именно книге идет речь?

Цитата Сообщение от Walex Посмотреть сообщение
создать функцию main (){return 0}.
Это в книге Липпмана вы увидели объявление функции main без указания типа возвращаемого значения?

Цитата Сообщение от Walex Посмотреть сообщение
Второе задание - main (){return -1}, мол, увидите, как компилятор реагирует на сообщение об ошибке.
О каком месте в книге идет речь?

Цитата Сообщение от Walex Посмотреть сообщение
А никак не реагирует.
Без указания типа возвращаемого значения? Без ; в конце return-statement? Что это за компилятор такой?
0
0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 174
21.06.2021, 20:36  [ТС] 3
Липпман 5 переиздание от 2012 года.
стр 20.
Упражнение 1.2. Измените код программы так, чтобы функция
main() возвращала значение -1. Возвращение значения -1 зачастую
свидетельствует о сбое при выполнении программы. Перекомпилируйте и
повторно запустите программу, чтобы увидеть, как используемая
операционная система реагирует на свидетельство об отказе функции
main().

Разумеется, было написано: int main (){return 0;}.

Добавлено через 3 минуты
#include <iostream>
using namespace std;
int main()
{
int s = 1;
++s;
cout << s;
return -1;
}
0
Вездепух
Эксперт CЭксперт С++
11695 / 6374 / 1724
Регистрация: 18.10.2014
Сообщений: 16,068
21.06.2021, 20:37 4
Цитата Сообщение от Walex Посмотреть сообщение
Липпман 5 переиздание от 2012 года.
Как книга называется???

Цитата Сообщение от Walex Посмотреть сообщение
Возвращение значения -1 зачастую
свидетельствует о сбое при выполнении программы. Перекомпилируйте и
повторно запустите программу, чтобы увидеть, как используемая
операционная система реагирует на свидетельство об отказе функции
main().
Не понял. Здесь написано: "как используемая операционная система реагирует...". В исходном сообщении вы нам рассказывали про "мол, увидите, как компилятор реагирует на сообщение об ошибке."

Почему в исходном сообщении вы нам рассказывали про реакцию компилятора, если в книге ясно написано про реакцию операционной системы?
1
0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 174
21.06.2021, 20:52  [ТС] 5
То, что ясно для вас, не ясно мне. Я только начал учить язык.
1) В чём разница между компилятором и операционной системой? Разве компилятор не часть её?
2) Хорошо, задам вопрос по другому: как операционная система должна была реагировать, и где я должен был увидеть это, как не в компиляторе?

Добавлено через 8 минут
Книга называется:" Пятое издание
Язык программирования C++
Базовый курс
Стенли Б. Липпман
Жози Лажойе
Барбара Э.Му"
0
585 / 488 / 371
Регистрация: 05.11.2013
Сообщений: 1,265
Записей в блоге: 6
21.06.2021, 21:04 6
Цитата Сообщение от Walex Посмотреть сообщение
как используемая
операционная система реагирует на свидетельство об отказе функции
А как должна была? Вы проверяли, что возвращает main в ОС?
Вот, реагирует на скрине
Перешёл с Lafore на Стенли Б. Липпмана
0
18842 / 9841 / 2409
Регистрация: 30.01.2014
Сообщений: 17,284
21.06.2021, 21:27 7
Walex,
Цитата Сообщение от Walex Посмотреть сообщение
Разве компилятор не часть её?
Нет.

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

Каким компилятором вы пользуетесь?

Добавлено через 18 минут
Цитата Сообщение от Walex Посмотреть сообщение
Я только начал учить язык.
Тут как бы есть нюанс.
Обычно перед изучением языка программирования нужно пройти хотя бы минимальный курс информатики. Из чего состоит компьютер, что такое операционная система, как пользоваться командной строкой, что такое компилятор - это все в этом курсе.
Насколько знаю, это все в том или ином виде есть в школьной программе.
Если по какой-либо причине у вас этих знаний нет, или они неполные, перед началом чтения любого учебника по языку программирования, нужно хотя бы бегло ознакомиться с "нулевым" уровнем.

Думаю, можно найти учебник, в котором в первых главах есть нужные сведения, но поверьте, это закономерно сказывается на качестве материала. В тех книгах, где автор пытается охватить вообще все, вставляет туда и историю ЭВМ, и основы работы с ПК, и, например, работу в интернете, остается очень мало места для собственно языка программирования. В итоге материл дается по верхам (иначе книга получилась бы на 5000 страниц), что ничего хорошего для изучения не несет.
0
0 / 0 / 0
Регистрация: 15.06.2021
Сообщений: 174
21.06.2021, 21:54  [ТС] 8
Вероятно, да, нужно. Но командной строки я не вижу, так как выхожу в программу через Visual Studio. Поэтому я общаюсь непосредственно с компилятором.
Оценить необходимость тех или иных знаний (а их бесконечно много, утонуть можно), можно только упираясь в проблему.
Если можно, посоветуйте нужную книгу (а лучше - статью), где бы коротко и самую суть.
А пока что я вижу, что компилятор работает нормально. Он делает то, что мне нужно, даже если идёт возврат ошибки. Вы, покуда я не получил знаний по операционной системе, можете на пальцах объяснить, что даёт возврат в систему сообщения об ошибке?
0
18842 / 9841 / 2409
Регистрация: 30.01.2014
Сообщений: 17,284
21.06.2021, 23:42 9
Цитата Сообщение от Walex Посмотреть сообщение
через Visual Studio
Запускайте через F5. Увидите вот это:
Перешёл с Lafore на Стенли Б. Липпмана


Цитата Сообщение от Walex Посмотреть сообщение
что даёт возврат в систему сообщения об ошибке?
Другие программы могут его анализировать и как-то использовать.
0
18842 / 9841 / 2409
Регистрация: 30.01.2014
Сообщений: 17,284
22.06.2021, 00:03 10
Лучший ответ Сообщение было отмечено Walex как решение

Решение

Цитата Сообщение от Walex Посмотреть сообщение
А пока что я вижу, что компилятор работает нормально
Компилятор отвечает только за компиляцию. Т.е. только за то, что относится к непосредственно языку.
А то, что смотрите вы, - это уже этап выполнения программы. За это отвечает среда исполнения. В данном случае эту среду контролирует IDE. IDE (Visual Sudio) - это не компилятор, компилятор - это только ее часть.

Цитата Сообщение от Walex Посмотреть сообщение
Он делает то, что мне нужно, даже если идёт возврат ошибки.
"Возврат ошибки" - это часть логики программы. Т.е. в данном случае важно то, что произойдет после того, как ваша программа отработает.
Допустим вы написали программу, которая копирует один файл. Ваша программа открывает файл по заданному пути и пытается скопировать его в указанный каталог. На протяжении этих действий могут возникнуть разнообразные ошибки. Например заданного файла может не оказаться на диске, путь некорректный или нет прав на чтение. Это - ошибки исполнения программы. Естественно, если эта ситуация произошла, то программа дальше работать не может. Что она может? Уведомить пользователя о том, что произошла ошибка соответствующим сообщением, а затем корректно завершить работу.
Допустим эта ваша программа копирования файлов участвует в скрипте командной строки (скрипт может быть написан вами или другим пользователем, который имеет в распоряжении вашу программу). Скрипт получает список файлов и затем для каждого из них выполняет копирование. Как скрипт узнает, что копирование выполнено успешно? Он может анализировать код возврата каждого из вызовов вашей программы и что-то с этим сделать. Для того, чтобы это стало возможным, вы можете написать программу копирования файлов так, что в случае возникновения ошибки, помимо вывода информационного сообщения, был также предусмотрен возврат соответствующего кода при завершении программы. Какие это будут коды, и сколько из них будут означать ошибку - определяете вы сами, и, например, указываете в справке к вашей программе. Т.е. это всего лишь соглашение, определение правил которого оставлено за вами.
1
22.06.2021, 00:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2021, 00:03
Помогаю со студенческими работами здесь

Учебник Lafore. Обыкновенные дроби
Привет всем! Учу c++ по книги Lafore, ( раньше учился по Липман, но здесь посоветовали Lafore,...

Ошибки компиляции примера из учебника Lafore
Перенёс решённую в учебнике задачу в компилятор, он мне выдаёт ошибки. И уже не в первый раз. Жалко...

Стенли Липман - С++ Класс Sales_item.h
сама программа #include &lt;iostream&gt; #include &quot;Sales_item.h&quot; using namespace std; int main()...

Стенли Липман, С++, файл Sales_item.h
Работаю в среде программирования Сode Blocks. Читая книгу Стенли Липмана, я наткнулся на упражнение...

Упражнение из учебника С. Липпмана
1. Напишите программу, которая запрашивает у пользователя два числа и выводит на стандартное...

Поясните по примеру из Липпмана
В одном из примеров в главе Наследование есть вот такая реализация &quot;управляющего класса&quot; class...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru