Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Из Делфи в СИ


Автор: Япончик 20.11.2005, 11:59
Условия задачи:
Разработать программу, которая по введенным параметрам рассчитывает стоимость оклейки обой в комнате. Программа должна содержать след. меню:
1) Вввод длины и ширины комнаты.
2) Ввод количества окон в комнате
3) Ввод количества двернух проемов в комнатах.
4) Ввод стоимости обойной трубки (у.е.).
5) Расчет площади оклейки.
6) Расчет необх. количества обойных трубок.
7) Расчет стоимости оклейки (с учетом клея).
8) Выход из программы.
Справка. Окна имеют стандартные размеры 2,15 х 1, 50 м., дверные проемы 0,90 х 2,05 м., высоту потолков принять 2,60 м. Ширина обойной трубки составляет 0,5 м. Стоимость одного пакета обойного клея равна 2,5 у.е., его хватает на 5 трубок.
*** Здесь не указана длина обойной трубки, поэтому ее просто не учитываем, оставляем один параметр - ШИРИНУ, если нам надо вычислить площадь одной трубки. принять площадь обойной трубки равной ШИРИНЕ обойной трубки.


procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d,e,h,g,n,s1,s2,s3,s4 : extended;

begin
a:=strtofloat(edit1.text); // длина комнаты
b:=strtofloat(edit2.text); // ширина комнаты
c:=strtofloat(edit3.text); // количество окон
d:=strtofloat(edit4.text); // количество дверей
e:=strtoint(edit5.text); // стоимость трубки


s1:=5.2*(a+b); // площадь всей комнаты
s2:=3.225*c+1.845*d; //площадь окон + дверей
s3:=s1-s2; // площадь для оклейки
n:=2*s3; // необходимле количество трубок
g:=n/5; // количество пакетиков клея
h:=2.5*g; // стоимость всех пакетиков
s4:=n*e+h;

memo1.lines.add('Надо обклеить площадь в метров: ' + floattostr(s3)+ 'трубок: ' + floattostr(n) + ' всего мы затратим: ' + floattostr(s4));

end;

***
Соблюдать следующие условия:

1. Программа должна быть логично разбита на функции.
2. Программу нужно реализовать в виде текстового меню, для каждого пункта которого необходимо разработать собственную функцию.
3. Все действия пользователя должны обрабатываться программой, при вводе им некорректных данных должно выводиться соответствующее сообщение;
4. До ввода пользователем корректных входных данных другие функции программы должны оставаться недоступными;
5. Пользователь должен иметь возможность ввести входные данные несколько раз без перезапуска программы;
6. Программа должна общаться с пользователем на понятном ему языке. Все надписи должны быть на русском языке (в случае, если он не поддерживается средой программирования, – на правильном английском).

Автор: nikitao 20.11.2005, 13:00
Япончик,ты наверное имел ввиду надо из Дельфи в VC++ bkb d C++ Builder?
или
Цитата
2. Программу нужно реализовать в виде текстового меню, для каждого пункта которого необходимо разработать собственную функцию.

означает,что можно в консоле делать?
smile

Мы же вроде делвли такую задачу??? smile

Автор: S.A.P. 20.11.2005, 14:51
Да это целый проектище smile ! Может лучше в Дельфи оставить?

Автор: Япончик 21.11.2005, 13:17
Никитао, нет. ну обычно, как в СИ делается? вот так и делать. там SWITCH и вперед...
Добавлено @ 13:19
Цитата(Perchilla @ 20.11.2005, 14:51)
Да это целый проектище smile ! Может лучше в Дельфи оставить?

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

Автор: Япончик 23.11.2005, 23:17
неужели никто не поможет? там все меню из SWITCH и BREAK, а каждую "подзадачу" в отдельную функцию записать...
smile

Автор: nikitao 24.11.2005, 21:17
Цитата
неужели никто не поможет? там все меню из SWITCH и BREAK, а каждую "подзадачу" в отдельную функцию записать...

Япончик,Так ты все сам знаешь smile Напрягись,осталось немного и ты сам ее осилишь smile


Автор: Япончик 24.11.2005, 23:22
Цитата(nikitao @ 24.11.2005, 21:17)
Цитата
неужели никто не поможет? там все меню из SWITCH и BREAK, а каждую "подзадачу" в отдельную функцию записать...

Япончик,Так ты все сам знаешь smile Напрягись,осталось немного и ты сам ее осилишь smile

балин, так я кроме этого иичего и не знаю... ((((((

Автор: Япончик 29.11.2005, 21:02
Код
#include <stdio.h>
#include <ctype.h>
#include <math.h>

void fun1(void);
void fun5(void);

main()

{

 int choice;


printf("\nEnter A - to enter length and width of the room\n");
printf("Enter B - to enter the window's amount\n");
printf("Enter C - to enter the door's amount\n");
printf("Enter D - to enter the cost of tube\n");
printf("Enter E - to see the square of tacky \n");
printf("Enter F - to see the amount of tubes\n");
printf("Enter G - to see the cost of tacky\n");
printf("Enter H - to quit\n");


choice=toupper(getchar());

switch (choice) {

 case 'A' :
 fun1();
 break;

 case 'B' :
 double fun5(double s1);
 break;
 }

 return 0;

}

 void fun1(void)
 {
  double l,w;
  printf("\nEnter length\n");
  scanf("%lf", &l);
  printf("\nEnter width\n");
  scanf("%lf",&w);
 }


 double fun5(double s1)
 {
   /*all the square*/
  printf("%lf",s1);
 }

Добавлено @ 21:03
люди, я выше скинул приблизительный образец... дальше мне не думается...
доделайте, пожалуйста... smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)