Перейти до вмісту

С / C++ , всі питання тут


Повідомлень в темі: 117

#81 Руля ван Метал

    Писар

  • Користувачі
  • PipPipPipPipPipPipPipPip
  • 434 повідомлень
  • Стать:Чоловік
  • Місто:Івано-франківська

Відправлено 07.07.2011 – 16:49

Є таке питання, вперше зтикнувся з Борландом с++. Проблема полягає в наступному:
є маленька програма, типу калькулятора де у два віконця вводяться результати. Віконець буде багато)
Є віконце ціна і віконце кількість. Так от, мені потрібно зробити так, щоб останні введені дані у віконце ціна зберігалися при закритті програми і при повторному запуску вже були на своєму місці.

текст програми в борланді:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a,b,c,d,i,f,g,t,q,w,a1,b1,c1,d1,i1,f1,g1,t1,q1,w1,koef;
float rezalt,rezalt1;

a = StrToFloat (vvid1 -> Text);
a1 = StrToFloat (vuv1 -> Text);
// Оголошуєм і присвоюєм першу строчку програми
b = StrToFloat (vvid2 -> Text);
b1 = StrToFloat (vuv2 -> Text);
// Оголошуєм і присвоюєм 2 строчку програми
c = StrToFloat (vvid3 -> Text);
c1 = StrToFloat (vuv3 -> Text);
// Оголошуєм і присвоюєм 3 строчку програми
d = StrToFloat (vvid4 -> Text);
d1 = StrToFloat (vuv4 -> Text);
// Оголошуєм і присвоюєм 4 строчку програми
i = StrToFloat (vvid5 -> Text);
i1 = StrToFloat (vuv5 -> Text);
// Оголошуєм і присвоюєм 5 строчку програми
f = StrToFloat (vvid6 -> Text);
f1 = StrToFloat (vuv6 -> Text);
// Оголошуєм і присвоюєм 6 строчку програми
g = StrToFloat (vvid7 -> Text);
g1 = StrToFloat (vuv7 -> Text);
// Оголошуєм і присвоюєм 7 строчку програми
t = StrToFloat (vvid8 -> Text);
t1 = StrToFloat (vuv8 -> Text);
// Оголошуєм і присвоюєм 8 строчку програми
q = StrToFloat (vvid9 -> Text);
q1 = StrToFloat (vuv9 -> Text);
// Оголошуєм і присвоюєм 9 строчку програми
w = StrToFloat (vvid10 -> Text);
w1 = StrToFloat(vuv10 -> Text);
// Оголошуєм і присвоюєм першу строчку програми
koef = StrToFloat (kof -> Text);

rezalt = a*a1 + b*b1 + c*c1 + d*d1 + i*i1 + f*f1 + g*g1 + t*t1 + q*q1 + w*w1;
rezalt1 = rezalt*koef;

rez -> Caption = FloatToStrF (rezalt, ffFixed,10,2);

rez2 -> Caption = FloatToStrF (rezalt1, ffFixed,10,2);

}

Потрібно щоб збергались значення введені в змінні a,b,c,d і т.д

Буду вдячний за допомогу!

Повідомлення відредагував Руля ван Метал: 07.07.2011 – 16:51

  • 0

#82 FT232BM

    私は人々嫌い

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 3435 повідомлень
  • Стать:Чоловік
  • Місто:Київ->НТУУ "КПІ"

Відправлено 15.07.2011 – 08:05

Це ти про статичні змінні?
http://en.wikipedia....Static_variable
  • 0

#83 Олеська

    вовчиця-чарівниця

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 8134 повідомлень
  • Стать:Жінка
  • Місто:скіфські вали

Відправлено 27.01.2012 – 15:14


 i 

спам видалено
 

  • 0

#84 оленьок

    Чайник

  • Користувачі
  • Pip
  • 1 повідомлень

Відправлено 16.05.2012 – 15:29

Допоможіть хто може із задачкою по С++
є код але мені потрібне пояснення по цьому.. нічього не розумію..якнайшвидше HELP!!!!
#include <iostream>
#include <conio.h>
using namespace std;
int a[105][105],b[105][105],i,j,k,x,y,n,m;
int main()
{
cin>>n;
for (i=1;i<=n;i++)
{
cin>>k;
for (j=1;j<=k;j++)
{
cin>>m;
a[m][j]=1;
}
}
if (n==4) cout<<'1'<<endl;
else
{
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
b[i][j]=a[i][j];
for (j=1;j<=n;j++)
if (i!=j)
{
if (a[j][i]){b[j][i]=0; a[i][j]=1;}
if (a[i][j]){b[i][j]=0; b[j][i]=1;}
}
for (j=1;j<=n;j++)
{
x=y=0;
for (k=1;k<=n;k++)
if (j!=k)
{
if (b[j][k]) x++;
if (b[k][j]) y++;
}
if (x && y) {cout<<1<<endl; return 0;}
}
}
cout<<0<<endl;
}
getch();
}
Буду дуж вдячна=)
  • 0

#85 Tarasiy

    Чайник

  • Користувачі
  • Pip
  • 6 повідомлень

Відправлено 27.06.2012 – 18:19

Програмка повинна знаходити максимальне значення з елементів що знаходяться по праву сторону від діагоналі - умова (j > i), але це чомусь не працює, поясніть хто шарить чому так?
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
void main()
{
srand(time(NULL));
const int n = 10;
int max = 0;
int mas[n][n] = {{},{}};
for (int i = 0; i < n; i++)
{
  for (int j = 0; j < n; j++)
  {
   mas[i][j] = rand() % 101;
   if  (j > i)   
   {
    if ((max < mas[i][j]))
    max = mas[i][j];
    cout << mas[i][j] << " ";
   }
   else cout << " ";
  }
  cout << endl;
}
cout << "max = " << max << endl;
}

  • 0

#86 xTANATOSx

    ( ╯°□°)╯

  • Заблоковані
  • PipPipPipPipPipPipPipPipPipPip
  • 1502 повідомлень
  • Стать:Чоловік
  • Місто:Столиця самогоноваріння України

Відправлено 27.06.2012 – 18:45

Я шарю, но мені впадло)

int mas[n][n] = {{},{}};
Це помилка треба так писати

int mas[n][n] = 8==Э {()};
  • 0

#87 Tarasiy

    Чайник

  • Користувачі
  • Pip
  • 6 повідомлень

Відправлено 27.06.2012 – 19:21

Перший раз таке бачу
int mas[n][n] = 8==Э {()};

Це злий жарт ?

Повідомлення відредагував Tarasiy: 27.06.2012 – 19:23

  • 0

#88 xTANATOSx

    ( ╯°□°)╯

  • Заблоковані
  • PipPipPipPipPipPipPipPipPipPip
  • 1502 повідомлень
  • Стать:Чоловік
  • Місто:Столиця самогоноваріння України

Відправлено 27.06.2012 – 19:24

Нічого, трохи підростеш і це
8====э {()}
будеш бачити частіше

А якщо по сабжу, то спробуй так



#include<conio.h>
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
void main()
{
srand(time(NULL));
const int n = 10;
int max = 0;
int mas[n][n] = {{},{}};
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
mas[i][j] = rand() % 101;
cout << mas[i][j] << " ";
if (j > i)
{
if ((max < mas[i][j]))
max = mas[i][j];
}


}
cout << endl;
}
cout << "max = " << max << endl;
getch();
}

Повідомлення відредагував xTANATOSx: 27.06.2012 – 19:35

  • 0

#89 Tarasiy

    Чайник

  • Користувачі
  • Pip
  • 6 повідомлень

Відправлено 27.06.2012 – 19:29

Перегляд дописуxTANATOSx (27.06.2012 – 19:24) писав:

Нічого, трохи підростеш і це
8====Э {()}
будеш бачити частіше

Розібратися "впадло" а фігню писати ні?
  • 0

#90 xTANATOSx

    ( ╯°□°)╯

  • Заблоковані
  • PipPipPipPipPipPipPipPipPipPip
  • 1502 повідомлень
  • Стать:Чоловік
  • Місто:Столиця самогоноваріння України

Відправлено 27.06.2012 – 19:32

Я взагаліто написав код який працює, тобі цого мало?
  • 0

#91 Tarasiy

    Чайник

  • Користувачі
  • Pip
  • 6 повідомлень

Відправлено 27.06.2012 – 19:42

Ну взагаліто ти пізніше написав ніж я написав свій попередній пост, і код не зовсім так працює як потрібно. Я пробую написати програму яка буде виводити елементи матриці з правої сторони від головної діагоналі і серед тих елементів знайти максимальний. Умова (j > i) мала б працювати, але я не розумію чому, виводить не зовсім те що мені потрібно.
  • 0

#92 xTANATOSx

    ( ╯°□°)╯

  • Заблоковані
  • PipPipPipPipPipPipPipPipPipPip
  • 1502 повідомлень
  • Стать:Чоловік
  • Місто:Столиця самогоноваріння України

Відправлено 27.06.2012 – 20:31

Воно виводить весь масив, але максимельний елемент шукає тільки в правій стороні.
  • 0

#93 Tarasiy

    Чайник

  • Користувачі
  • Pip
  • 6 повідомлень

Відправлено 27.06.2012 – 21:33

Зробив, ще щоб виводило ту область в якій шукає найбільший елемент, але виводить не зовсім те що треба.
#include<conio.h>
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
void main()
{
srand(time(NULL));
const int n = 10;
int max = 0;
int mas[n][n] = {{},{}};
for (int i = 0; i < n; i++)
{
  for (int j = 0; j < n; j++)
   {
    mas[i][j] = rand() % 101;
    if (j > i)
	 {  
	  cout << mas[i][j] << " ";
	  if ((max < mas[i][j]))
	  max = mas[i][j];
	 }
    else cout << " ";
   }
  cout << endl;
}
cout << "max = " << max << endl;
getch();
}

  • 0

#94 _Ex

    STATUS_OK

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1735 повідомлень
  • Стать:Чоловік
  • Місто:Бахмут, Південна Слобожанщина, Україна

Відправлено 28.06.2012 – 02:58

Тарасій, якщо тобі потрібно, щоб програма виписувала частину матриці лівішу за діагональ (j>i), і якщо тобі потрбіно знайти найбліьший з тих елементів, то саме це і робе той код, який ти запостив ПЕРШИМ. Шо ти голову морочиш?
Я навіть не полінився скомпілювати, ось тобі виведення ТВОЄЇ програми:
40 81 8 57 57 28 25 79 17
  38 74 30 50 81 11 69 68
   5 31 85 44 10 55 65
	32 76 98 58 93 41
	 94 13 12 81 61
	  82 49 6 96
	   12 14 37
		29 60
		 90
		  
max = 98
Що не так? <_<
  • 0

#95 Tarasiy

    Чайник

  • Користувачі
  • Pip
  • 6 повідомлень

Відправлено 28.06.2012 – 10:35

Все, дякую розібрався, просто в мене виводило так :


Зображення
232x156(18.40 kB)

Загрузить фото
Я очікував, що буде все чітко по праву сторону від діагоналі, а виводило так тому, що коли не виводить число, в даному випадку переважно двозначне виводило лише один пробіл. Виправив, тепер все нормально працює.


Зображення
259x157(17.63 kB)

Загрузить фото

Повідомлення відредагував Tarasiy: 28.06.2012 – 10:47

  • 0

#96 _Ex

    STATUS_OK

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1735 повідомлень
  • Стать:Чоловік
  • Місто:Бахмут, Південна Слобожанщина, Україна

Відправлено 29.06.2012 – 00:07

В моєму попередньому пості, треба розуміти "лівішу" як правішу, - знову переплутав одне з іншим. :D

Цитата

Я очікував, що буде все чітко по праву сторону від діагоналі, а виводило так тому, що коли не виводить число, в даному випадку переважно двозначне виводило лише один пробіл. Виправив, тепер все нормально працює.
Тарасій, якшо хочеш все рівненько, поміняй пробіл на табуляцію ("\t") в твоєму коді в обох місцях, буде ще рівніше ніж на твоїх скринах. Спробуй.)
  • 0

#97 ford2012

    Чайник

  • Користувачі
  • Pip
  • 8 повідомлень

Відправлено 30.09.2012 – 18:52

Мені написали программу яка роздруковує усі числа, що закінчуються на цифру 5, з проміжку від 1 до 1000.

#include <iostream>
using namespace std;
void main()
{
cout<<"5 ";
for (int i=1;i<=9;i++) cout<<i<<"5 ";
getchar();
}
що означають оці стрічки
  • 0

#98 xTANATOSx

    ( ╯°□°)╯

  • Заблоковані
  • PipPipPipPipPipPipPipPipPipPip
  • 1502 повідомлень
  • Стать:Чоловік
  • Місто:Столиця самогоноваріння України

Відправлено 30.09.2012 – 19:01

cout<<"5 "; надрукувати 5
for (int i=1;i<=9;i++) cout<<i<<"5 "; цикл від 1 до 9 і в кожному проході друкувати змінну і + число 5
  • 0

#99 _Ex

    STATUS_OK

  • Користувачі
  • PipPipPipPipPipPipPipPipPipPip
  • 1735 повідомлень
  • Стать:Чоловік
  • Місто:Бахмут, Південна Слобожанщина, Україна

Відправлено 01.10.2012 – 19:23

Багато ти певно вже сидиш за компом якщо чуєш на форумі русскую рєч.
Замість тролити підказав своєму собрату по рєчі шо його цикл не виводитиме всі числа від 0 до 1000 які кінчаються на 5, лише до 100.
Мовою спілкування на цьому форумі є лише українська на відміну від нашої країни.
  • 0

#100 xTANATOSx

    ( ╯°□°)╯

  • Заблоковані
  • PipPipPipPipPipPipPipPipPipPip
  • 1502 повідомлень
  • Стать:Чоловік
  • Місто:Столиця самогоноваріння України

Відправлено 01.10.2012 – 19:28

Перегляд допису_Ex (01.10.2012 – 19:23) писав:

Багато ти певно вже сидиш за компом якщо чуєш на форумі русскую рєч.
Замість тролити підказав своєму собрату по рєчі шо його цикл не виводитиме всі числа від 0 до 1000 які кінчаються на 5, лише до 100.
Мовою спілкування на цьому форумі є лише українська на відміну від нашої країни.
Чувак, що з тобою, де ти русскую рєчь побачив?
Не кури більше.
  • 0



Кількість користувачів, що читають цю тему: 1

0 користувачів, 1 гостей, 0 анонімних