Форум программистов, компьютерный форум, киберфорум
-ДоМоВоЙ-
Войти
Регистрация
Восстановить пароль
Решение задач из учебника Р.Лафоре
Оценить эту запись

Решение задач из учебника Р.Лафоре ч4

Запись от -ДоМоВоЙ- размещена 31.01.2016 в 11:03
Обновил(-а) -ДоМоВоЙ- 01.02.2016 в 09:34

Решил выложить решения задач по учебнику Р.Лафоре.

Кликните здесь для просмотра всего текста
  • Основы программирования на С++
  • Циклы и ветвления
  • Структуры
  • Функции
  • Объекты и Классы
  • Массивы и строки
  • Перегрузка операций
  • Наследование
  • Указатели
  • Виртуальные функции
  • Многофайловые программы

--Основы программирования--

Упражнение 1.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Считая, что кубический фут равен 7.481 галлона, написать программу, 
//запрашивающую у пользователя число галлонов и выводящую на экран 
//эквивалентный объем в кубических футах.
//////////////////////////////////////////////////////////
#include<iostream>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    const float f=7.481;
    int gal;
    cout<<"Введите количество галлонов: ";
    cin>>gal;
    cout<<gal<<" галлонов, эквивалентно "<<gal/f<<" футов.";
    system("pause");
    return 0;
}

Упражнение 2.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Напишите программу, выводящую следующую таблицу:
//1990          135
//1991         7290
//1992        11300
//1993        16200
//////////////////////////////////////////////////////////
#include<iostream>
#include<iomanip>//для iomanip
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    int ch1=135,ch2=7290,ch3=11300,ch4=16200;
    cout<<setw(6)<<"1990"<<setw(12)<<ch1<<endl<<setw(6)<<"1991"<<setw(12)<<ch2<<endl<<setw(6)<<"1993"<<setw(12)<<ch3<<endl<<setw(6)<<"1993"<<setw(12)<<ch4;
    system("pause");
    return 0;
}


Упражнение 3.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Напишите программу генерирующую следующий вывод. 
//10->20->19
//Используйте представление числа 10 в виде целой константы.
//Для вывода числа 20 воспользуйтесь одной из арифметических операций
//с присваиванием, а для вывода числа 19 - операцией декремента.
//////////////////////////////////////////////////////////
#include<iostream>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    int ch;
    cout<<"Введите число: ";
    cin>>ch;
    cout<<ch<<endl;
    ch+=10;
    cout<<ch<<endl;
    --ch;
    cout<<ch;
    return 0;
}


Упражнение 4.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//Напишите программу, выводящую на экран ваше
//любимое стихотворение. Для разбиения на строчки используйте подходящую управляющую последовательность.
//////////////////////////////////////////////////////////
#include<iostream>
#include<iomanip>
//////////////////////////////////////////////////////////
using namespace std;
int main()
{
    cout<<"Ночь, улица, фонарь, аптека"<<endl<<"Бессмысленный и тусклый свет."<<endl<<"Живи еще хоть четверть века - "<<endl<<"Все будет так. Исхода нет."<<endl<<endl<<"Умрешь - начнешь опять сначала"<<endl<<"И повторится все как встарь"<<endl<<"Ночь, ледяная гладь канала"<<endl<<"Аптека, улица, фонарь"<<endl<<endl<<setw(23)<<" "<<"А. Блок";
    system("pause");
    return 0;
}


Упражнение 5.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Напишите программу, которая принимает букву от пользователя,
//а затем выводит нулевое или ненулевое значение в зависимости
//от того, является ли буква строчной или нет. 
//////////////////////////////////////////////////////////
#include<iostream>
#include<ctype.h>// для функции islower()
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    char s;
    cout<<"Введите букву: ";
    cin>>s;
    cout<<islower(s);
    system("pause");
    return 0;
}


Упражнение 6.

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

C++
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
//На биржевых торгах за 1 фунт стерлингов давали $1.487
//за франк - $0.172, за немецкую марку - $0.584, а за
//японскую иену - 0.00955. Напишите программу, которая
//запрашивает денежную сумму в долларах, а затем выводит
//эквивалентные суммы в других валютах.
//////////////////////////////////////////////////////////
#include<iostream>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    const float pound=1.487;
    const float franc=0.172;
    const float mark=0.584;
    const float JPY=0.00955;
    int dollar;
    
    cout<<"Введите количество долларов: $";
    cin>>dollar;
    cout<<"1 фунт = $"<<dollar/pound;
    cout<<"\n1 франк = $"<<dollar/franc;
    cout<<"\n1 нем. марка = $"<<dollar/mark;
    cout<<"\n1 японская иена = $"<<dollar/JPY;
    system("pause");
    return 0;
}


Упражнение 7.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//Температуру измеренную в градусах по Цельсию, можно
//перевести в градусы по Фаренгейту, путем умножения на 9/5
//и сложения с числом 32. Напишите программу, запрашивающую
//температуру в градусах по Цельсию и отображающую ее эквивалент
//по Фаринтейту.
//////////////////////////////////////////////////////////
#include<iostream>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    float celsius;
    cout<<"Введите значение градусов по шкале Цельсия: ";
    cin>>celsius;
    cout<<celsius<<" градусов по цельсию = "<<(celsius*9/5)+32<<" градусов по фарингейту.";
    system("pause");
    return 0;
}


Упражнение 8.

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

C++
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
//Когда размер величины, выводимой на экран с помощью манипулятора
//setw(), оказывается меньше размера зарезервированного поля, по умолчанию
//незаполненные поля заполняются пробелами. Манипулятор setfill() принимает
//в качестве аргумента один символ, который замещает все пробелы на незаполненных
//позициях поля.  Модифицируйте пример WIDTH так, что бы символы, разделяющие пары
//значений из столбцов, были не пробелами, а точками.
//////////////////////////////////////////////////////////
#include<iostream>
#include<iomanip>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    long 
 
    pop1=4789426,
    pop2=274124,
    pop3=9761;
 
    cout<<"Город "<<setw(15)<<setfill('.')<<" Нас "<<endl
    <<"Москва "<<setw(14)<<setfill('.')<<pop1<<endl
    <<"Киров "<<setw(14)<<setfill('.')<<pop2<<endl
    <<"Угрюмовка "<<setw(8)<<setfill('.')<<pop3;
    system("pause");
    return 0;
}


Упражнение 9.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//Напишите программу запрашивающую у пользователя
//значение двух дробей, а затем выводящую результат, 
// так же записанный в форме дроби.
//////////////////////////////////////////////////////////
#include<iostream>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    int a,b,c,d;
    char zn='/';
    cout<<"Введите первую дробь ";
    cin>>a>>zn>>b;
    cout<<"Введите вторую дробь ";
    cin>>c>>zn>>d;
    cout<<a<<"/"<<b<<" + "<<c<<"/"<<d<<" = "<<((a*d)+(b*c))<<"/"<<(b*d);
    system("pause");
    return 0;
}


Упражнение 10.

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

C++
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
//Устаревшая денежная система Великобритании состояла из фунтов, шиллингов и пенсов. 1 фунт был 
//равен 20 шилингам, 1 шилинг - 12 пенсам....Например, запись 5.2.8 обозначала 5 фунтов, 2 шиллинга и 8 
//пенсов(пенс - множественное число от пенни). Современная денежная система состоит только из фунтов
//и пенсов, причём один фунт равен 100 пенсам. Такой фунт называют десятичным. таким образом 5.2.8 = 5.13(если //быть точнее 5.133333). 7.17.9(по старой системе) = 7.89(по новой). Напишите программу которая будет 
//преобразовывать сумму записанную в старом формате в новый формат.
//////////////////////////////////////////////////////////
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    setlocale(LC_ALL,"Russian");
    float funt,shil,pens,dfunt,dshil;
    const float pr=2.4,fun = 20,pen=12,nfunt=100;
    cout<<"Программа преобразования Валюты Великобритании из старого в новый формат:"<<endl;
    cout<<"Введите количество фунтов: ";
    cin>>funt;
    cout<<"Введите количество шилингов: ";
    cin>>shil;
    cout<<"Введите количество пенсов: ";
    cin>>pens;
    dfunt=funt*fun*pen+pens;
    dshil=shil*pen;
    dfunt+=dshil;
    dfunt/=nfunt;
    dfunt/=pr;
    cout<<"Десятичных фунтов: "<<dfunt<<endl;
    system("pause");
    return(0);
}



Упражнение 11.

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

C++
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
//////////////////////////////////////////////////////////
#include <iostream>
#include <iomanip>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
  cout << setiosflags(ios::left)<< setfill('.') << setw(10) << "Фамилия"
  << setfill('.') << setw(10) << "Имя"
  << setfill('.') << setw(15) << "Адрес"
  << setfill('.') << setw(12) << "Город"<<"\n"
  << setfill('.') << setw(10) << "Иванов"
  << setfill('.') << setw(10) << "Иван"
  << setfill('.') << setw(15) << "Московская 23"
  << setfill('.') << setw(12) << "Москва"<<"\n"
  << setfill('.') << setw(10) << "петров"
  << setfill('.') << setw(10) << "Петр"
  << setfill('.') << setw(15) << "Правды 4"
  << setfill('.') << setw(12) << "Киров"<<"\n"
  << setfill('.') << setw(10) << "Сидоров"
  << setfill('.') << setw(10) << "Иван"
  << setfill('.') << setw(15) << "Энгельса 1"
  << setfill('.') << setw(12) << "Саратов"<<"\n";
  system("pause");
  return 0;
}


Упражнение 12.

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

C++
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
//Напишите программу, выполняющую действия, обратные тем,
//которые описаны в упр.10.
//Ведите число десятичных фунтов: 3.51
//Эквивалентная сумма в старой форме записи: 3.10.2
//////////////////////////////////////////////////////////
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    float dePound, Pen1, Pen2, temp, temp2, shilling, pens;
    cout << "Ведите число десятичных фунтов ";
    cin >> dePound;    
    Pen1 = dePound * 240;
    dePound = static_cast<int>(dePound);
    Pen2 = dePound * 240;
    temp = Pen1 - Pen2;
    temp = static_cast<int>(temp);
    shilling = temp /12;
    shilling = static_cast<int>(shilling);
    temp2 = shilling * 12;
    pens = temp - temp2;
    cout << "Эквивалентная сумма в старой форме записи: " << dePound << "." << shilling << "." << pens << endl;
    system("Pause");
    return 0;
}


--Циклы и ветвления--

Упражнение 1.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Предположим вы хотите создать таблицу умножения на заданное число.
//Напишите программу, которая позволяет пользователю ввести это число,
//а затем генерирует таблицу размером 20 строк на 10 столбцов.
//////////////////////////////////////////////////////////
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////
int main()
{
    int s,temp;
    cout<<"Введите число: ";
    cin>>s;
    for(int j=1;j<=200;j++){
    temp=s*j;
    if(s==temp%10){
    cout<<endl;}
    cout<<temp;}
    system("pause");
    return 0;
}


Упражнение 2.

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

C++
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
//////////////////////////////////////////////////////////
#include<iostream>
using namespace std;
/////////////////////////////////////////////////////////
int main()
{
    char var;
    go: cout<<"Выбирите нужное действие"<<endl;
    cout<<"\n1. Перевод температуры из Цельсия в Фарингейты.";
    cout<<"\n2. Перевод температуры из Фаринтета в Цельсия."<<endl;
    cout<<"\nДействине номер: ";
    cin>>var;
    cout<<endl<<endl;
    
    switch (var)
    {
    case '1':
    cout<<"Перевод температуры из Цельсия в Фарингейты."<<endl;
    float celsius;
    cout<<"\nВведите значение градусов по шкале Цельсия: ";
    cin>>celsius;
    cout<<endl<<celsius<<" градусов по цельсию = "<<(celsius*9/5)+32<<" градусов по фарингейту.";break;
    case '2':
    cout<<"Перевод температуры из Фарингета в Цельсия."<<endl;
    float faringet;
    cout<<"\nВведите значение градусов по шкале Фарингейта: ";
    cin>>faringet;
    cout<<endl<<faringet<<" градусов по Фарингейту = "<<(faringet-32)/1.8<<" градусов по Цельсия."<<endl;;break;
    default: cout<<"Неверный ввод, попробуйте еще раз!"<<endl;goto go;
}
    system("pause");
    return 0;
}
Размещено в Без категории
Показов 3478 Комментарии 1
Всего комментариев 1
Комментарии
  1. Старый комментарий

    упражнение 12

    Зачем умножать на 240?
    Запись от Dmitriykul размещена 20.07.2018 в 19:18 Dmitriykul вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.