Повторюсь, взяла только интересные мне задания, т.е. с элементами того что поняла плохо/не встречала ранее. Сделала за сегодня. с удовольствием отмечаю что сдвиги в положительную сторону хотя-бы в стиле есть.
в 4 главе ясно объяснено почему при вводе нескольких строк начинаются проблемы, и как этого избежать, подробно описана работа с входным потоком. Как работать со строками стиля Си и класса String, разница. для себя я сделала выводы что лучше всего, конечно-же класс string. намного меньше мороки. и метод ввода getline в обоих случаях. в задачах разница проиллюстрирована. и кстати, указатели больше не вызывают у меня ужаса и трепета. много нового узнала о видах структур. эта глава расставила все по местам в моей голове. правда, зачем в задачи на СР втиснута работа с массивом array - загадка. он ведь толком не объяснен, но понять его интуитивно можно, правда, зачем его использовать не зная тонкостей, как обычный массив с немного иным объявлением... что же, почитаем, посмотрим.
3 Глава
в 4 главе ясно объяснено почему при вводе нескольких строк начинаются проблемы, и как этого избежать, подробно описана работа с входным потоком. Как работать со строками стиля Си и класса String, разница. для себя я сделала выводы что лучше всего, конечно-же класс string. намного меньше мороки. и метод ввода getline в обоих случаях. в задачах разница проиллюстрирована. и кстати, указатели больше не вызывают у меня ужаса и трепета. много нового узнала о видах структур. эта глава расставила все по местам в моей голове. правда, зачем в задачи на СР втиснута работа с массивом array - загадка. он ведь толком не объяснен, но понять его интуитивно можно, правда, зачем его использовать не зная тонкостей, как обычный массив с немного иным объявлением... что же, почитаем, посмотрим.
3 Глава
1. Напишите короткую программу, которая запрашивает рост в
дюймах и преобразует их в футы и дюймы. Программа должна использовать символ
подчеркивания для обозначения позиции, где будет производиться ввод. Для
представления коэффициента преобразования используйте символьную константу const.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
cout << "Enter your growth in sm: ___\b\b\b";
int growth;
const char k = 100;
cin >> growth;
cout << "Your growth:" << endl << growth/k << " m" << endl << growth%k << " sm" << endl;
cout << k << endl;
return 0;
}
4 Глава
1. Напишите программу C++, которая запрашивает и отображает
информацию, как показано в следующем примере вывода:
What is your first папе? Betty Sue
What is your last name? Ycwe
What letter grade do you deserve? В
what is your age? 22
Name: Yewe, Betty Sue
Grade: C
Age: 22
Обратите внимание, что программа должна принимать имена,
состоящие из более чем одного слова. Кроме того, программа должна уменьшать
значение grade на одну градацию - т.е. на одну букву
выше. Предполагается, что пользователь может ввести А, В или С поэтому вам не
нужно беспокоиться о пропуске между D и F.
2.
Перепишите листинг
4.4, применив класс C++ string вместо массивов char.
3. Напишите программу, которая запрашивает у пользователя имя,
фамилию, а затем конструирует, сохраняет и отображает третью строку, состоящую
из фамилии пользователя, за которой следует запятая, пробел и его имя.
Используйте массивы char и функции из заголовочного файла cstring. Пример запуска должен выглядеть так:
Enter your first name: Flip Enter your last
name: Fleming
Here’s
the information in a single string: Fleming, Flip
4. Напишите программу, которая приглашает пользователя ввести
его имя и фа милию, а затем построит, сохранит и отобразит третью строку,
состоящую из фамилии, за которой следует занятая, пробел и имя. Используйте объекты
string и методы из заголовочного файла string. Пример
запуска должен выглядеть так:
Enter your first name: Flip Enter your last name: Fleming
Here's the information in a
single string: Fleming, Flip
5.
Структура CandyBar содержит три члена. Первый из них хранит название коробки
конфет. Второй - ее вес (который может иметь дробную часть), а третий — число
калорий (целое значение). Напишите программу, объявляющую эту структуру и
создающую переменную типа CandyBar по имени snack, инициализируя
ее члены значениями "Mocha Munch", 2.3 и 350, соответственно. Инициализация должна быть частью
объявления snack. И, наконец, программа должна отобразить содержимое этой
переменной.
6. Структура CandyBar включает три члена, как описано в
предыдущем упражнении. Напишите программу, которая создает массив из трех
структур CandyBar, инициализирует их значениями по вашему усмотрению и затем
отображает содержимое каждой структуры.
7.
Вильям Вингейт (William Wingate) заведует службой анализа рынка пиццы. О каждой пицце он
записывает следующую информацию:
•
наименование компании
— производителя пиццы, которое может состоять из более чем одного слова;
•
диаметр пиццы;
•
вес пиццы.
•
Разработайте
структуру, которая может содержать всю эту информацию, и напишите программу,
использующую структурную переменную этого типа. Программа должна запрашивать у
пользователя каждый из перечисленных показателей и затем отображать введенную
информацию. Применяйте cin (или его методы) и coût.
8.
Выполните упражнение
7, но с применением операции new для размещения структуры в свободном
хранилище вместо объявления структурной переменной. Кроме того, сделайте так,
чтобы программа сначала запрашивала диаметр пиццы, а потом — наименование
компании.
9.
Выполните упражнение
6, но вместо объявления массива из трех структур CandyBar используйте операцию new для динамического размещения массива.
10.
Напишите программу,
которая приглашает пользователя ввести три результата забега на 40 ярдов (или
40 метров, если желаете) и затем отображает эти значения и их среднее. Для
хранения данных применяйте объект array. (Если объект array не доступен, воспользуйтесь встроенным
массивом.)
1
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
char name[20];
char soname[20];
char letter;
int age;
cout << "What is your first name?" << endl;
cin.getline(name, 20); //принимает значения с пробелма, не оставляет ENTER в буфере
cout << "What is your last name?" << endl;
cin.getline(soname, 20);
cout << "What letter grade do you deserve?" << endl;
cin >> letter;
cout << "What is your age?" << endl;
cin >> age;
cout << "Name: " << name << ", " << soname << endl;
cout << "Grade: " << char(letter+1) << endl; //увеличение буквы на одну, изменение типа вывода на char
cout << "Age: " << age << endl;
}
2
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
void main()
{
string name;
string soname;
char letter;
int age;
cout << "What is your first name?" << endl;
getline (cin, name);//принимает значения с пробелами, для string
cout << "What is your last name?" << endl;
getline (cin, soname);
cout << "What letter grade do you deserve?" << endl;
cin >> letter;
cout << "What is your age?" << endl;
cin >> age;
cout << "Name: " << name << ", " << soname << endl;
cout << "Grade: " << char(letter+1) << endl; //увеличение буквы на одну, изменение типа вывода на char
cout << "Age: " << age << endl;
}
3
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
char name[20];
char soname[20];
char NAME[40];
cout << "What is your first name?" << endl;
cin.getline(name, 20); //принимает значения с пробелма, не оставляет ENTER в буфере
cout << "What is your last name?" << endl;
cin.getline(soname, 20);
strcpy_s (NAME, soname); //копирование в общий массив фамилии
strcat_s (NAME, ", "); // добавление ,
strcat_s (NAME, name); // добавление в конец имени
cout << "Name: " << NAME << endl;
}
4
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
void main()
{
string name;
string soname;
string NAME;
cout << "What is your first name?" << endl;
getline (cin, name);//принимает значения с пробелами, для string
cout << "What is your last name?" << endl;
getline (cin, soname);
NAME = soname;
NAME += ", ";
NAME += name;
cout << "Name: " << NAME << endl;
}
5
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct CandyBar
{
string Name;
int kkal;
double weight;
};
void main()
{
CandyBar snack = {"Mocha Munch", 350, 2.3};
cout << "Candy: " << snack.Name <<endl;
cout << snack.kkal << " Kkal" << endl;
cout << "Weight: " << snack.weight << endl;
}
6
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct CandyBar
{
string Name;
int kkal;
double weight;
};
void main()
{
CandyBar snack[3] = {"Mocha Munch", 350, 2.3,
"Bounty", 445, 0.8,
"Snickers", 540, 1};
cout << "Candy 1: " << snack[0].Name <<endl;
cout << snack[0].kkal << " Kkal" << endl;
cout << "Weight: " << snack[0].weight << endl;
cout << "Candy 2: " << snack[1].Name <<endl;
cout << snack[1].kkal << " Kkal" << endl;
cout << "Weight: " << snack[1].weight << endl;
cout << "Candy 3: " << snack[2].Name <<endl;
cout << snack[2].kkal << " Kkal" << endl;
cout << "Weight: " << snack[2].weight << endl;
}
7
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct Pizza
{
string NameOfComp;
double diam;
double weight;
};
void main()
{
Pizza pizza;
cout << "Name of company" << endl;
getline (cin, pizza.NameOfComp);
cout << "Diameter" << endl;
cin >> pizza.diam;
cout << "weight" << endl;
cin >> pizza.weight;
cout << "Name of company: " << pizza.NameOfComp << endl;
cout << "Diameter: " << pizza.diam << endl;
cout << "weight: " << pizza.weight << endl;
}
8
#include "stdafx.h"
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct Pizza
{
string NameOfComp;
double diam;
double weight;
};
void main()
{
Pizza *pizza = new Pizza;
cout << "Name of company" << endl;
getline (cin, pizza->NameOfComp);
cout << "Diameter" << endl;
cin >> pizza->diam;
cout << "weight" << endl;
cin >> pizza->weight;
cout << "Diameter: " << pizza->diam << endl;
cout << "Name of company: " << pizza->NameOfComp << endl;
cout << "weight: " << pizza->weight << endl;
}
9
#include<iostream>
#include<string>
struct CandyBar
{
std::string name;
float weight;
int calor;
};
void main()
{
using namespace std;
CandyBar *ps = new CandyBar [3]; //создание динамической структуры из 3 элементов
ps[0].name= "Muncha Mon";//динамический массив нельзя инициализировать как статический массив, потому приходится инициализировать его почлено, т.к. это противоречит принципу и логике выделения динамической памяти
ps[0].weight=350.5;
ps[0].calor=12;
ps[1].name= "Body Scru";
ps[1].weight=125.7;
ps[1].calor=38;
ps[2].name = "Dobey Bru";
ps[2].weight = 30.1;
ps[2].calor = 63;
cout<<"1 struct: "<<ps[0].name<<", "<<ps[0].weight<<", "<<ps[0].calor<<"."<<endl;
cout<<"2 struct: "<<ps[1].name<<", "<<ps[1].weight<<", "<<ps[1].calor<<"."<<endl;
cout<<"3 struct: "<<ps[2].name<<", "<<ps[2].weight<<", "<<ps[2].calor<<"."<<endl;
delete [] ps;
}
10
#include "stdafx.h"
#include<iostream>
#include<array>
using namespace std;
void main()
{
array <double, 3> run; //использование шаблонного массива, тип элементов, их количество, название
cout << "result of the first race: " << endl;
cin >> run[0];
cout << "result of the second race: " << endl;
cin >> run[1];
cout << "result of the third race: " << endl;
cin >> run[2];
cout << "result of the first race: " << run[0] << endl;
cout << "result of the second race: " << run[1] << endl;
cout << "result of the third race: " << run[2] << endl;
cout << "Mean: " << (run[0] + run[1] + run[2]) / 3 << endl;
}
Здравствуй, смотрел твои решения по Прату, тоже его читаю, я на 4 главе, учил когда-то программировать еще в далеком 2004 году, надеюсь если будут вопросы можно будет к тебе обратится?... так как иногда нужно спросить, а не знаешь к кому обратиться...
ОтветитьУдалитьбез проблем, обращайся, я создала этот блог для тех кому нужна помощь)
УдалитьЕще вопрос почему ты везде включаешь библиотеку #include "stdafx.h" где и какие функции она выполняет в проге?
ОтветитьУдалитьфайл, который служит для генерации файла предкомпилированных заголовков; в него включено большинство стандартных и используемых в каждом приложении включаемых файлов. Сделано это для того, чтобы ускорить компиляцию проекта.
Удалитьэто особенность среды visual studio
спасибки посмотрю что так внутри
ОтветитьУдалитьэээ чет у меня такой библиотеки вообще нет, выдает ошибку
ОтветитьУдалитьу тебя какой вижуал
ОтветитьУдалитьу меня 12. если у тебя без этого заголовка запускается - не надо его пихать)
ОтветитьУдалитьу меня 10. я прочел 4 главу запутали меня немного указатели, структуры вроде понятно на подобии функций, теперь думаю прочитать заново 4 главу, решил задачки поделать в 3 задаче strcаt: идентификатор не найден пишет подключил вроде cstring iostream все равно не могу понять в чем дело посмотрел как ты сделала, вообще запутался))) например мне не понятно вот это strcat_s что там s на конце забыл...
ОтветитьУдалитьой идиооооот ой придурраааак я за место strcаt писал strcut вот он и ругается... пардон)))
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьПривет, очень хорошие решения. Но. Прочти еще раз условие 8 задания, 4 главы. Решение немного не такое. Там есть хитрость.
ОтветитьУдалить