Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2009, 10:59   #1
densan
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 19
По умолчанию из С++ в С++Builder 6.0

Нужно переделать прогу, вот задание:
Написать программу, которая вычисляет среднее арифметическое последовательности дробных чисел, вводимых с клавиатуры. После ввода последнего числа программа должна вывести минимальное и максимальное число последовательности. Количество чисел последовательности должно задаваться во время работы программы.
Код:
#include <stdio.h>
#include <conio.h>
void main()
{
float a; int n; float sum; float sred; float min; float max; int i;
printf("Vvedite kolichestvo chisel posledovatelnosti ->");
scanf("%i", &n);
printf("Vvedite posledovatelnost \n");
scanf("%f",&a);
min=a;
max=a;  
sum=a;
for (i=1; i<n; i++)
{
scanf("%f",&a);
sum+=a;
if (a < min) min = a;
if (a > max) max = a; 
}
sred = sum / n;
printf("Kolichestvo chisel: %i\n", n); 
printf("Srednee arifmeticheskoe: %6.2f\n", sred); 
printf("Minimalnoe chislo: %6.2f\n", min); 
printf("Maksimalnoe chislo: %6.2f\n", max);

getch();
}
В Builder е ни бум бум, попросили переделать, не так всё просто, особый вопрос вызывает scanf("%i", &n); и как она реализуется в Builder
densan вне форума Ответить с цитированием
Старый 27.05.2009, 11:50   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Если для консольного приложения

Код:
#include <iostream.h>
#include <conio.h>
void main()
{
float a,sum,sred,min,max; 
int n,i;
cout<<"Vvedite kolichestvo chisel posledovatelnosti ->";
cin>>n;
cout<<"Vvedite posledovatelnost ";
cin>>a;
min=a;
max=a;  
sum=a;
for (i=1; i<n; i++)
{
cin>>a;
sum+=a;
if (a < min) 
min = a;
if (a > max) 
max = a; 
}
sred = sum / n;
cout<<"Kolichestvo chisel"<<n<<endl; 
cout<<"Srednee arifmeticheskoe: "<<sred<<endl; 
cout<<"Minimalnoe chislo: "<<min<<endl; 
cout<<"Maksimalnoe chislo"<<max<<endl;

getch();
}
Чесно говоря не пробовала, но в кансольном приложении и Ваш вариант должен проходить.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 28.05.2009, 08:57   #3
densan
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 19
По умолчанию

в консоли, это в консоли, а мне надо это на форме реализовать, задача элементарная, просто не знаком с этим языком, а изучать времени не хватает
densan вне форума Ответить с цитированием
Старый 30.05.2009, 00:18   #4
Freer
Пользователь
 
Аватар для Freer
 
Регистрация: 20.10.2008
Сообщений: 64
По умолчанию

срр файл:
Код:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 float* a,buf=0.0;
 int n=0,i=0;   //n-количество чисел
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Change(TObject *Sender)
{
 n=StrToInt(Edit1->Text);    //чтение количества чисел
 a=new float [n];           //создание динамического массива из n элементов

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)  //функция ввода значения в массив
{
 a[i]=StrToFloat(MaskEdit1->Text);
 i=++i;
 Label3->Caption=FloatToStr(i+1);
 MaskEdit1->Text="";
 if(i>=n){
  Button1->Enabled=false;
  MaskEdit1->ReadOnly=true;
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)   //функция вывода максимального значения
{
 for(i=0;i<n;++i)
 {
  if(a[i]>a[i+1])
  {
   buf=a[i];
   a[i]=a[i+1];
   a[i+1]=buf;
  }
 }
 Panel1->Caption=FloatToStr(a[i]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)  //Закрытие формы и освобождение памяти
{
  delete a;
}
//---------------------------------------------------------------------------




void __fastcall TForm1::Button3Click(TObject *Sender)   //функция вывода минимального значения
{
for(i=0;i<n;++i)
 {
  if(a[i]>a[i+1])
  {
   buf=a[i];
   a[i]=a[i+1];
   a[i+1]=buf;
  }
 }
 Panel1->Caption=FloatToStr(a[0]);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)   //функция вывода среднего значения
{
    float sum=0.0;
    for(i=0;i<n;++i)
    {
      sum+=a[i];
    }
    sum=sum/n;
    Panel1->Caption=FloatToStr(sum);
}
//--------------------------------------------------

Конечно по хорошему,надо через STL делать.Но поскольку про него ни слова,видимо, надо именно такой изврат.
Exe тут

Ухаха)) Только щас заметил забавные опечатки.
Цитата:
введите колличествочисел
Извиняюсь)
FreeR

Последний раз редактировалось Freer; 30.05.2009 в 11:55.
Freer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Builder 6 Orodret Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 22.04.2009 10:22
C++ Builder!!! kykysya C++ Builder 4 08.02.2009 03:33
Builder 6.0 prankish_cat Общие вопросы C/C++ 0 01.02.2009 16:45
БД C++ Builder 6 ZiKx C++ Builder 1 07.08.2008 20:43
С ++ Builder PsyTech C++ Builder 4 19.10.2007 08:25