powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите исправить ошибки в программах на С++.
83 сообщений из 83, показаны все 4 страниц
Помогите исправить ошибки в программах на С++.
    #33594810
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем, кто читает эту тему! Люди добрые! Помогите, пожалуйста, исправить ошибки в программе, написанной на С++. Для начала коротко о себе. Я - студент-заочник 1-го курса, делающий лабы. А заочник я из-за инвалидности, поэтому не могу приходить в институт за консультацией и ищу помощи в инете. И вот задание 2-ой лабы и программа, в которой всего один недостаток:
Код: plaintext
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.
33.
34.
Лабораторная работа №  2 

 

Тема: Алгоритмы с разветвлениями. Условный оператор.

Задание: Написать программу для решения поставленной задачи (см. варианты заданий). Исходные данные и результаты вывести в табличной форме.


 

Порядок выполнения работы:

 

После ввода исходных данных выполнить очистку экрана и вывести результаты следующим образом. В верхней части экрана должны располагаться строки:

 

Лабораторная работа №  2 

Тема: “Условный оператор”

\ Выполнил:  фамилия имя \

 

С помощью спецсимвола табуляции первые две строки должны быть размещены по центру экрана, а третья — чуть правее. Далее должны следовать четыре пустые строки и потом — исходные данные и результаты работы программы (в табличной форме).

 Варианты заданий: 

 8 .Дано действительное число а. Вычислить f(a), если 
             0  при x<= 0 
f(x)=    x*x-x при  0 <x<= 1 
            x*x-sin(x*x) в остальных случаях
Текст программы имеет вид:
Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <windows.h>

#pragma hdrstop
#pragma argsused
/////////////////////////////////////////////////////////////////
char bufRus[ 256 ];
char* Rus(const char* text)
{
CharToOem(text, bufRus);
return bufRus;
}
char* Rus(char* text)
{
 CharToOem(text,text);
 return text;
}
/////////////////////////////////////////////////////////////////
double main(){
   double a, x, f;
   cout<<Rus("Введите действительное число а: ");
   cin>>a;
   a=x;
   clrscr();
   cout<<Rus("\t\t\t\tЛабораторная работа № 1");
   cout<<endl;
   cout<<Rus("\t\t\t\tТема: \"Условный оператор\" " );
   cout<<endl;
   cout<<Rus("\t\t\t\t\t\\Выполнил: Чашенков Сергей\\\r\n\n\n\n");
   cout<<endl;
   if(x<= 0 ) f= 0 ; cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                          cout<<Rus(" f(x)=0");
                          cout<<endl;
   if(x> 0 &&x<= 1 ) f=x*x-x; cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                                            cout<<Rus(" f(x)=x*x-x=")<<f;
                                            cout<<endl;
   if (x> 1 ) f=x*x-sin(x*x); cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                                           cout<<Rus(" f(x)=x*x-sin(x*x)=")<<f;
                                           cout<<endl;
   getch();
}
Недостаток в выводе результатов. При вводе числа, например, 2 выводится вот что:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
                              Лабораторная работа №  1 
                               Тема: "Условный оператор"
                                      \Выполнил: Чашенков Сергей\


При х= 2 .53991е- 314  f(x)= 0 
При х= 2 .53991е- 314  f(x)=x*x-x=- 2 .53991е- 314 
При х= 2 .53991е- 314  f(x)=sin(x*x)=- 2 .53991е- 314 
Именно так! Вместо числа 2 и результата, выводится 2.53991е-314 и (-2.53991е-314). В паскале в таких случаях просто пишется в объявлении переменной - ":0:2". Типа выводить два знака после запятой. А здесь как?!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33594899
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1)

cout<<Rus("\t\t\t\tЛабораторная работа № 1");
cout<<endl;
==
cout<<Rus("\t\t\t\tЛабораторная работа № 1")<<endl;
2) Не рекомендуется смешивать вызовы <iostream> и <stdoi.h>
Просто плохой стиль. Тем более что очистка экрана и getch в конце вам собственно на фиг не нужны.

3) if(x<=0) f=0; cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
cout<<Rus(" f(x)=0");
cout<<endl;
После IF должен идти ОПЕРАТОР или ОПЕРАТОРНЫЙ БЛОК. В вашем случае
(видимо) должно быть несколько операторов, стало быть , должен быть операторный блок.

4) По логике работы три ветки взаимоисключающие, ну так и пишите их взаимоисключающими, с else.

5) по поводу формата -- смотрите в сторону манипуляторов <iostream>

6) У вас (видимо) был введен 0 на входе, но он и должен быть нулем без всяких форматов. У вас же печатается какая-то фигня вообще (я не понял почему), так что совет - приведите в порядок логику работы программы сначала, а затем еще раз прогоните и посмотрите на результаты. Желательно вообще-то все три ветки прогонять, а не одну. Если опять будут вопросы, шлите также и ввод , а не толко вывод (один Бог знает, что вы там набивали).
Хорошим тоном в таких случаях считается сделать вывод также и исходных данных, чтобы было видно, что они вводятся, и вводятся правильно.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33595720
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv1)

cout<<Rus("\t\t\t\tЛабораторная работа № 1");
cout<<endl;
==
cout<<Rus("\t\t\t\tЛабораторная работа № 1")<<endl;
В одной теме мне посоветовали сделать как в первом случае, но я проверил второй способ - работает и с ним. Просто сначала у меня эта строка имела вид:
Код: plaintext
cout<<"\t\t\t\t\r\n",Rus("Лабораторная работа № 1")<<endl;
Компилятор в этой строке выдавал ошибку. Мне посоветовали изменить её либо так:
Код: plaintext
cout<<"\t\t\t\t",Rus("Лабораторная работа № 1")<<endl;
, либо так:
Код: plaintext
1.
cout<<"\t\t\t\t\r\n",Rus("Лабораторная работа № 1");
cout<<endl;
Но после этого у меня программа компилировалась, но строка "Лабораторная работа № 1" (а вместе с ней и все строки, т.к. я их преобразовал подобно этой) не выводилась. Маленько поломав мозги, я преобразовал строки:
Код: plaintext
1.
cout<<"\t\t\t\t\r\n",Rus("Лабораторная работа № 1");
cout<<endl;
в
Код: plaintext
1.
cout<<Rus("\t\t\t\tЛабораторная работа № 1");
   cout<<endl;
MasterZiv2) Не рекомендуется смешивать вызовы <iostream> и <stdoi.h>
Просто плохой стиль.Хм... А покажи мне место где я их смешал... MasterZivТем более что очистка экрана и getch в конце вам собственно на фиг не нужны.Читай внимательнее задание лабы:
Код: plaintext
После ввода исходных данных выполнить очистку экрана...
А getch(); используется для того, чтобы можно было увидеть результат работы программы.

MasterZiv3) if(x<=0) f=0; cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
cout<<Rus(" f(x)=0");
cout<<endl;
После IF должен идти ОПЕРАТОР или ОПЕРАТОРНЫЙ БЛОК. В вашем случае
(видимо) должно быть несколько операторов, стало быть , должен быть операторный блок. Что-то я маленько недопонял... Приведи пример. А! Должно быть ты имеешь ввиду сделать так:
Код: plaintext
1.
2.
 if(x<= 0 ) {f= 0 ; cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                          cout<<Rus(" f(x)=0");
                          cout<<endl;}

MasterZiv4) По логике работы три ветки взаимоисключающие, ну так и пишите их взаимоисключающими, с else.Я так пробовал... Если написать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if(x<= 0 ) f= 0 ; cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                         cout<<Rus(" f(x)=0");
                         cout<<endl;
   else if(x> 0 &&x<= 1 ) f=x*x-x; cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                                                   cout<<Rus(" f(x)=x*x-x=")<<f;
                                                   cout<<endl;
   else if (x> 1 ) f=x*x-sin(x*x); cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                                                  cout<<Rus(" f(x)=x*x-sin(x*x)=")<<f;
                                                  cout<<endl;
выдаётся ошибка о том, что else потеряно. Если написать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if(x<= 0 ){ f= 0 ; cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                         cout<<Rus(" f(x)=0");
                         cout<<endl;
   [else if(x> 0 &&x<= 1 ) f=x*x-x; cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                                                     cout<<Rus(" f(x)=x*x-x=")<<f;
                                                     cout<<endl;
   [else if (x> 1 ) f=x*x-sin(x*x); cout<</*"\n\n%s\n",*/Rus("При х=")<<x;
                                                   cout<<Rus(" f(x)=x*x-sin(x*x)=")<<f;
                                                   cout<<endl;]]
выдаётся ошибка синтаксиса.

MasterZiv6) У вас (видимо) был введен 0 на входе, но он и должен быть нулем без всяких форматов. У вас же печатается какая-то фигня вообще (я не понял почему), так что совет - приведите в порядок логику работы программы сначала, а затем еще раз прогоните и посмотрите на результаты. Желательно вообще-то все три ветки прогонять, а не одну. Если опять будут вопросы, шлите также и ввод , а не толко вывод (один Бог знает, что вы там набивали).
Хорошим тоном в таких случаях считается сделать вывод также и исходных данных, чтобы было видно, что они вводятся, и вводятся правильно.
Хм... Видимо ты невнимательно прочёл моё сообщение. А я писал: "При вводе числа, например, 2 выводится вот что:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   Лабораторная работа №  1 
                               Тема: "Условный оператор"
                                      \Выполнил: Чашенков Сергей\


При х= 2 .53991е- 314  f(x)= 0 
При х= 2 .53991е- 314  f(x)=x*x-x=- 2 .53991е- 314 
При х= 2 .53991е- 314  f(x)=sin(x*x)=- 2 .53991е- 314 
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33595858
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok
Не плоди темы, а лучше ЧИТАЙ ТО, ЧТО ТЕБЕ ПИШУТ....
Если у тебя много времени, то у других его не настолько много...
Учи матчасть... ("Блин..",- сказал я и тихо грязно выругался )

Сказал же тебе уже Какабас Барабас, что:
Код: plaintext
1.
a=x;
приводит к ошибке. По умолчанию переменные не инициализируются каким-либо значением (т.е. в переменной находтся всякий мусор...)...
Так как ты вводишь данные в переменную а, то этим кодом:
Код: plaintext
1.
a=x;
ты уничтожаешь то полезное, что успел сделать...

К сведению: в программировании выражение a=b не эквивалентно выражению b=a ...
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33595909
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ура!!! Решил попробовать заменить а=х на х=а и использовать скобки для задания блока:
Код: plaintext
1.
2.
3.
4.
if(x<= 0 ) {
     f= 0 ; cout<</*"\n\n%s\n",*/Rus("При х="<<x; 
     cout<<Rus(" f(x)=0"; 
     cout<<endl; 
   }
Заработало! И никаких else не надо!

Теперь проблема с третьей лабой.
Задание:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Лабораторная работа №  3 

Тема: Операторы цикла. Вычисления с некоторой точностью.
Задание: Написать программу для решения поставленной задачи (см. варианты заданий).

Замечания:

	Для хранения целых чисел вместо типа данных int рекомендуется использовать тип unsigned long int, для хранения действительных чисел — тип double. 
	В качестве результатов работы программы обязательно вывести на экран не только значение суммы, но и заданную точность, количество учтенных слагаемых и значение последнего слагаемого (для проверки). 

Варианты заданий:


 8 .	Даны действительные числа x, e (x<> 0 , e> 0 ). Вычислить с точностью e:

беск.     x^ 2 *k
сумма  --------
k= 0      ( 2 ^k) * k!
(беск. = знак бесконечности; сумма = знак суммы. В числителе - х в степени 2k, а в знаменателе - 2 в степени k умноженная на факториал k, не относящийся к степени.) Текст программы имеет вид:
Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
//---------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <windows.h>

#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
char* Rus(char* text);
int main(){
  const int max= 500 ;
  double x, e;
  clrscr();
  printf(Rus("Введите значение х!=0:"));
  scanf("%d", &x);
  do
  {
     if (x= 0 ) printf(Rus("Ошибка! Х не должно равняться 0! Попробуйте снова:\n"));
        printf(Rus("Введите значение х не равное 0:"));
        scanf("%d", &x);
  }
  while (x= 0 );
  printf(Rus("Введите точность e>0:"));
  scanf("%d", &e);
  do
  {
     if (e<= 0 ) printf(Rus("Ошибка! E должно быть больше 0! Попробуйте снова:\n"));
        printf(Rus("Введите значение е>0:"));
        scanf("%d", &e);
  }
  while (e<= 0 );
  bool done=true;
  double sum= 1 , y=sum, a, b;
  for (int k= 0 ; fabs(sum)>e; k++){
    a= 2 ;
    while (a>=k){
      b= 1 *a;
      a++;
    }
    sum*=pow(x, 2 *k)/(pow( 2 ,k)*b;
    y+=sum;
    if(k>max){
       printf(Rus("\nРяд расходится!"));
       done=false; break;
    }
  }
    if(done){
       printf(Rus("\nРезультат функции %6.2f с точностью %6.2f при х=%6.2f получен после %6.2f итераций", sum, e, x, k);
    }
    getch();
  }
/////////////////////////////////////////////////////////////////
char* Rus(char* text)
{
 CharToOem(text,text);
 return text;
}
/////////////////////////////////////////////////////////////////
Ошибка в строке
Код: plaintext
sum*=pow(x, 2 *k)/(pow( 2 ,k)*b;
В сообщении об ошибке написано "Ожидание". Помоги!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33595963
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. У тебя помесь while и for, некошерно как-то :)
1.1. вот за это: "while (x=0);" - по рукам битой !
далее, подобные фрагменты:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
printf(Rus("Введите значение х!=0:"));
  scanf("%d", &x);
  do
  {
     if (x= 0 ) printf(Rus("Ошибка! Х не должно равняться 0! Попробуйте снова:\n"));
        printf(Rus("Введите значение х не равное 0:"));
        scanf("%d", &x);
  }while (x== 0 );
почему бы не написать например так:
Код: plaintext
1.
2.
3.
4.
5.
6.
  for(x= 0 ;x== 0 ;)
  {
     printf(Rus("Введите значение х!=0:"));
     scanf("%d", &x);
     if (x== 0 ) printf(Rus("Ошибка! Х не должно равняться 0! Попробуйте снова:\n"));
  }
2. Факториал на каждом проходе сначала будешь считать ?
3. Складывать ряд вещественных чисел от бОльших к меньшим - приведет к потере точности.
4. "Ошибка в строке sum*=pow(x,2*k)/(pow(2,k)*b;" - на первый взгляд, это ведь сумма, зачем *= ????
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33596176
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C. parenyok
Не плоди темы, а лучше ЧИТАЙ ТО, ЧТО ТЕБЕ ПИШУТ....
Если у тебя много времени, то у других его не настолько много...
Учи матчасть... ("Блин..",- сказал я и тихо грязно выругался )Знаешь, что?! Если у других времени мало, то они не регистрируются на форумах подобно этому и уж по крайней мере не ищут темы тех, которым отказали в помощи и не пишут там "оскорбительные" письма, отбивая желание у тех, кто согласился помочь, а делают свои дела! Тем более я в предыдущей теме писал и в этой пишу, что Я НЕ ПРОШУ ПИСАТЬ ЗА МЕНЯ ПРОГИ, А ТОЛЬКО ИСПРАВИТЬ ОШИБКИ!!! А людям, которые знают С++ (пускай даже на базовом уровне) ошибки исправить не составит большого труда, потому как я сейчас изучаю как раз только азы этого языка! А тот, кто не хочет помочь, тот просто проявляет свою гордость, что, мол, он может книгу почитать, вместо этого у других время отнимает! Если так, то для чего вообще этот форум создавали???!!!

Станислав C.Сказал же тебе уже Какабас Барабас, что:
Код: plaintext
1.
a=x;
приводит к ошибке. Ой! Да спасибочки ему на добром слове... И спасибо тебе, Стас, что сжалился надо мной и включил в прогу функцию, хотя оказывается можно просто поменять а=х на х=а и в операторах условия "{ }" поставить! А не затруднит ли тебе в этой проге (см. выше) исправить ошибки?
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33596413
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во! Карабас Барабас! А ты чё тут делаешь?! Нет, ну спасибо, конечно, что ты проявил желание мне помочь, но просто с вашей со Стасом стороны как-то по нахальски получается: в самой первой теме, которую я создал, меня кинули. Во второй - тоже. Дак ещё и в эту включились...
Карабас Барабас1. У тебя помесь while и for, некошерно как-то :)
А чё тут такого некошерного-то?
Карабас Барабас1.1. вот за это: "while (x=0);" - по рукам битой !
далее, подобные фрагменты:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
printf(Rus("Введите значение х!=0:"));
  scanf("%d", &x);
  do
  {
     if (x= 0 ) printf(Rus("Ошибка! Х не должно равняться 0! Попробуйте снова:\n"));
        printf(Rus("Введите значение х не равное 0:"));
        scanf("%d", &x);
  }while (x== 0 );
почему бы не написать например так:
Код: plaintext
1.
2.
3.
4.
5.
6.
  for(x= 0 ;x== 0 ;)
  {
     printf(Rus("Введите значение х!=0:"));
     scanf("%d", &x);
     if (x== 0 ) printf(Rus("Ошибка! Х не должно равняться 0! Попробуйте снова:\n"));
  }
Хм... А какая разница-то?
Карабас Барабас2. Факториал на каждом проходе сначала будешь считать ?Всмысле...
Карабас Барабас3. Складывать ряд вещественных чисел от бОльших к меньшим - приведет к потере точности.Хм... Ну я вычисляю сумму положительных чисел по формуле
Код: plaintext
1.
2.
беск.     x^ 2 *k
сумма  --------
k= 0      ( 2 ^k) * k!
А иначе как? Вот в книге Павловской на стр. 50-51 и в практикуме на стр. 40-41 приведены примеры подобно моей лабе. Но я не пойму почему в задачах требуется найти значения функций по одной формуле, а в программе они вычисляются абсолютно по другой формуле.
Карабас Барабас4. "Ошибка в строке sum*=pow(x,2*k)/(pow(2,k)*b;" - на первый взгляд, это ведь сумма, зачем *= ????
Posted via ActualForum NNTP Server 1.3А это и многое другое я взял из книг. Книга Павловской стр. 50-51 и практикум стр. 40-41.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33596500
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokВо! Карабас Барабас! А ты чё тут делаешь?!Мне непонятен странный тон ....
parenyokХм... А какая разница-то?В твоем варианте дважды стоит один и тот же scanf
parenyok Карабас Барабас2. Факториал на каждом проходе сначала будешь считать ?Всмысле...в прямом смысле. подумай, как будет считаться факториал на 10000-м, 10001-м, 10002-м проходах. Впрочем, такого факториала не вычислить точно.

parenyok Карабас Барабас3. Складывать ряд вещественных чисел от бОльших к меньшим - приведет к потере точности.Хм... Ну я вычисляю сумму положительных чисел по формуле
Код: plaintext
1.
2.
беск.     x^ 2 *k
сумма  --------
k= 0      ( 2 ^k) * k!
А иначе как?Обычно для сохранения точности сложение большого количества чисел начинают с меньших. Потому что нельзя получить правильный результат, вычисляя 1е100 + 1е-100 (пример очень грубый)
parenyok Карабас Барабас4. "Ошибка в строке sum*=pow(x,2*k)/(pow(2,k)*b;" - на первый взгляд, это ведь сумма, зачем *= ????А это и многое другое я взял из книг. Книга Павловской стр. 50-51 и практикум стр. 40-41.разбирая логику программы, я понял, что sum - это промежуточное значение, которое будет прибавляться к общей сумме. Зачем же ты каждый раз умножаешь это значение на величину очередного члена ряда ?
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33596655
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лови, паренек... Основной алгоритм вычислений:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
S= 1 ;
n= 0 ;
while ((S>e)&&(n<max))
{
//Вычисление очередного члена ряда:
//Последующий член ряда отличается от предыдущего на x^2/(2*n), где n=1,2,3,...
/*
 Вот, кстати, тебе и ответ на вопрос:
 "Но я не пойму почему в задачах требуется найти значения функций по 
  одной формуле, а в программе они вычисляются абсолютно по другой 
  формуле."
*/
if (n== 0 )
  S= 1 ;
else
{
 S *=x*x/ 2 /n;
}

//Вычисление суммы ряда
Sum+=S;
n++;
}

Остальное додумай сам...
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33597865
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НАписать так :

Код: plaintext
1.
cout<<"\t\t\t\t\r\n",Rus("Лабораторная работа № 1")<<endl;

это все равно, что написать так:
Код: plaintext
1.
cout<<Rus("Лабораторная работа № 1")<<endl;

А надо было написать так:
Код: plaintext
1.
cout << "\t\t\t\t\r\n" << Rus("Лабораторная работа № 1") << endl;


Да, веселый топег попался !!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33597873
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заработало! И никаких else не надо!

ELSE НАДО !!!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33597936
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У, блин....

Как бы не выругацца...

Предлагаю такое "соревнование" : parenyok, ты пиши каждую строчку своей программы, и за ней пишы , что она делает. По кусочкам можно, не все сразу.
А мы будем говорить, правильно ты думаешь, или нет. А если неправильно, будешь заново писать, что оно делает, либо менять свою программу чтобы она делала то, что ты говоришь....
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33597960
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// Лажовая функция - портит входные данные.
// Она вообще работать не будет на самом деле. Будет защита памяти.
char* Rus(char* text)
{
 CharToOem(text,text);
 return text;
}

...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33598262
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// Лажовая функция - портит входные данные.
// Она вообще работать не будет на самом деле. Будет защита памяти.
char* Rus(char* text)
{
 CharToOem(text,text);
 return text;
}


Да, входные данные портит безвозвратно. Но для целей "вывел на консоль и забыл" - другого и не надо... Функция работает! (я, как "автор" этой функции сначала все проверил) И явных ошибок (типа Access violation или др.) в пределах учебной программы пользователя Паренек не выдает!!!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33598491
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
Станислав C. MasterZiv
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
// Лажовая функция - портит входные данные.
// Она вообще работать не будет на самом деле. Будет защита памяти.
char* Rus(char* text)
{
 CharToOem(text,text);
 return text;
}


Да, входные данные портит безвозвратно. Но для целей "вывел на консоль и забыл" - другого и не надо... Функция работает! (я, как "автор" этой функции сначала все проверил) И явных ошибок (типа Access violation или др.) в пределах учебной программы пользователя Паренек не выдает!!!



чаще читаем MSDN, господа. Много думаем.


MSDNIf the CharToOem function is being used as an ANSI function, the string can be translated in place by setting the lpszDst parameter to the same address as the lpszSrc parameter . This cannot be done if CharToOem is being used as a wide-character function.

так что память нихрена не испортится
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33598930
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cppтак что память нихрена не испортитсяИспортится, испортится - вызови ее дважды, делов-то
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33598962
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
ничего не портится

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
char c[ 80 ];
	strcpy(c,"привет мир");
	CharToOem(c,c);
	puts(c);
	OemToChar(c,c);
	puts(c);
	CharToOem(c,c);
	puts(c);

привет мир тебе
яЁштхЄ ьшЁ Єхсх
привет мир тебе


а если просто два раза вызвать - то испортится строка - но она imho по любому испортится, даже если буферы разные - конвертация такая.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33599153
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C.
Функция работает! (я, как "автор" этой функции сначала все проверил) И явных ошибок (типа Access violation или др.) в пределах учебной

Функция НЕ работает. Я тоже проверил. (да и проверять-то тут нечего).

Завалится она на строке:
Код: plaintext
1.
printf(Rus("Введите значение х!=0:"));

попытавшись записать в сегмент, где данные только для чтения.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33599319
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите исправить ошибку в четвёртой лабе. Задание:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Лабораторная работа №  4 
Тема: Использование функций.
Задание: Написать программу для решения поставленной задачи с использованием функции (см. варианты заданий). 
Отчет: Правила оформления отчета прежние.

Варианты заданий:
 8 . Даны действительные числа s,t. Получить

f ( t, - 2 *s,  1 . 17  ) + f (  2 . 2 , t, s-t ), где 

                2 *a – b – sin c
f(a,b,c)=	—————        
                       5  + c
Программа:
Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
40.
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <windows.h>

#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
char* Rus(char* text);

void main(void)
{
  double s, t, a, b, c, f, f1, f2;
  clrscr();
  printf("%s",Rus("Введите число s: "));
  scanf("%f", &s);
  printf("%s",Rus("Введите число t: "));
  scanf("%f", &t);
  double del(double a, double b, double c);
  a=t;
  b=- 2 *s;
  c= 1 . 17 ;
  f1=del(a, b, c);
  printf("%s",Rus("При а=t="a", b=-2*s="b" и с="c" значение f1=(2*a-b-sinc)/(5+c)="f1";"));
  a= 2 . 2 ;
  b=t;
  c=s-t;
  f2=del(a, b, c);
  printf("%s",Rus("При а="a", b=t="b" и с=s-t="c" значение f2=(2*a-b-sinc)/(5+c)="f2";"));
  f=summa(f1, f2);
  printf("%s",Rus("Итак, f1+f2="f1"+"f2"="f"."));
  getch();
  }
}
  double del(double a, double b, double c){
  return(( 2 *a-b-sin{c})/( 5 +c));
}
double summa(double f1, double f2){
  return(f1+f2);
}
Ошибка в строке
Код: plaintext
printf("%s",Rus("При а=t="a", b=-2*s="b" и с="c" значение f1=(2*a-b-sinc)/(5+c)="f1";"));
В сообщении об ошибках написано: "Функциональная потеря вызова" (курсор при этом стоит на символе a, который в ковычках). Очевидно, что такая же ошибка и в строке
Код: plaintext
printf("%s",Rus("При а="a", b=t="b" и с=s-t="c" значение f2=(2*a-b-sinc)/(5+c)="f2";"));
Если что-то покажется странным, то сообщаю, что я писал программу на основе примера из книги Павловской стр. 74-75.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33599574
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv Станислав C.
Функция работает! (я, как "автор" этой функции сначала все проверил) И явных ошибок (типа Access violation или др.) в пределах учебной

Функция НЕ работает. Я тоже проверил. (да и проверять-то тут нечего).

Завалится она на строке:
Код: plaintext
1.
printf(Rus("Введите значение х!=0:"));

попытавшись записать в сегмент, где данные только для чтения.
В VC++ это так . А вот в Билдере все проходит "на ура"... Вот тестовый пример (на Билдере):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
#pragma hdrstop

//---------------------------------------------------------------------------
#include <windows.h>
#include <stdio.h>
#include <conio.h>

char *Rus(char *text)
{
CharToOem(text,text);
return text;
}

#pragma argsused

int main(int argc, char* argv[])
{
 printf(Rus("Введите действительное число а: "));
 getch();
        return  0 ;
}
У нашего дорогого Паренька установлен Билдер. Так что все будет "ОК"...
Хотя, конечно, прошу прощения за излишнюю самоуверенность...
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33599842
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЗавалится она на строке:
printf(Rus("Введите значение х!=0:"));



попытавшись записать в сегмент, где данные только для чтения.В каком стандарте написано, что строка "Введите значение х!=0:" - только для чтения ?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33599872
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokПомогите исправить ошибку в четвёртой лабе. Задание:
Прa-а-а-тивный...
Вот тебе Программа:
Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
// ass1.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <windows.h>
#include <stdlib.h>

char *charBuf;
char* Rus(const char* text)
{
 if(charBuf!=NULL)
	 delete [] charBuf;
 charBuf=(char *)calloc( 256 ,sizeof(char));
 CharToOem(text,charBuf);
 return charBuf;
}

double del(double a, double b, double c);
double summa(double f1, double f2);

void main(void)
{
  double s= 0 . 00 , t= 0 . 00 , a= 0 . 00 , b= 0 . 00 , c= 0 . 00 , f= 0 . 00 , f1= 0 . 00 , f2= 0 . 00 ;
  clrscr();
  printf("%s",Rus("Введите s: "));
  scanf("%lf",&s);
  printf("\r\n%s",Rus("Введите t: "));
  scanf("%lf",&t);

  a=t;
  b=- 2 *s;
  c= 1 . 17 ;
  f1=del(a,b,c);
  printf("\r\n%s %4f %s %4f %s %4f",Rus("При a=t="),a,", b=-2*s=",b,", c=",c);
  printf("\r\n %s %4f %s\r\n",Rus(" функция f1=(2*a-b-sinc)/(5+c)="),f1,";");

  a= 2 . 2 ;
  b=t;
  c=s-t;
  f2=del( 2 . 2 ,t, s-t);
  printf("\r\n%s %4f %s %4f %s %4f ",Rus("При а="),a,", b=t=",b,"  c=s-t=",c);
  printf("\r\n%s %4f %s",Rus(" Функция f2=(2*a-b-sinc)/(5+c)="),f2,";");
  f=summa(f1, f2);
  printf("\r\n%s%f%s%f%s%f%s",Rus("Итак, f1+f2="),f1,"+",f2,"=",f,".");
  getch();
}

double del(double a, double b, double c){
  return ( 2 *a-b-sin(c))/( 5 +c);
}

double summa(double f1, double f2){
  return(f1+f2);
}



Найди 10 отличий!!!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600842
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас БарабасВ каком стандарте написано, что строка "Введите значение х!=0:" - только для чтения ?

А в каком стандарте написано, что ее можно менять ?

И, уж если о стандартах, какого типа это выражение ? А ?
(const char *) - можно ее менять ? Правда я действительно не знаю, написано ли это в стандарте. Смотреть ей-богу лень и смысла нет - все равно как минимум половина компиляторов кладет такие строки в защищенный от записи сегмент констант.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600845
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
printf("\r\n%s %4f %s %4f %s %4f",Rus("При a=t="),a,", b=-2*s=",b,", c=",c);


%4f нельзя, надо %4lf, ибо double а не float. Чебурахниццца иначе.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600857
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
char *charBuf;
char* Rus(const char* text)
{
 if(charBuf!=NULL)
	 delete [] charBuf;
 charBuf=(char *)calloc( 256 ,sizeof(char));
 CharToOem(text,charBuf);
 return charBuf;
}


Эта палучша будит, правда нириинтирабильна нифига, и почему-то на больше чем 255 символов ниработаит, но уже прагресс.
Ище нипанятна пачиму нада перевыдилять буфир пастаяннай длины фсе время, ну да ладна, машина жилезная, пусть работаит !!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600861
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тожи написал свой вариант. Он дажи работаит инагда. Но я иво вам нипакажу. Пусть студент сам думаит. А патом пакажу.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600867
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokЕсли что-то покажется странным, то сообщаю, что я писал программу на основе примера из книги Павловской стр. 74-75.

Кстати у Павловской я лично учился С (тогда еще С++ не преподавали). Она мне заочно 5 поставила.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600887
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас БарабасВ каком стандарте написано, что строка "Введите значение х!=0:" - только для чтения ?Ни один стандарт не выдерживает проверки жизнью :)
А то что такие строки только для чтения можно легко убедиться например при помощи такого кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
char *foo(char *str) {
   int i;
   for(i= 0 ; i< 10 ; i++) {
     str[i] = i+ 48 ;
   }
}

void main() {
   printf(foo("abcdefghijklmnop"));
   printf("\n");

   printf(foo("ABCD"));
   printf("\n");

   printf(foo("QWERTYUIOPASDFGH"));
   printf("\n");
}
Запусти, и посмотри где упадет :)
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600920
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
авторchar *foo(char *str) {
int i;
for(i=0; i<10; i++) {
str = i+48;
}
}


во-первых забыл return str.
А то так она валиться будет всякий раз при printf-е непонятно чего.
а с retrun-ом тоже завалится - но правильнее.
строковые константы изменять вообще круто
Давайте еще напишем

strcpy("бим","бом")

и посмотрим что получицца :-)
И не может быть шоб в стандарте не было про то што константы read only.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600935
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cppво-первых забыл return str.Ну забыл, ну склероз, ну и что? :)

cppДавайте еще напишем
strcpy("бим","бом")
и посмотрим что получицца :-) Лучше strcpy("бим","бомба"); :)

cppИ не может быть шоб в стандарте не было про то што константы read only.Вот сейчас просканировал ANSI C по диагонали - не нашел. А на практике встречал несколько подходов - помещение таких текстов в сегменты edata и в code. А если в тексте программы есть строчки типа:
Код: plaintext
1.
char *s1 = "Hello world!";
char *s2 = "world!";
То компилятор может сделать s2 == s1+6.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600964
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
модификация строковой константы относится к случаю неопределенного поведения компилятора.
Поэтому где-то работает, где-то core dumped. Вывод: фтопку :-)
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600967
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где ж наш париньок ?
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33600974
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
нету иво патамушта пара падоть ф корку и спать
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33601036
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
char *charBuf;
char* Rus(const char* text)
{
 if(charBuf!=NULL)
	 delete [] charBuf;
 charBuf=(char *)calloc( 256 ,sizeof(char));
 CharToOem(text,charBuf);
 return charBuf;
}


Эта палучша будит, правда нириинтирабильна нифига, и почему-то на больше чем 255 символов ниработаит, но уже прагресс.
Ище нипанятна пачиму нада перевыдилять буфир пастаяннай длины фсе время, ну да ладна, машина жилезная, пусть работаит !!
Ты понимаешь, когда я писал этот код был конец рабочего дня, когда все мысли... Ну, Вы понимаете о чем я (с)...
Естественно, что:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
char* Rus(const char* text)
{
 char *tmp_string=(char*)text;
 char *charBuf;
 charBuf=new char[strlen(text)];
 CharToOem(tmp_string,charBuf);
 tmp_string=charBuf;
 return tmp_string;
}

получше будет...
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33601049
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl printf(foo("ABCD"));
printf("\n");
Мне достаточно мозга, чтобы не запускать это :)
Извини, но это другая песня. Я говорил о _возможности_ изменять строковые "константы". Бильдер позволяет - ничего плохого в этом не вижу. Надо просто это знать и учитывать
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33601052
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cppмодификация строковой константы относится к случаю неопределенного поведения компилятора. C++Builder 5 helpMerge duplicate strings Causes the compiler to merge two literal strings when one matches another. This produces smaller programs (at the expense of a slightly longer compile time), but can introduce errors if you modify one string .Стало быть возможность менять содержимое строковой константы заложена в компилятор. О возможных последствиях предупреждают. А возможность такая жизнь облегчает, потому как избавляет от бестолковых strcpy и лишних выделений памяти (и последующих ее освобождений)
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33601171
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э! Пацаны! Чё вам делать что ли нечего? Блин, забралися в чужую тему и базарят себе непонятно о чём как бабки на базаре! :-)))) Тут, по-моему, кто-то говорил, что времени у многих нэхватат. Значит вот как да? Базарить в чужих темах время есть, а помочь бедному студенту - времени нет, да?
MasterZivА где ж наш париньок ?
cppнету иво патамушта пара падоть ф корку и спатьА по сопатке??? Шо, соскучились по мне, да? Тогда вот вам задание, чтобы не скучали.
Код: plaintext
1.
2.
3.
Задание: написать программу для решения поставленной задачи (см. варианты заданий). На экран вывести исходный файл (а также преобразованный, если такой требуется получить по заданию). Имена необходимых для работы файлов должны задаваться в командной строке при вызове программы. 


Дан файл f, содержащий действительные числа. Вычислить среднее арифметическое всех чисел, записанных в файле.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33601192
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
Карабас БарабасСтало быть возможность менять содержимое строковой константы заложена в компилятор. О возможных последствиях предупреждают. А возможность такая жизнь облегчает, потому как избавляет от бестолковых strcpy и лишних выделений памяти (и последующих ее освобождений)
Лучше их все-таки избегать. Хорошо, что Builder это докуентирует. Но это непереносимое решение.


parenyok Э! Пацаны! Чё вам делать что ли нечего? Блин, забралися в чужую тему и базарят себе непонятно о чём как бабки на базаре! :-))))
мы выясняем космические проблемы, а не работаем страничкой ответов к задачнику.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33601265
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хэ-Хэ-Хэ... Так создайте кто-нибудь тему "Космические проблемы" или ещё как-нибудь. Нет-нет. Лучше так: "Общество непомогающих умников!" \:-| И болтайте там! А ета тема для тех, кто согласен мне помогать!!!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33601513
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже опять чья-то провокация, чтобы вынудить нас обзавестись модератором
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33601523
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас БарабасПохоже опять чья-то провокация, чтобы вынудить нас обзавестись модератором
Posted via ActualForum NNTP Server 1.3

Ну ежели пошел напрынцып, остается одно
!!! нисдаватся !!!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33601772
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokХэ-Хэ-Хэ... Так создайте кто-нибудь тему "Космические проблемы" или ещё как-нибудь. Нет-нет. Лучше так: "Общество непомогающих умников!" \:-| И болтайте там! А ета тема для тех, кто согласен мне помогать!!!
Хамишь, парниша...

parenyok
Задание: написать программу для решения поставленной задачи (см. варианты заданий). На экран вывести исходный файл (а также преобразованный, если такой требуется получить по заданию). Имена необходимых для работы файлов должны задаваться в командной строке при вызове программы.

Дан файл f, содержащий действительные числа. Вычислить среднее арифметическое всех чисел, записанных в файле.

Ты из какого файла читать будешь? Из текстового или бинарного? Это, как говорят в Одессе, две большие разницы...

Алгоритм следующий:
1. Открываешь файл
2. Считываешь очередное число
3. +1 к счетчику считанных чисел
4. + считанное число к сумме считанных чисел
5. Если достигнут конец файла, выичсляем среднее арифметическое
и выдаем на консоль

"Пилите, Шура. Пилите" (с)
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33603286
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok Шо, соскучились по мне, да? Тогда вот вам задание, чтобы не скучали.

Ты ище с придыдущим заданием нисправился, с заданием номир 2.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33603296
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станслав C.
Алгоритм следующий:
1. Открываешь файл
2. Считываешь очередное число
3. +1 к счетчику считанных чисел
4. + считанное число к сумме считанных чисел
5. Если достигнут конец файла, выичсляем среднее арифметическое
и выдаем на консоль



Алгаритм гаразда прощи. (0) аткрываишь книшку (1) читаишь (2) пишишь праграмму.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33604067
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C. parenyokХэ-Хэ-Хэ... Так создайте кто-нибудь тему "Космические проблемы" или ещё как-нибудь. Нет-нет. Лучше так: "Общество непомогающих умников!" \:-| И болтайте там! А ета тема для тех, кто согласен мне помогать!!!
Хамишь, парниша...Хэк... А чё ещё делать если вы не магёте в одной теме болтать. А Вам обязательно надо в чужую тему залезть. А спрашивается для чего? Для того, чтобы помочь тому, кто не может понять как ошибку в программе исправить (Повторяю: "Не написать программу, а всего лишь навсего исправить в ней ошибку!!!")? Нет! А для чего? Для того, чтобы написать "оскорбительное" письмо в адрес того, кому отказал в предыдущих темах, тем самым отбив желание помочь у тех, кто сначала захотел помочь такому как я! Ну и кто Вы после этого?!

parenyok
Задание: написать программу для решения поставленной задачи (см. варианты заданий). На экран вывести исходный файл (а также преобразованный, если такой требуется получить по заданию). Имена необходимых для работы файлов должны задаваться в командной строке при вызове программы.

Дан файл f, содержащий действительные числа. Вычислить среднее арифметическое всех чисел, записанных в файле.

Ты из какого файла читать будешь? Из текстового или бинарного? Это, как говорят в Одессе, две большие разницы...[/quot]Да вот я тоже, кстати, задался этим вопросом... Ну, по-моему, в этой программе без разницы.

Станислав C.Алгоритм следующий:
1. Открываешь файл
2. Считываешь очередное число
3. +1 к счетчику считанных чисел
4. + считанное число к сумме считанных чисел
5. Если достигнут конец файла, выичсляем среднее арифметическое
и выдаем на консольНу здесь мне всё понятно кроме 1-го... У Павловской про файлы как-то не понятно написано... Объясни.
MasterZivТы ище с придыдущим заданием нисправился, с заданием номир 2.Вспомнила бабка как девкой была... Слышь? А у тебя по руссичу чё? Так как ты, даже мой младшой братишка не пишет... %-D
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33604146
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokУ Павловской про файлы как-то не понятно написано... Объясни.

Легко...
Абстрактно рассматриваем файл как магнитную ленту (бобину, а не кассету), на каждом участке которой записано какое-то значение. Считывающая головка =указатель позиции в файле.

1. При открытии файла (=вставке новой бобины с пленкой) считывающая головка помещается на начало данных (первый байт в файле).
2. При каждой операции чтения-записи головка перемещается на столько позиций (с учетом указанного при открытии файла режима текстовый или бинарный), сколько запрошено для данных (параметры 2 и 3 в функции fread()). 3. При достижении конца файла (бобины) и попытке последующего чтения выдается ошибка...

Лучше всегда файлы рассматривать так, как я описал выше (файл с последовательным доступом). Файлы с произвольным доступом - от лукавого...

Классы - лишь удобная оболочка над этим алгоритмом... Я бы рекомендовал сначала "пощупать" это руками...

В программе пишем:
Код: plaintext
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.
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

//Имеем структуру FILE, которая сохраняет информацию о текущем состоянии 
//потока. (описание содержится в STDIO.H).
FILE *stream;
int hr;
BYTE buffer[ 1024 ];
....
//открываем файл для чтения
  if((stream=fopen((LPCTSTR)FileName,"rb"))!=NULL) 
   {
    //Если файл открыт и до конца файла не добрались
    while(!feof(stream))
    {
     //Читаем данные из файла в буфер
     hr=fread(buffer,sizeof(BYTE), 1 ,stream);

     //обрабатываем считанное значение из буфера
     func(buffer);
    }

   //закрываем открытый файл
   fclose(stream);
  }

Более подробно см. описание соответствующих команд в справке.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33606969
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C.
В программе пишем:
Код: plaintext
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.
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

//Имеем структуру FILE, которая сохраняет информацию о текущем состоянии 
//потока. (описание содержится в STDIO.H).
FILE *stream;
int hr;
BYTE buffer[ 1024 ];
....
//открываем файл для чтения
  if((stream=fopen((LPCTSTR)FileName,"rb"))!=NULL) 
   {
    //Если файл открыт и до конца файла не добрались
    while(!feof(stream))
    {
     //Читаем данные из файла в буфер
     hr=fread(buffer,sizeof(BYTE), 1 ,stream);

     //обрабатываем считанное значение из буфера
     func(buffer);
    }

   //закрываем открытый файл
   fclose(stream);
  }

Так... А где писать вычисления? Между hr=fread(buffer,sizeof(BYTE),1,stream); и func(buffer);?
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33606976
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok
Так... А где писать вычисления? Между hr=fread(buffer,sizeof(BYTE),1,stream); и func(buffer);?
Я не понял: ты придуриваешься или как?
ведь ясно же написано:
Код: plaintext
1.
2.
     //обрабатываем считанное значение из буфера
     func(buffer);
т.е. в приведенном примере функция func() и производит все вычисления...

Хотя, если хочешь, можно написать вычисления прямо в цикле (вместо вызова функции func()). Это на любителя...

И вообще, приведенный мной код - только схема (скелет, "рыба") проведения реальной работы с файлом. Все остальное наполнение (прикрепить к скелету мышцы, обтянуть кожей, т.е. написать необходимые функции и довести их "до ума") тебе надо делать самому...
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33606981
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пацаны! Чё за глюк в 6-ом билдере?! Короче, вчера сделал 5-ю лабу. Проверил работоспособность - вроде работает нормально. Сегодня решил ещё раз проверить свои прошлые лабы, чтобы исправить кое-какие недочёты. Всё. Запускаю через Far первую лабу, а мне вместо неё запускается снова 5-я, хотя я её не запускал. А первая запускается только после того, как я сделаю в ней ошибку. Например, уберу одну фигурную скобку, запущу, компилятор заругается, я скобку востановлю и только после этого запускается первая.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33606983
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, parenyok!

p> Пацаны!

Пацан тут один - ты !

p> Чё за глюк в 6-ом билдере?! Короче, вчера сделал 5-ю лабу.
p> Проверил работоспособность - вроде работает нормально.
p> Сегодня решил ещё раз проверить свои прошлые лабы, чтобы
p> исправить кое-какие недочёты. Всё. Запускаю через Far
p> первую лабу, а мне вместо неё запускается снова 5-я, хотя
p> я её не запускал. А первая запускается только после того,
p> как я сделаю в ней ошибку. Например, уберу одну фигурную
p> скобку, запущу, компилятор заругается, я скобку востановлю
p> и только после этого запускается первая.

Ты хоть их в разных проектах делал ?

----------------------------
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33606988
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C.Я не понял: ты придуриваешься или как?Извини... Я просто приболел немножко, поэтому туго соображаю. А ты этот код где взял? У Подбельского? А то у Павловской подругому. Посмотри к примеру стр. 282.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33607004
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас БарабасПривет, parenyok!Привет, Карабас Барабас! Давно не виделись!

Карабас Барабас p> Пацаны!

Пацан тут один - ты !А все остальные - девки чтоли?!

Карабас Барабас parenyok p> Чё за глюк в 6-ом билдере?! Короче, вчера сделал 5-ю лабу.
p> Проверил работоспособность - вроде работает нормально.
p> Сегодня решил ещё раз проверить свои прошлые лабы, чтобы
p> исправить кое-какие недочёты. Всё. Запускаю через Far
p> первую лабу, а мне вместо неё запускается снова 5-я, хотя
p> я её не запускал. А первая запускается только после того,
p> как я сделаю в ней ошибку. Например, уберу одну фигурную
p> скобку, запущу, компилятор заругается, я скобку востановлю
p> и только после этого запускается первая.

Ты хоть их в разных проектах делал ?

----------------------------
Posted via ActualForum NNTP Server 1.3Упс! Нет... Все в одном...
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33607030
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok Станислав C.Я не понял: ты придуриваешься или как?Извини... Я просто приболел немножко, поэтому туго соображаю. А ты этот код где взял? У Подбельского? А то у Павловской подругому. Посмотри к примеру стр. 282.
Нет, этот код я написал сам. Для своих собственных нужд, а именно для разбора и преобразования к текстовому виду бинарных файлов некоторой АТС (не будем вдаваться в подробности).
Хотя он очень сильно напоминает то, что написано у Подбельского.
У Павловской в этом месте глубокая "яма". Очевидно, она считает, что научившись работать с потоками, работа с файлами пойдет "сама собой"... Вероятно, в чем-то она права...
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33607117
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разрешите спор между мной и моей мамашей. Короче, увидела она как я результаты первой лабы (это про векторы.) привожу к табличной форме. Она говорит, что надо нарисовать таблицу и уже туда записать результаты вычисления программы, а я говорю, что надо просто сделать так, чтобы числа выводились одно под другим. Например, так:
Код: plaintext
1.
2.
3.
Вектор АВ имеет координаты:    - 3 . 00 ,      6 . 00 
              Расстояние от точки А(  5 . 00 ,      3 . 00 )  
                              до точки В(  2 . 00 ,      9 . 00 )
равна длине вектора АВ и равна  6 . 71 
Ну и кто прав?! Или нужно ещё что-нибудь добавить? И ещё одно. Чтобы не писать вышеописанные результаты программы, я зашёл в свою самую первую тему и увидел сообщение, оставленное Карабасом Барабасом вчера в 11:14, следующего содержания:
Привет, parenyok!

p> Значит что? Тема закрыта да? Да ну вас!!! Козлы Вы все!!!!!!! Тема Ответить

И мы все кинулись извиняться

Это в каком смысле??? И интересно, камими судьбами тебя туда занесло?! :-|
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33607129
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
parenyokРазрешите спор между мной и моей мамашей. Короче, увидела она как я результаты первой лабы (это про векторы.) привожу к табличной форме. Она говорит, что надо нарисовать таблицу и уже туда записать результаты вычисления программы, а я говорю, что надо просто сделать так, чтобы числа выводились одно под другим. Например, так:
Код: plaintext
1.
2.
3.
Вектор АВ имеет координаты:    - 3 . 00 ,      6 . 00 
              Расстояние от точки А(  5 . 00 ,      3 . 00 )  
                              до точки В(  2 . 00 ,      9 . 00 )
равна длине вектора АВ и равна  6 . 71 
Ну и кто прав?! Или нужно ещё что-нибудь добавить?



Оба неправы. Необходимо результаты занести в таблицу базы данных оператором INSERT.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33607147
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok
Код: plaintext
1.
2.
3.
Вектор АВ имеет координаты:    - 3 . 00 ,      6 . 00 
              Расстояние от точки А(  5 . 00 ,      3 . 00 )  
                              до точки В(  2 . 00 ,      9 . 00 )
равна длине вектора АВ и равна  6 . 71 
Ой! Не получилось с результатами... Ну, короче, понятно, что в одной колонке "-3.00", "5.00", "2.00" и "6.71", а в другой - все остальные.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33607284
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, cpp!

c> Оба неправы. Необходимо результаты занести в таблицу базы данных оператором INSERT

Ага, щас наговоришь. В задании четко сказано: "вывести в табличной форме", т.е. никуда ничего вводить не надо

----------------------------
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33607405
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас БарабасПривет, cpp!Слышь? А чё ты такой вежливый стал? Здороваешься со всеми.
Карабас Барабас
c> Оба неправы. Необходимо результаты занести в таблицу базы данных оператором INSERT

Ага, щас наговоришь. В задании четко сказано: "вывести в табличной форме", т.е. никуда ничего вводить не надо

----------------------------
Posted via ActualForum NNTP Server 1.3И правда. Причём здесь таблица базы данных? :-J Значит прав я! :-)
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33607417
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, parenyok!

p> Слышь? А чё ты такой вежливый стал? Здороваешься со всеми

Не обольщайся, это в FL такой шаблон для ответа на сообщение

----------------------------
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33609865
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здорова, Стас! М-да... Ну и книженцию ты мне слил! Ну Спасибо тебе большое! Те, кто её написали (а может и отсканировали...) большое дело сделали!!! Ищу там главу про файлы, пока не сориентировался, но в такой ГРОМАДНОЙ книге просто не может не быть этой главы... Короче, у меня осталось 3 лабы на тему: структурные переменные, работа с файлами и работа с указателями. Если ты сможешь подсказать в каких главах это описывается, то буду рад получить от тебя помощь.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33610880
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokЗдорова, Стас! М-да... Ну и книженцию ты мне слил! Ну Спасибо тебе большое! Те, кто её написали (а может и отсканировали...) большое дело сделали!!! Ищу там главу про файлы, пока не сориентировался, но в такой ГРОМАДНОЙ книге просто не может не быть этой главы... Короче, у меня осталось 3 лабы на тему: структурные переменные, работа с файлами и работа с указателями. Если ты сможешь подсказать в каких главах это описывается, то буду рад получить от тебя помощь.

Файловый ввод/вывод описывается в разделах 1.5.1 (стр.27 файла/стр.28 книги), и 20.6 (стр. 1037/1038).
Работа с указателями описывается в разделах 2.2 (стр. 32/33), 3.3 (стр.84/85), 3.9.2 (стр.113/114)
структурные переменные в книге не описываются. Но можно считать их сильно упрощенными классами (без конструкторов-деструкторов, наследования, функций-членов (методов) и, соответственно, без перегрузки функций. А также, переменные-члены (свойства) имеют область видимости только public)

Для сведения всем интересующимся: я "слил" Пареньку книгу Липмана по С++.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33611883
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитав про файлы во всех книгах, которые у меня имеются, у меня вот что получилось:
Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
#include <iomanip>
#include <windows.h>
#include <winuser.h>

#pragma hdrstop
#pragma argsused

char* Rus(const char* text);

/////////////////////////////////////////////////////////////////
char* Rus(char* text)
{
 CharToOem(text,text);
 return text;
}
/////////////////////////////////////////////////////////////////

int main()
{
  char name[ 10 ];

  cout<<Rus("Введите имя файла: ");
  cin>>name;
  ifstream infile("name");

  if ( ! infile ) {
    cerr << "Ошибка открытия файла.\n"
    getch();
  }

  double  c== 0 , a== 0 , k== 0 , s== 0 , v== 0 ;
  while (infile)
  {
    cout<<Rus("Введите количество вводимых чисел: ");
    cin>>c;
    cout<<endl;
    for (i== 1 ; i<=c; i++)
    {
     cout<<Rus("Введите ")<<i;
     cout<<Rus("-ое число: ");
     cin>>c;
     cout<<endl;
     k++;
     s=s+a;
    }
    v=s/k;
    cout<<Rus("Среднее арифметическое введёных чисел равно ")<<v;
   }
  getch();
}
Эта программа не обошлась без ошибок. На этот раз небывалая ошибка в строке
Код: plaintext
cout<<Rus("Введите имя файла: ");
При этом в сообщении об ошибках написано: "Неопределенный символ 'cout'.". Хотя это не символ, а оператор вывода строки на экран. И ещё в следующих сообщениях написано, что неопределены символы: cin, ifstream и т.д. Чё за фигня? :-O
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33611916
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
using namespace std;

напиши после инклюдов

или везде пиши std::cout
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612060
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok
Ну что же... Уже лучше... "Еще немного, еще чуть-чуть" (с)
А должно быть так:
Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
#include <iostream>
#include <fstream>
#include <conio.h>
#include <iomanip>
#include <windows.h>

using namespace std;

char* Rus(const char* text);

/////////////////////////////////////////////////////////////////
char* Rus(char* text)
{
 CharToOem(text,text);
 return text;
}
/////////////////////////////////////////////////////////////////

int main()
{
  char name[ 80 ];

  cout<<Rus("Введите путь и имя файла: ");
  cin>>name;
  ifstream infile(name);

  if ( ! infile ) {
    cerr <<Rus("Ошибка открытия файла.\n") ;
    getch();
    return - 1 ;
  }

  double a= 0 , k= 0 , s= 0 , v= 0 ;
  while (!infile.eof())
  {
     infile>>a;
      k++;
      s=s+a;
    }
    v=s/k;
    cout<<Rus("Считано чисел: ")<<k<<endl;
    cout<<Rus("Сумма чисел: ")<<s<<endl;
    cout<<Rus("Среднее арифметическое считанных чисел равно: ")<<v;
  getch();
  return  0 ;
}
Для работы программы необходимо создать на диске файл (текстовый) в котором прописать через разделитель (пробел или перевод строки) тестовые значения (Например, так: 1.2 2.1 3.1)
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612212
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cppusing namespace std;Хм... А почему в этой и предыдущей лабах эта запись понадобилась, а в остальных - нет? И для чего она нужна, т.е. что она обозначает?
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612243
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
есть два вида заголовочных файлов

#include <iostream.h>

там все помещено в глобальный неймспейс (или совсем без неймспейса -в том стандарте их и не было еще)

и новый, который у тебя заюзан

#include <iostream>

там все объекты в неймспейсе std, поэтому надо квалифицировать.
Наверное раньше ты заголовки старого вида юзал.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612353
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C. parenyok
Ну что же... Уже лучше... "Еще немного, еще чуть-чуть" (с)
А должно быть так:
Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
#include <iostream>
#include <fstream>
#include <conio.h>
#include <iomanip>
#include <windows.h>

using namespace std;

char* Rus(const char* text);

/////////////////////////////////////////////////////////////////
char* Rus(char* text)
{
 CharToOem(text,text);
 return text;
}
/////////////////////////////////////////////////////////////////

int main()
{
  char name[ 80 ];

  cout<<Rus("Введите путь и имя файла: ");
  cin>>name;
  ifstream infile(name);

  if ( ! infile ) {
    cerr <<Rus("Ошибка открытия файла.\n") ;
    getch();
    return - 1 ;
  }

  double a= 0 , k= 0 , s= 0 , v= 0 ;
  while (!infile.eof())
  {
     infile>>a;
      k++;
      s=s+a;
    }
    v=s/k;
    cout<<Rus("Считано чисел: ")<<k<<endl;
    cout<<Rus("Сумма чисел: ")<<s<<endl;
    cout<<Rus("Среднее арифметическое считанных чисел равно: ")<<v;
  getch();
  return  0 ;
}
ВАУ!!! Спасибочки!!!
Станислав C.Для работы программы необходимо создать на диске файл (текстовый) в котором прописать через разделитель (пробел или перевод строки) тестовые значения (Например, так: 1.2 2.1 3.1)Блин! Чё-то, как-то не получается с вводом... Извини, может я что-то не уяснил из книги, но зачем создавать на диске файл (по-моему, программа сама должна это делать. По крайней мере так было в Турбо Паскале.) и зачем в нём писать: 1.2 2.1 3.1? Ну создал я файл "Файл.txt", написал в нём 1.2 2.1 3.1. Дальше запускаю свою (вернее твою :-)) прогу, пишу в строке "Введите путь и имя файла" (кстати, зачем и как вводить путь к файлу и его имя сразу?) Файл, нажимаю "Enter" и получаю ответ: "Ошибка открытия файла.". Решил попробовать ввести "Файл.txt" - результат тот же. Хм... В чём дело? :-/
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612376
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpp#include <iostream.h>

там все помещено в глобальный неймспейс (или совсем без неймспейса -в том стандарте их и не было еще)

и новый, который у тебя заюзан

#include <iostream>

там все объекты в неймспейсе std, поэтому надо квалифицировать.
Наверное раньше ты заголовки старого вида юзал.

Это не заголовки старого и нового вида, это две совсем разные библиотеки. Абсолютно никакого отношения друг к другу не имеющие. Но служащие для одной цели.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612386
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyokА у тебя по руссичу чё? Так как ты, даже мой младшой братишка не пишет... %-D

Па рускаму языку у миня фсигда была питерка. А ты ацтал ат жизни - как ты думаишь это далжно была быть написаным уже нипишут давно. Йязыкотворчиство называица. Панимаишь ?
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612405
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok

Код: plaintext
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.
...
  cout<<Rus("Введите имя файла: ");
  cin>>name;
  ifstream infile("name");

...
  double  c== 0 , a== 0 , k== 0 , s== 0 , v== 0 ;

  while (infile)
  {
    cout<<Rus("Введите количество вводимых чисел: ");
    cin>>c;
    cout<<endl;

    for (i== 1 ; i<=c; i++)
    {
     cout<<Rus("Введите ")<<i;
     cout<<Rus("-ое число: ");
     cin>>c;
     cout<<endl;
     k++;
     s=s+a;
    }
    v=s/k;
    cout<<Rus("Среднее арифметическое введёных чисел равно ")<<v;
   }
  getch();
}

"Неопределенный символ 'cout'.". Хотя это не символ, а оператор вывода строки на экран. И ещё в следующих сообщениях написано, что неопределены символы: cin, ifstream и т.д.



С топегом завязываю. Пареньок ниабучаим.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612656
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
MasterZiv cpp#include <iostream.h>

там все помещено в глобальный неймспейс (или совсем без неймспейса -в том стандарте их и не было еще)

и новый, который у тебя заюзан

#include <iostream>

там все объекты в неймспейсе std, поэтому надо квалифицировать.
Наверное раньше ты заголовки старого вида юзал.

Это не заголовки старого и нового вида, это две совсем разные библиотеки. Абсолютно никакого отношения друг к другу не имеющие. Но служащие для одной цели.

Ведь что интересно:
система Linux RH 7.3:


реальная жизнь

$ cat testcpp.C
#include<iostream>

using namespace std;

main()
{
cout<<"hello"<<endl;
}

$ c++ testcpp.C -o testcpp_NEW

$ cat testcpp.C
#include<iostream.h>

main()
{
cout<<"hello"<<endl;
}

$ c++ testcpp.C -o testcpp_OLD

$ diff testcpp_NEW testcpp_OLD && echo "равны"
равны

$ strace ./testcpp_NEW > testcpp_NEW.log 2>&1
$ strace ./testcpp_OLD > testcpp_OLD.log 2>&1

$ diff testcpp_NEW.log testcpp_OLD.log && echo "равны"
1c1
< execve("./testcpp_NEW", ["./testcpp_NEW"], [/* 19 vars */]) = 0
---
> execve("./testcpp_OLD", ["./testcpp_OLD"], [/* 19 vars */]) = 0




То есть бинарники идентичные генерируются и выполняются совершенно одинаково
у этих двух бинарников, работающих с "совершенно разными библиотеками"

Так что утверждение насчет разных библиотек - это частный случай, похоже, сейчас они слились. Или как это объяснить?
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612681
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv parenyokА у тебя по руссичу чё? Так как ты, даже мой младшой братишка не пишет... %-D

Па рускаму языку у миня фсигда была питерка. А ты ацтал ат жизни - как ты думаишь это далжно была быть написаным уже нипишут давно. Йязыкотворчиство называица. Панимаишь ?
У-ха-ха! И-ха-ха! У-ха-у-ха-у-ха-ха!!! Ой, не могу! Ой, щас уписаюсь! Ой, спасите! Ой, помогите!!!
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612712
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, parenyok!

p> "Ошибка открытия файла.". Решил попробовать ввести
p> "Файл.txt" - результат тот же. Хм... В чём дело?

Эх, дело скорее всего в кодировке имени файла, ты его вводишь в OEM, а прога думает, что в ANSI, если конечно ты указываешь существующий файл. Назови файлик аглицкими буковками

---------------------
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33612858
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас БарабасПривет, parenyok!

p> "Ошибка открытия файла.". Решил попробовать ввести
p> "Файл.txt" - результат тот же. Хм... В чём дело?

Эх, дело скорее всего в кодировке имени файла, ты его вводишь в OEM, а прога думает, что в ANSI, если конечно ты указываешь существующий файл. Назови файлик аглицкими буковками

---------------------
Posted via ActualForum NNTP Server 1.3
Спасибо, помогло! Понял я почему в файле надо писать числа. Но в задании лабы сказано, что файл нужно вывести на экран...
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33613289
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cppТо есть бинарники идентичные генерируются и выполняются совершенно одинаково
у этих двух бинарников, работающих с "совершенно разными библиотеками"


Некоторые реализации для совместимости могут предоставлять эмуляцию <iostream.h> через stl-ные потоковые классы. Поскольку функциональности в <iostream.h> мало, может прокатывать.

А так - <iostream.h> - это потоковая библиотека AT&T, НЕ шаблонная. И нестандартная.
А <iostream> - часть STL, стандартная и шаблонная.

http://www.devx.com/tips/Tip/14447?type=kbArticle&trk=MSCP
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33613339
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok Но в задании лабы сказано, что файл нужно вывести на экран...
Ну и выводи... В цикле, после считывания значения из файла, поставь вывод на консоль (т.е. cout<<Rus("Считано из файла число: ")<<a<<endl )
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33613503
cpp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpp
Гость
MasterZivНекоторые реализации для совместимости могут предоставлять эмуляцию <iostream.h> через stl-ные потоковые классы. Поскольку функциональности в <iostream.h> мало, может прокатывать.

похоже это распространенная тенденция -в RedHat-ах и FreeBSD stl-ный заголовок - просто заглушка:

$ cat /usr/include/g++-3/iostream
// -*- C++ -*- forwarding header.
// This file is part of the GNU ANSI C++ Library.

#ifndef __IOSTREAM__
#define __IOSTREAM__
#include <iostream.h>
#endif
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33614290
Slider2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Билдере немного хитрее сделано:
там всегжа подключается iostream.h.
Но это "пустышка" - в нем только директива #ifdef __STD_IOSTREAM__ ... и собственно, в зависимости от того, определена ли __STD_IOSTREAM__ поключается <oldstl\iostream.h> - старый "нестандартный" вариант или <stlport\iostream> - стандартный вариант, на STL.
Соответственно, по умолчанию __STD_IOSTREAM__ не определен, поэтому узается STL-ный вариант.
Да, еще при использовании STL-ного варианта using namespace std; тоже автоматом выполняется.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33614615
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ANSI/ISO стандарт вообще не обязывает иметь какие-либо файлы с названием "iostream" или "vector" в глобальном каталоге include - файлов: эти библиотеки могут быть как-то прекомпилированы или вообще встроены в компилятор.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33615566
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Довершая картину про <iostream.h> и <iostream> - в MS VC - <iostream.h> - это совершенно отдельная реализация, которая, видимо, сохраняется еще с до-STL-ных времен.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33639187
parenyok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Друзья-товарищи! Помогите дописать 6-ую лабу и внести в неё кое-какие изменения, сделая при этом 8-ую. Задание 6-ой лабы такое:
Код: plaintext
1.
2.
3.
4.
5.
6.
Лабораторная работа №  6 

Тема: Работа со структурными переменными.
Задание: Написать программу для решения поставленной задачи (см. варианты заданий). Исходный список в программе описать в виде массива, состоящего из структурных переменных.

Варианты заданий:
Словарная статья включает английское слово, часть речи и русский перевод. Упорядочить словарь по английскому алфавиту. Результаты вывести в табличной форме.
Программа имеет вид
Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <windows.h>

#pragma hdrstop
#pragma argsused
/////////////////////////////////////////////////////////////////
char bufRus[ 256 ];
char* Rus(const char* text)
{
CharToOem(text, bufRus);
return bufRus;
}
char* Rus(char* text)
{
 CharToOem(text,text);
 return text;
}
/////////////////////////////////////////////////////////////////

int main()
{
  char sl, rech, per, i, j, ch, min;
  cout<<Rus("Введите количество слов в статье: ");
  cin>>ch;
  for (i== 0 ; i<=ch; i++)
  {
    cout<<Rus("\nВведите ")<<i;
    cout<<Rus("-е английское слово: ");
    cin>>sl;
    cout<<Rus("\nЧасть речи: ");
    cin>>rech;
    cout<<Rus("\nПеревод: ");
    cin>>per;
  }
  for (j== 0 ; j<=length(sl); j++)
  {
    min=sl;
    if (s1[j]<s1)
    {
Дальше должен быть обмен слов и вывод результатов. Но я, блин, думал-думал как обмен сделать, так и не сообразил. А в 8-ой лабе надо написать эту же прогу, но только с использованием указателей. Прошу помогите! Эта - мои последние лабы, а мне ещё кусовую делать, которую я ещё не начинал, т.к. по матеше много делать.
...
Рейтинг: 0 / 0
Помогите исправить ошибки в программах на С++.
    #33639381
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
parenyok, как думаешь, что такое

#pragma hdrstop

и для чего оно нужно здесь ?
...
Рейтинг: 0 / 0
83 сообщений из 83, показаны все 4 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите исправить ошибки в программах на С++.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]