Показать полную графическую версию : [решено] Помогите решить задачу по С++
Страниц :
1
2
[
3]
4
5
6
7
8
9
10
11
12
13
14
15
16
Логично, а как быть тогда с <iostream> или <iostream.h>, Что правильнее? »
Кулак ему в морду этому умнику, правельно будет #include <iostream.h> потому что .h говорит о разрешении и типе этого файла, потому что официально в языке С++ .h говорит о том что это заголовочный файл, а вы представьте что если у вас в папке include будет самодельный файл iostream.cpp или iostream.txt с каким нибудь нелепыми функциями. И вылезит у вас ошибка.
И вообще традиции чтить надо батенька. :biggrin:
Durson, в MSVS6 в файле iostream (см. папку Microsoft Visual Studio\VC98\CRT\SRC) указанно // iostream standard header в iostream.h - *iostream.h - definitions/declarations for iostream classes, а в Visual C++ 2008 уже // iostream standard header for Microsoft, а iostream.h отсутствует вовсе, что указывает на то что Микрософт в этой версии своего компилятора решила поддержать стандарт по данному вопросу.
На крайний случай можно глянуть в драфт стандарта ... Никакого iosteam.h там не упоминается, в отличие от iostream (701 страница). »
Drongo, что говорится в Борланде в файлах iosteam.h и iostream?
Здесь (http://www.forum.oszone.net/post-826676-2.html) Admiral говорит об обсуждении, но я не помню ни темы, ни ключевого слова, хотя недавно видел эту тему
[решено] C++ | Проблема с iostream.h (http://forum.oszone.net/thread-71845.html)
iostream (http://ru.wikipedia.org/wiki/Iostream.h) в википедии.
в файле iostream (см папку Microsoft Visual Studio\VC98\CRT\SRC »
Ага у меня почему то отсутствует папка CRT а вместо неё есть папка MFC и там лежит папка SRC в которой у меня нету файла iostream. :happy:
Durson, тогда можно посмотреть папку Microsoft Visual Studio\VC98\Include, в Visual C++ 2008 аналогичная папка и iosteam.h все равно нету.
что говорится в Борланде в файлах iosteam.h и iostream? »А где именно смотреть? :dont-know У меня оба есть.
Drongo, в обоих, первую закомментированную строчку, если такая имеется, аналогично как в я 44 посте (http://forum.oszone.net/post-917386.html#post917386). А какого года компиллер?
C:\Program Files\Borland\CBuilder6\Include\oldstl\iostream.h
// -*- C++ -*-
C:\Program Files\Borland\CBuilder6\Include\iostream.h
// Wrapper header file used to select STL via defines.
// Default is STLport.
C:\Program Files\Borland\CBuilder6\Include\Using\iostream
ничего, кроме кода using std::cout; cin; endl; и т.п
C:\Program Files\Borland\CBuilder6\Include\Stlport\iostream
Только предупреждение что использование на свой страх и риск и права автораА какого года компиллер? »1999 года. Вру! 2002 :) Посмотрел в справка -> о программе.
Drongo, что-то ничего определённого, касательно стандарта Borland не указал, возможно в новых версиях внесли ясность, по аналогии как MS.
Durson, что б код работал и в Visual C++ 2008 нужно вместо CharToOem писать CharToOemA, а что б завёлся и конкретный пример нужно после всех include написать using namespace std; для обеспечения работоспособности cout.
Всё дело в том, что MSVS6 по умолчанию работает с ANSI версией функций и данных, а последующие версии уже с Unicode. CharToOemW что подразумевает использования Unicode, для использования старинки ANSI явно указываем CharToOemA.
Такая программа будет иметь обратную совместимость с Win9x/ME, но на 2000м и выше будет выполнятся несколько медленнее чем её Unicode аналоги.
Ребята! Помогите решить задачу по С++
Условие:
Для одномерного массива N, состоящего из 20 элементов действительного типа найти среднее арифметическое значение.
Заранее спасибо!
Для вас она может показаться совсем простой, но я в языках программирования не очень!!!
fly85, Вот так, писалось под Borland C++ Builder 6.0. В строках cout<<"..."; русский текст, это для понимания, при компиляции будут крякозяблики, просто заменить нужно будет текстовку на соответствующую английскую, или сделать чтобы консоль понимала кирилицу.
// Для одномерного массива N, состоящего из 20 элементов действительного типа
// найти среднее арифметическое значение.
#include <iostream>
using namespace std;
int main()
{
const int size = 20; // Размер массива
int array[size] = {0}; // Сам массив
int total = 0; // Результат суммирования всех значений
int result; // Храним результат среднеарифметического
int z; // Просто чтобы окошко не закрывалось
// Считываем 20 значений с клавиатуры и сохраняем в массив
for(int i = 0; i < size; i++){
cout<<"Введите значение в элемент массива [ "<<i<<" ] = ";
cin>>array[i];
}
cout<<"Подсчёт среднего значения"<<endl;
// Подсчёт общей суммы значений
for(int i = 0; i < size; i++)
total += array[i];
result = total / size; // Находим среднее арифметическое
cout<<"Среднеарифметическое значение равно = "<<result<<endl; // Выводим результат
cin>>z;
return 0;
}
//---------------------------------------------------------------------------
Спасибо! Объяснение как раз кстати!!!!
Помогите по С++ решить задачу:
Для одномерного массива х состоящий из 12 элементов действительного типа подсчитать количество элементов из интервала | a, b | (a, b любые целые числа а <b)
Спасибо!
goor88, Если правильно понял задачу, (просуммировать значения содержащиеся в элементах массива от a до b), если так, то вот. Хотя сомневаюсь что правильно понял постановку задачи.
// Для одномерного массива х состоящий из 12 элементов действительного типа
// подсчитать количество элементов из интервала | a, b | (a, b любые целые числа а <b).
#include <iostream>
using namespace std;
int main()
{
const int size = 12; // Размер массива
int array[size] = {0}; // Сам массив
int total = 0; // Результат суммирования всех значений
int a, b; // Начало и конец интервала.
int z; // Просто чтобы окошко не закрывалось
// Считываем 12 значений с клавиатуры и сохраняем в массив
for(int i = 0; i < size; i++){
cout<<"Введите значение в элемент массива [ "<<i<<" ] = ";
cin>>array[i];
}
// Вводим значения интервала, без проверки выхода за диапазон массива
cout<<"Введите начало интервала = "<<endl;
cin>>a;
cout<<"Введите конец интервала = "<<endl;
cin>>b;
cout<<"Подсчёт среднего значения"<<endl;
// Подсчёт общей суммы значений
for(int i = a; i < b; i++)
total += array[i];
cout<<"Общая сумма значений элементов массива от "A" до "B" = "<<total<<endl; // Выводим результат
cin>>z;
return 0;
}
//---------------------------------------------------------------------------
Спасибо огромное!!! Вы настоящий профессионал!!!
Если вам не трудно и эту сможете решить?
Для одномерного массива V, состоящий из 15 действительных чисел, найти сумму элементов.
Большое спасибо!!!
PS: Это последняя.
Lisiy_egik
20-01-2010, 02:14
goor88, Если задание формулировалось именно так. как вы тут сказали( в смысле нет никаких требований к реализации), то вот решение:
//Для одномерного массива V, состоящий из 15 действительных чисел, найти сумму элементов.
#include <iostream> // включение стандартной библиотеки ввода - вывода
using namespace std; // использование пространства имен std
const int size = 15; //задается переменная. используемая для определения размерности массива
int main()
{
int v[size]; // объявление самого массива
cout << "Введите " << size << " цифр, которые будут содержаться в массиве" << endl;
for(int i = 0; i<size; i++)
cin >> v[i]; // цикл заполнения массива с консоли
int summ = 0; // объявление и инициализация переменной для хранения суммы
for(int q = 0; q<size; q++)
summ += v[q]; // суммирование всех элементов массива
cout << "Summ = " << summ << endl; // вывод результата на экран
return 0;
}
Lisiy_egik
20-01-2010, 05:23
Cutegirl1645, ну не знаю какие были требования к выполнению задания, но вот я так сделал, компилится без ошибок, все работает, проверку на ошибки сама доделаешь, а то я и так полтора часа назад курить собирался, да на твой пост наткнулся.
в общем:
main.cpp:
//Написать программу, которая подводит итоги конкурса "5 лучших товаров года". Оценка товара производится
//по пятибалльной системе. Программа должна получать от пользователя число людей, давших товару определенный
//бал, вычислить общее количество проголосовавших за данный товар людей и число набранных баллов, и после этого
//упорядочить список (методом пузырька с простым алгоритмом) в соответствии с набранным количеством баллов.
//Сортировку оформить в виде функции.
#include <iostream>
#include "rus8.h"
#include "goods.h"
using namespace std;
int main()
{
rus();
goods *arr = new goods[g];
get_point(arr);
set_people(arr);
set_spoint(arr);
get_result(arr);
print_result(arr);
delete [] arr;
return 0;
}
goods.h
#pragma once
#include <iostream>
using namespace std;
const int sp = 5; // size point кол-во баллов в системе оценивания
const int sn = 30; // size name макс кол-во символов в названии товара
const int g = 5; // кол-во товаров
struct goods
{
int poin[sp];
char name[sn];
int spoint;
int people;
};
void get_point(goods *);
void set_people(goods *);
void set_spoint(goods *);
void get_result(goods *);
void print_result(goods *);
goods.cpp
#include "goods.h"
void get_point(goods *arr)
{
for(int i = 0; i < g ; i++)
{
cout << "Введите наименование (макс длинна 30 символов) : ";
cin >> arr[i].name;
for (int q = 0; q < sp; q++)
{
cout << endl << "Введите кол-во людей оценивших этот товар в " << (q+1) << " балл(а)";
cin >> arr[i].poin[q];
}
}
cout << endl;
}
void set_people(goods *arr)
{
for(int i = 0; i < g; i++)
{
arr[i].people = 0;
for(int q = 0; q < sp; q++)
arr[i].people = (arr[i].people + arr[i].poin[q]);
}
}
void set_spoint(goods *arr)
{
for(int i = 0; i < g; i++)
{
arr[i].spoint = 0;
for(int q = 0; q < sp; q++)
arr[i].spoint += (arr[i].poin[q]*(q+1));
}
}
void get_result(goods *arr)
{
goods temp;
for(int i = 0; i < g; i++)
{
for(int q = (g-1); q > i; q--)
{
if(arr[q-1].spoint < arr[q].spoint)
{
temp = arr[q-1];
arr[q-1] = arr[q];
arr[q] = temp;
}
}
}
}
void print_result(goods *arr)
{
for(int i = 0; i < g; i++)
{
cout << (i+1) << "-е место занял товар : " << arr[i].name << endl;
cout << "Набравший : " << arr[i].spoint << " баллов" << endl;
cout << "Всего проголосовавших за этот товар : " << arr[i].people << endl << endl;
}
}
rus8.h
#ifndef _RUS_H
#define _RUS_H
#include <locale.h>
inline void rus( void )
{
setlocale( LC_CTYPE, ".1251" );
setlocale( LC_MONETARY, ".1251" );
return;
}
#endif
с тебя пиво, я думаю оно того стоит) :coffee: даже если не за прогу, то в утеху мне, за то. что я сегодня экзамен по программированию провалил...
Большое человеческое СПАСИБО !!! :ok:
Champ10n
26-01-2010, 07:05
Сделайте, пожалуйста, кому не сложно, три задачки по C++
1.Структуры(записи) и программирование информационных задач
Разработать программу регистрации кандидатов в депутаты. Для каждого из кандидатов хранятся:
* Фамилия, имя и отчество.
* Возраст.
* Профессия.
* Наименование партии.
* Номер избирательного округа.
* Судимость.
2. Работа с файлами
Обеспечить хранение данных в файлах для программы, разработанной в рамках задания 1.
3. Динамические структуры данных
Переделать задание 1, используя динамическую структуру данных для хранения данных.
Lisiy_egik
27-01-2010, 12:16
Сделайте, пожалуйста, кому не сложно, три задачки по C++ »
это уже перебор. как бы тут можно подсказать в случае. если что-нибудь не получается, а вот если просто "лень" делать и свалить это на другого - это уже наглость.
в принципе тут 3 задачи. которые я бы реализовал в 1й, ибо не вижу смысла размещать не в динамической памяти массив структур. да и ввод для теста будет долгим, если это делать с консоли.
мб сегодня выложу тебе решение
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.