Форум программистов, компьютерный форум CyberForum.ru

Узнать площадь заштрихованой фигуры - C++

Восстановить пароль Регистрация
 
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
06.02.2012, 18:42     Узнать площадь заштрихованой фигуры #1
Необходимо узнать площадь заштрихованой фигуры вот на этом рисунке Название: 1f2d2404ead7.png
Просмотров: 199

Размер: 831 байт как делать задачу мне ясно: говорим пользователю ввести значение сторон прямоугольника ap и bp, множим их и узнаем площадь прямоугольника, для эллипса просим указать длину большой полуоси (ae) и длину малой полуоси (bе) потом площадь эллипса будет число пи *ae*be, затем от площади прямоугольника отнимаем площадь эллипса и получаем площадь заштрихованой фигуры! Но вот с кодом не выходит!
сначала указываем модули и переменные
C++
1
2
3
4
  #include<stdio.h>
  #include<conio.h>
  #include<math.h>
int S,S1,S2,ap,bp,ae,be;
далее вот как-то так наверное
C++
1
2
3
4
5
6
7
8
9
10
11
{
  printf("VVedite storoni pramoygolnika a i b;\n");
  printf("a=");
  scanf("%d",%ap);
  printf("b=");
  scanf("%d",%bp);
  printf("VVedite dlinu bolshoi i maloi osi elipsa;\n");
  printf("a=");
  scanf("%d",%ae);
  printf("b=");
  scanf("%d",%be);
теперь узнаем площади, тут и загвоздка, с прямоугольником ясно
C++
1
S1=ap*bp
а с эллипсом нет, как указать число пи?
потом ясно
C++
1
2
3
4
S=S1-S2;
  printf("S=%d",S);
  getch();
}
так?
теперь вопросы: что нужно поставить перед {, я читал, что ставится void main(), но в таком случае выдает ошибку; также при таком коде на каждом scanf ругается, что 10 expected primary-expression before '%' token, что это значит? пока все вопросы если я вообще неправильно написал, напишите, как бы Вы сделали эту задачу! Буду весьма благодарен!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
06.02.2012, 19:18     Узнать площадь заштрихованой фигуры #2
Цитата Сообщение от gylayko Посмотреть сообщение
scanf ругается
Так лучше:
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
#include <cstdio>
#include <cmath>
#include <cstdlib>
 
 
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int S,S1,S2,ap,bp,ae,be;
    
    printf("VVedite storoni pramoygolnika a i b;\n");
    printf("a=");
    scanf("%d",&ap);
    printf("b=");
    scanf("%d",&bp);
    printf("VVedite dlinu bolshoi i maloi osi elipsa;\n");
    printf("a=");
    scanf("%d",&ae);
    printf("b=");
    scanf("%d",&be);
    
    float s = (ap*bp)-(ae*be*3.14159);
    
    printf("%f",s);
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
06.02.2012, 20:38  [ТС]     Узнать площадь заштрихованой фигуры #3
а можно немного обьяснений?
C#
1
2
3
#include <cstdio>
#include <cmath>
#include <cstdlib>
а почему после названия моделя нет .h
и можно вот эти два куска откоментировать?
C++
1
2
3
using namespace std;
 
int main(int argc, char *argv[])
C++
1
2
    system("PAUSE");
    return EXIT_SUCCESS;
remarkes
300 / 223 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
06.02.2012, 23:38     Узнать площадь заштрихованой фигуры #4
Цитата Сообщение от gylayko Посмотреть сообщение
а почему после названия моделя нет .h
это модули для C++
для си - будут точка-h
а зачем они так сделали - не знаю. наверное, чтобы выделиться

Добавлено через 21 минуту
Цитата Сообщение от gylayko Посмотреть сообщение
using namespace std;
пространство имен std
using позволяет обращаться к объектам, например std::cout, напрямую.

Цитата Сообщение от gylayko Посмотреть сообщение
int main(int argc, char *argv[])
главная функция программы. точка входа. с нее начинает работать программа.
переменные argc и *argv[] - это соответственно параметры переданные этой функции.
когда ты набираешь в командной строке echo Hello
то помимо вызова самой программы echo ты передаешь ей параметры:
argv[0]="./echo" // само название программы
argv[1]="Hello"
Переменная argc содержит количество этих параметров. То есть в примере argc=2.
Минимум в argc=1 (потому что передана строка с названием программы).
int перед main означает, что она должна вернуть код завершения.
То есть, например:
return 0;

Цитата Сообщение от gylayko Посмотреть сообщение
system("PAUSE");
передает переданный аргумент командной оболочке. То есть как бы выполнить в командной оболочке команду пауза.

Цитата Сообщение от gylayko Посмотреть сообщение
return EXIT_SUCCESS;
EXIT_SUCCESS - это макрос. переводится с английского "выйти, если все удачно".
макрос перед этим должен был быть определен директивой define

C
1
#define EXIT_SUCCESS 0
грубо говоря это return 0;
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
07.02.2012, 10:56  [ТС]     Узнать площадь заштрихованой фигуры #5
да, а мне еще нужно указать ширину поля и точность в результате, то есть как выводить результат! то есть в паскале это пишется так:
Pascal
1
writeln('result',S:2:3);
вот эти 2 и 3 это и есть ширина поля и точность, а в с++ это как написать?
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
07.02.2012, 11:26     Узнать площадь заштрихованой фигуры #6
Цитата Сообщение от gylayko Посмотреть сообщение
да, а мне еще нужно указать ширину поля и точность в результате, то есть как выводить результат!
Ну тут можно использовать манипуляторы. Честно не знаю, как это делать с printf, но с iostream так:
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
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int S,S1,S2,ap,bp,ae,be;
    
    cout << "VVedite storoni pramoygolnika a i b;\n";
    cout << "a=";
    cin >> ap;
    cout << "b=";
    cin >> bp;
    cout << "VVedite dlinu bolshoi i maloi osi elipsa;\n";
    cout << "a=";
    cin >> ae;
    cout << "b=";
    cin >> be;
    
    float s = (ap*bp)-(ae*be*3.14159);
    
    cout.precision(2);
    cout.width(7);
    
    cout << s << endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Просто поэксперементируйте со значениями передаваемые в cout.width() и cout.precision()
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2012, 19:15     Узнать площадь заштрихованой фигуры
Еще ссылки по теме:

C++ Определить площадь фигуры, образованной объединением прямоугольников
Методом Монте-Карло определить площадь заштрихованой фигуры C++
C++ Вычислить площадь фигуры ограниченной заданными функциями

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

Или воспользуйтесь поиском по форуму:
gylayko
30 / 29 / 4
Регистрация: 28.09.2011
Сообщений: 448
19.02.2012, 19:15  [ТС]     Узнать площадь заштрихованой фигуры #7
если кому нужно будет, то ширина поля и точность можно указать вот так
C++
1
printf("result=%2.3f",S);
всем большое спасибо! задача сделана, тему можно закрывать)
Yandex
Объявления
19.02.2012, 19:15     Узнать площадь заштрихованой фигуры
Ответ Создать тему
Опции темы

Текущее время: 16:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru