Перейти к содержимому


Фото

borland c++ 3.1


  • Чтобы отвечать, сперва войдите на форум
40 ответов в теме

#21 hrulikus Опубликовано 09 Июнь 2009 - 18:57

hrulikus

    Главный выпендрежник

  • Свои
  • 1 348 Сообщений:
  • Егор, Хрулёв
Запомни-"Statement missing ;"-это значит что ты забыл в конце какой-то операции поставить точку с запятой.
Просто когда компилятор "читает" твою программу, ему надо четко знать когда заканчивается то или иное действие.Более того у тебя есть куча других ошибок.
Вот пара вещей, которые надо знать:
1)Золотое правило программиста-соблюдай читабельность программы.Если ты через полгода откроешь свою прогу, ты в ней не разберешься.
1.1)Каждый оператор(функция)-с новой строчки. причем должна эта строчка оканчиваться точкой с запятой.
1.2)Когда открываешь фигурную скобку-это лучше делать тоже на отдельной строчке и на отдельном уровне(то бишь когда ты открываешь скобку функции(main к примеру), она должна быть у левого края экрана(чтобы долго не жать пробелы, настрой табуляцию))
вот пример:
void main(void)
{
for(i=0;i<N;i++)
   {
	//какие-нибудь операции в цикле
	//допустим, здесь еще один цикл:
   for(j=0;j<M;j++)
	  {
	   //операции во внутреннем цикле
	  }
   }
}
То же самое если у тебя вместо цикла идет if:
if(....)
   {
   //какие-нибудь операции.
   }


2)Если я не ошибаюсь, то cin работает так:
cin>>mass[i]>>mass1[i];
кстати с вводом данных у тебя тоже странный подход. Вот мне было бы неудобно вводить попеременно элементы то одного, то второго массива.


3)Если у тебя есть if, то если у тебя в нем лишь один оператор-то фигурные скобки можно не ставить. Но если там 2 или более функций, то ставь перед и после них фигурные скобки.Вот как надо правильно расписать строчку с твоей ошибкой:
if (mass[i]<mass1[i])
  {
   mass2[i]=mass1[i];
   mass2[i+1]=mass[i];
  }
else 
  {
   mass2[i]=mass[i];
   mass2[i+1]=mass1[i];
  }


Вот. вроде все. исправляй, если будут вопросы-пиши.
Надеюсь хоть чем-то тебе помог
"Каждая мечта тебе дается вместе с силами, необходимыми для ее осуществления."
Р.Бах

#22 Ant Опубликовано 09 Июнь 2009 - 20:02

Ant
  • Свои
  • 29 Сообщений:
  • Антон Частов
Егор, спасибо огромное!!! Все заработало :)
Спасибо за советы, все разбил как надо, теперь не запутаюсь ;)
Вот только как это все ввести?
Если я ввожу 5 чисел через пробел(т.к. N = 5) и жму Enter пишет "mass2[i]" и больше не дает вводить. Что с этим делать?

#23 hrulikus Опубликовано 09 Июнь 2009 - 20:10

hrulikus

    Главный выпендрежник

  • Свои
  • 1 348 Сообщений:
  • Егор, Хрулёв
Ну это просто. Ошибка тут:
cout<<"mass2[i]"<<endl;
Смотри:когда ты ставишь в cout кавычки, он выводит то, что стоит под кавычками, то бишь в данном случае он словами будет выводить на экран "mass2[i]"

А чтобы он выводил элементы массива-просто убери кавычки. Если алгоритм верный-все заработает нормально.

Кинь-ка сюда свой код целиком на всякий случай. Может еще что-то умное скажу=)
"Каждая мечта тебе дается вместе с силами, необходимыми для ее осуществления."
Р.Бах

#24 Ant Опубликовано 09 Июнь 2009 - 20:18

Ant
  • Свои
  • 29 Сообщений:
  • Антон Частов
Спасибо, правда теперь он всегда пишет второе число, которое я ввел(например если я ввел 11 12 23 45 68, он напишет 12)
Вот мой код:
#include<iostream.h>
#define N 5 
void main(void)
{
		int mass[N], mass1 [N], mass2 [2*N],i   ;
		cout<<"input array"<<endl;
		for(i=0; i<N;i++);
		cin>>mass[i]>> mass1[i];
		if (mass[i]<mass1[i])
	{
	mass2[i]=mass1[i];
 	mass2[i+1]=mass[i];
	}
else
	{
	mass2[i]=mass[i];
	mass2[i+1]=mass1[i];
	}

	for(i=0;i<N;i++);
	cout<<mass2[i]<<endl;
}


#25 Syrano Опубликовано 10 Июнь 2009 - 4:50

Syrano
  • Свои
  • 9 630 Сообщений:
  • Владимир Зайцев
Можно совет? Напиши программку, которая будет просто читать массив чисел, а затем выводить его на экран. Один раз разберись, как это делается -- и потом не будет возникать таких вопросов. А что касается алгоритма, то в нем у тебя есть ошибки. К примеру, два массива: 1,2,3,4,5 и 6,7,8,9,10 он у тебя не сольет. Попробуй на бумаге.

С нами сила Алхазашвили!


#26 Deimos Опубликовано 10 Июнь 2009 - 4:51

Deimos

    Самый голодный

  • Свои
  • 1 972 Сообщений:
  • Дмитрий Листвин
Надеюсь, ты не вводишь их прямо так с пробелами? А то по тому, что ты пишешь, кажется, что в один cin ты пытаешься впихнуть весь массив, да ещё таким интересным образом.

Незнание жизни не освобождает от жизни.
Неизбывная бестолочь сутолоки - бравада безволия.


#27 hrulikus Опубликовано 10 Июнь 2009 - 7:55

hrulikus

    Главный выпендрежник

  • Свои
  • 1 348 Сообщений:
  • Егор, Хрулёв
У тебя кстати if стоит не в цикле.приду домой-разберусь.кстати совет-перед тем как писать программу всегда стоит взять бумагу с ручкой и представить себе алгоритм на листе чистой белой бумаги
"Каждая мечта тебе дается вместе с силами, необходимыми для ее осуществления."
Р.Бах

#28 Syrano Опубликовано 10 Июнь 2009 - 9:10

Syrano
  • Свои
  • 9 630 Сообщений:
  • Владимир Зайцев
Да нет, со вводом там ошибка в лишней точке с запятой после for(). А вообще, вводить так два значения можно. И не принципиально, чем их разделять, табуляцией, пробелом или Enter'ом.

С нами сила Алхазашвили!


#29 hrulikus Опубликовано 10 Июнь 2009 - 11:30

hrulikus

    Главный выпендрежник

  • Свои
  • 1 348 Сообщений:
  • Егор, Хрулёв
Володь, как ты ее разглядел??? С твоими глазами-ночью охотиться=) И правда, точка с запятой там не нужна
"Каждая мечта тебе дается вместе с силами, необходимыми для ее осуществления."
Р.Бах

#30 Syrano Опубликовано 10 Июнь 2009 - 14:38

Syrano
  • Свои
  • 9 630 Сообщений:
  • Владимир Зайцев

И правда, точка с запятой там не нужна

И правда, как разглядел... что-то тут не так...

С нами сила Алхазашвили!


#31 Anasta Опубликовано 10 Июнь 2009 - 15:25

Anasta

    Старший санитар

  • Свои
  • 4 544 Сообщений:
  • Анастасия Абрашитова

Да нет, со вводом там ошибка в лишней точке с запятой после for().
А вообще, вводить так два значения можно. И не принципиально, чем их разделять, табуляцией, пробелом или Enter'ом.


Ну, кроме точки с запятой, там еще и блок цикла в фигурные скобки не взят )

#32 Ant Опубликовано 10 Июнь 2009 - 17:08

Ant
  • Свои
  • 29 Сообщений:
  • Антон Частов
Всем спасибо, с этой прогой я разобрался оказалось ее надо делать другим путем.
А вот на сегодня задали написать вроде бы легкую программу:
S= ( (x-t)+7)/2 + (x-t)*( (x-t)+9)/4...и т.д. b и так N раз
Закономерность такая: первое слагаемое(x-t) умножается само на себя, к второму слагаемому(7) прибавляется 2, к занаменателю(2) прибавляется 2.
я написал прогу, она считает правильно ответ в выражении ( (x-t)+7)/2 а повторять цикл с другими значениями не хочет :(
Как ее заставить сделать это?
Вот прога:
#include<iostream.h>
#define N 5
void main(void)
{	   
	float x,t,mass[N],num,den,sum1,sum2,qui,i,s;
	cout<<"input x,t"<<endl;
	cin>>x;
	cin>>t;
	sum1=(x-t);
	sum2=7;
	num=(sum1+sum2);
	sum1=sum1*(x-t);
	sum2=(sum2+2);
	den=(den+2); 
	qui=(num/den);
		s=
	for(i=0;i<N;i++)
		cout<<s<<endl;
}
и что мне надо написать после s= ?
Возился с ней часа 2 или больше , появилось несколько вариантов, этот, думаю ближе к истине.
P.S. Я наверное всем надоел всем со своими программами, завтра последний день, а летом надо будет изучить Шилта....И где достать книгу "Программирование для чайников" :) ? Я про нее прочитал на форуме.

#33 Deimos Опубликовано 11 Июнь 2009 - 5:01

Deimos

    Самый голодный

  • Свои
  • 1 972 Сообщений:
  • Дмитрий Листвин
Во-первых, если алгоритм такой, как ты написал, то это должно выглядеть не так:
S= ( (x-t)+7)/2 + (x-t)*( (x-t)+9)/4...и т.д. b и так N раз
а вот так:
S= ( (x-t)+7)/2 + ((x-t)*(x-t)+9)/4...и т.д. b и так N раз.
Простейшее решение, которое мне в голову приходит:
//Чертовщина типа ввода x, t и N.
float sum;
float sl1 = (x-t);
float sl2 = 7;
float zn = 2;
for(int i=0;i<N;i++)
{
sum += (sl1+sl2)/zn;
sl1 *= sl1;
sl2 += 2;
zn += 2;
}
cout<<"s = "<<sum;

А что касается твоей программы... Прости, я посмотрел и забоялся= ). Но что после десятка исправлений она тебе ответ не даст, это точно.

Незнание жизни не освобождает от жизни.
Неизбывная бестолочь сутолоки - бравада безволия.


#34 Ant Опубликовано 11 Июнь 2009 - 13:16

Ant
  • Свои
  • 29 Сообщений:
  • Антон Частов
Спасибо! Правда в твоей проге я не понял что значат строки:
sl1 *= sl1;
sl2 += 2;
zn += 2;
но всеравно спасибо =)
Сегодня утром посидел и на свежую голову написал прогу правильно....почти правильно) некоторые строки не в том порядке написал, но Марианна Константиновна ,shift+del и shift+ins бысто все исправили :)

#35 Deimos Опубликовано 11 Июнь 2009 - 14:37

Deimos

    Самый голодный

  • Свои
  • 1 972 Сообщений:
  • Дмитрий Листвин
Выражение (переменная) (операция)= (переменная/константа); эквивалентно выражению (переменная) = (переменная) (операция) (переменная/константа); Т.е. sl2 *= 2; есть sl2 = sl2 * 2;

Незнание жизни не освобождает от жизни.
Неизбывная бестолочь сутолоки - бравада безволия.


#36 BOЯAT Опубликовано 15 Июнь 2009 - 14:19

BOЯAT
  • Друзья
  • 10 Сообщений:
  • Nazar Andrienko
Это конечно замечательно, что все стремятся помочь Антону. Но я считаю, что скоро он настолько привыкнет к very smart intellisence в лице пользователей 304.ру, что так и не научится сам писать программы (действительно, зачем, если всегда можно написать здесь "как описать переменную?" или "какой синаксис у оператора сравнения?" и т.п.)

#37 Deimos Опубликовано 15 Июнь 2009 - 15:21

Deimos

    Самый голодный

  • Свои
  • 1 972 Сообщений:
  • Дмитрий Листвин
Это же его первые шаги. Пока, думаю, можно ещё и помогать.

Незнание жизни не освобождает от жизни.
Неизбывная бестолочь сутолоки - бравада безволия.


#38 BOЯAT Опубликовано 15 Июнь 2009 - 17:02

BOЯAT
  • Друзья
  • 10 Сообщений:
  • Nazar Andrienko

Это же его первые шаги. Пока, думаю, можно ещё и помогать.

Именно сейчас и важно самому научиться разбираться, что к чему, а также пользоваться гуглом.

#39 hrulikus Опубликовано 15 Июнь 2009 - 19:50

hrulikus

    Главный выпендрежник

  • Свои
  • 1 348 Сообщений:
  • Егор, Хрулёв

Именно сейчас и важно самому научиться разбираться, что к чему, а также пользоваться гуглом.

Товарищ, вы можете обьяснить какую разницу вы видите между поиском в гугле и задаванием прямых вопросов на форуме?
На данный момент, ни одного ответа по исправлению алгоритма ему не поступило. Все комментарии были по поводу синтаксиса, что не суть важно.
Главное-умение размышлять, а не умение получать знания, по крайней мере в его возрасте
"Каждая мечта тебе дается вместе с силами, необходимыми для ее осуществления."
Р.Бах

#40 BOЯAT Опубликовано 17 Июнь 2009 - 15:28

BOЯAT
  • Друзья
  • 10 Сообщений:
  • Nazar Andrienko

Товарищ, вы можете обьяснить какую разницу вы видите между поиском в гугле и задаванием прямых вопросов на форуме?
На данный момент, ни одного ответа по исправлению алгоритма ему не поступило. Все комментарии были по поводу синтаксиса, что не суть важно.
Главное-умение размышлять, а не умение получать знания, по крайней мере в его возрасте

По мне - так от задавания прямых вопросов на форуме до постов в таком духе (http://rsdn.ru/forum/cpp/3408049.aspx, http://rsdn.ru/forum/cpp/3356455.aspx, см. на том же форуме поиск по вопросу "что такое boost" - в своё время его задавали по несколько раз в день, вместо того, чтобы просто погуглить) - расстояние гораздо меньше, чем кажется на первый взгляд.




0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 невидимых