Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

27.05.2009, 22:55
|
|
Новичок
Регистрация: 15.05.2009
Сообщений: 11
Провел на форуме: 7498
Репутация:
0
|
|
Сегодня, 20:17
Забыл сказать - язык C/C++
|
|
|

28.05.2009, 13:15
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
Agregat, stream.ifolder.ru/12341557
Переделаешь под себя немного. Писал в редакторе, не компилил, поэтому возможны ошибки кое-где. Надеюсь поможет.
Пасс в ПМ
|
|
|

29.05.2009, 07:55
|
|
Участник форума
Регистрация: 15.12.2006
Сообщений: 212
Провел на форуме: 587761
Репутация:
144
|
|
Использование структур.
Сформировать массив, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает изучать студент. Комбинированный тип содержит поля: фамилия студента, индекс группы, пять дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе - пробелом.
Написать программу, которая печатает список студентов, желающих прослушать дисциплину X. Если число желающих превышает 4 человека, то отобрать студентов, имеющих более высокий средний балл успеваемости.
Использование строк.
Дана строка слов, разделенных пробелами и запятыми. Подсчитайте количество подстрок (заключенных между запятыми) в строке. Определите длину самого короткого слова.
С++
Благодарю заранее.
|
|
|

29.05.2009, 17:00
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
1.
Код:
struct Student {
private :
string LastName;
int GroupNum;
int Point;
int Subj[5];
public :
/*
Student();
Геттеры и сеттеры
void SetLastName(string inLastName);
void SetGroupNum(int inGroupNum);
void SetPoint(int inPoint);
void SetSubj(int inSubj[5]);
string GetLastName(Student inStudent);
int GetGroupNum(Student inStudent);
int GetPoint(Student inStudent);
int GetSubj(Student inStudent);
void display(Student inStudent);
*/
};
/*
Student::Student() {
LastName = "";
GroupNum = 100;
Point = 0;
Subj[5] = {0, 0, 0, 0, 0};
}
*/
/* Отображение информации о студенте
void display(Student inStudent) {
cout << inStudent.GetLastName() << " " <<
inStudent.GetGroupNum() << endl;
}
*/
int main () {
// Получаем или заводим данные о студентах (массив структур) Student Students[N]
// Получаем дисциплину для выбора студентов (у нее есть номер, которому соответствует
// позиция в Subj[5]) пусть это номер p
// Заводим новый массив пустой массив студентов. Student StudentsOk[N]
// Для студентов с нужной нам дисциплиной.
int k = 0;
for (int i=0; N; i++) { // Где N - количество студентов
if (Students[i].GetSubj[p]())
StudentsOk[k] = Students[i];
if (k > 3) { // Если студентов больше 4, сортируем массив подходящих студентов
Student temp;
for (int j=0; N-1; j++) {
for (i=0;N-1;i++) {
if (StudentsOk[i].GetPoint()> StudentsOk[i+1].GetPoint()) {
temp = StudentsOk[i];
StudentsOk[i] = StudentsOk[i+1];
StudentsOk[i+1] = temp;
}}}
for (i=0; 4; i++)
StudentsOk[i].display();
}
// Если их меньше 4, выводим
else
for (i=0; k; i++)
StudentsOk[i].display();
2.
Код:
// Наша строка - Str
int p,min=0;
int k=0; // С его помощью посчитаем количесвто подстрок
int Min[strle(Str)]={0}; // С его - самое короткое слово
for (int i=0; strlen(Str); i++) {
if (s[i]!=',') {
if (s[i]!=' ')
Min[p]++;
else p++
}
else k++; }
for (i=0; p; i++)
if (Min[i]<min) min=Min[i];
// Осталось только рассмотреть крайнии случаи, когда запятые по краям
cout << "Количество подстрок: " << k+1 << endl;
cout << "Длина самого короткого слова: " << min;
Писал прям здесь, поэтому криво, но думаю, что главное идея, остальное сам добавишь.
Последний раз редактировалось Fata1ex; 29.05.2009 в 20:34..
|
|
|

29.05.2009, 17:20
|
|
Флудер
Регистрация: 27.04.2009
Сообщений: 4,294,967,295
Провел на форуме: 32025
Репутация:
2
|
|
ап хотя бы просто объясните как это проделать
|
|
|

30.05.2009, 00:11
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
Я конечнно понимаю, что задача именно в изучении формулы тейлора, но:
1. x87 FPU считает cos за одну комманду
2. Ассемблер не лучший язык для написания формулы тейлора.
|
|
|

30.05.2009, 00:58
|
|
Флудер
Регистрация: 27.04.2009
Сообщений: 4,294,967,295
Провел на форуме: 32025
Репутация:
2
|
|
да уж преподу это скажи моему  дал такое задание нуна написать к понедельнику, сдам и у меня как раз будет балов чтобы не сдавать экзамен ))
|
|
|

30.05.2009, 07:13
|
|
Познающий
Регистрация: 01.10.2007
Сообщений: 54
Провел на форуме: 291096
Репутация:
2
|
|
Помогите составить блок-схемы для подпрограмм - Метод Дихотомия и Метод Трапеций
#define _USE_MATH_DEFINES
#include <cmath>
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
const double A = 0.7; //константы, даны по условию задачи
const double B = 0.3;
const double bm_step = 0.001; //шаг
double bm;
double F(double y) //подынтегральная функция
{
return sqrt(fabs(A*exp(-(y*y)) + B*exp(-(y/2)) - bm));
}
//
//
//Вычисление интеграла МЕТОДОМ ТРАПЕЦИЙ
//
//
//
double trap(double a, double b, int N)
{
double h = (b - a)/N;
double tmpA, tmpB;
double s;
tmpA = a;
tmpB = a + h;
s = 0; //обнуляем площадь, для того что бы потом просуммировать
for (int i = 0; i < N; i++) //цикл
{
s = s + (F(tmpA) + F(tmpB))*h/2; //формула для нахождения площади
//ограниченную сверху кривой
tmpA = tmpB;
tmpB = tmpB + h;
}
return s;
}
//Функция для нахождения верхнего предела интегрирования
//
//
//МЕТОД ДИХОТОМИИ
//
//
//
double f (double Ym, double bm) //функция f(y)
{
return (0.7*exp(-(Ym*Ym))+0.3*exp(-(Ym/2))-bm);
}
double Ym(double a, double b, double eps, double bm)
{
double c;
do
{
c=(a+b)/2; //объявляем шаг вычисления
if (f(c,bm)*f(a,bm)<0) b=c; //вызов функции
else a=c; //если f(a)*f(c) > 0
//то к значению a присваиваем значение c
}
while (fabs(a-b)>=eps); //«fabs» - берём модуль разности f(b)-f(a)
//и сравниваем с заданной точностью
return c;
}
int main() //заголовок главной функции
{
ofstream file; //открытие файла, file переменная описанная как ofstream
double V,a,b,eps,epsp; //описание вещественных переменных
int N, N1, m;
bm = 0.05;
cout <<"a="; cin >>a; //задаем левую границу интервала
cout <<"b="; cin >>b; //задаем правую границу интервала
cout <<"eps="; cin >>eps; //задаем точность вычислений
cout <<"epsp="; cin >>epsp;
cout<<"N="; //вывод строки символа N= с помощью cout
cin>>N; //ввод N с помощью cin
cout<<endl;
cout<<"Ym="<<Ym(a,b,eps,0.05)<<endl;
file.open("results.txt"); //открывает файл,
//results –полное имя файла на диске,
//txt- режим работы с открытым файлом
for (m = 0; m < 6; m++) //цикл
{
bm = 0.05; //начальное условие
while (bm <= 0.9) //пока bm меньше
// или равно 0.9 выполняется
{
N1=N+1;
while (fabs(trap(a,b,N)-trap(a,b,N1))>epsp)
{
N1=N1*2;
}
V = (m*M_PI + 3*M_PI/4)/trap(0, Ym(a,b,eps,bm), N1);
cout<<"m="<<m<<" "<<"bm="<<bm<<" "<<"trap="<<trap(0, Ym(a,b,eps,bm),N1)<<" "<< "V="<<V<<endl;
if (ceil(V) <= 40) //ceil -округляет дробное значение V
//в большую сторону
//и если меньше или равно 40, то выводит //соответствующие значения на экран
{
cout.setf(ios::left); //выводит значения m=
//использовав флаг форматирования //выравнивание по левой границе
cout<<"m="; //функции вывода результатов на экран
cout.width(10);
cout<<m<<"bm=";
cout.width(10); //устанавливает ширину поля вывода,
//10 позиций
cout<<bm<<"V=";
cout.width(10);
cout<<V<<endl;
cout<<Ym(a,b,eps,bm)<<"Ym=";
cout.width(10);
cout<<Ym(a,b,eps,bm)<<endl;
file.setf(ios::left); //записывает значения в файл
file<<"m=";
file.width(10);
file<<m<<"bm=";
file.width(10);
file<<bm<<"V=";
file.width(10);
file<<V<<endl;
}
bm += bm_step; //сложение с присваиванием
}
}
return 0;
}
|
|
|

30.05.2009, 13:29
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
как вариант написать на си и дать асм-листинг
|
|
|

30.05.2009, 14:55
|
|
Познающий
Регистрация: 27.05.2009
Сообщений: 44
Провел на форуме: 105684
Репутация:
-1
|
|
Сообщение от Monstrillo
Мой товарищ меня опередил) Так же на С++
Написать программу «Англо-русский и русско-английский словарь».
«База данных» словаря содержит по одному варианту перевода слов и хранится в текстовом файле.
Программа должна обеспечивать выбор с помощью меню и выполнение одной из следующих функций:
Формирование «базы данных» словаря.
Выбор режима работы:
англо-русский;
русско-английский.
Вывод перевода заданного английского слова.
Вывод перевода заданного русского слова.
Базу данных словаря реализовать в виде класса vector.
Заранее спасибо.
я навичок но вот тут немнога попробывал низнаю получилось ли или нет
кроме проверки на уже имеюшися слова чтоби небило пофторени ешё незделал но ето легко осуществить с помошю функции поиска в самам нису кода а так вроде всё зделал осталось тока преукрасить меню и всё такое
Код:
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <direct.h>
#include<io.h>
#include<sys/types.h>
#include<sys/stat.h>
using namespace std;
class Translate
{
public:
Translate();
Translate(wstring Rus, wstring Engl);
Translate(const Translate&rhs);
~Translate();
//Set
void SetRus(wstring Rus);
void SetEngl(wstring Engl);
//Get
wstring GetRus()const;
wstring GetEngl()const;
int GetRusLenght()const{ int Lenght=Rus.length(); return Lenght;}
Translate &operator=(const Translate&rhs);
private:
wstring Rus ;
wstring Engl;
};
Translate::Translate (){
Rus='0';
Engl='0';
}
Translate::Translate(std::wstring Rus,std::wstring Engl):
Rus (Rus),
Engl(Engl)
{}
Translate::Translate(const Translate &rhs):
Rus(rhs.GetRus()),
Engl(rhs.GetEngl())
{}
Translate::~Translate()
{}
void Translate::SetRus(std::wstring rus)
{
Rus=rus;
}
void Translate::SetEngl(std::wstring engl)
{
Engl=engl;
}
wstring Translate::GetRus() const
{
return Rus;
}
wstring Translate::GetEngl() const
{
return Engl;
}
Translate&Translate::operator =(const Translate &rhs)
{
Rus=rhs.GetRus();
Engl=rhs.GetEngl();
return *this;
}
typedef vector<Translate> T;
//Funktionen
template <class T>
void Translater ( vector<T>&v,Translate&Transl);
template <class T>
void Add( vector<T>&v,Translate&Transl);
template <class T>
void Remove ( vector<T>&v,Translate&Transl);
template <class T>
void Change( vector<T>&v,Translate&Transl);
template <class T>
void ShawAll(vector<T>&v,Translate&Transl);
template <class T>
void FileExist(vector<T>&v,Translate&Transl);
template <class T>
int Search (vector<T>&v,Translate&Transl);
int main ()
{
locale loc("russian_Russia.1251");
locale::global(loc);
wcin.imbue(locale(".866"));
T v;
Translate Transl;
char choice;
bool Quite=true;
ifstream fin;
bool result=false;
FileExist(v,Transl);
for(;Quite;)
{
cout <<"\n\n\t\t******************Translater**********************\n\n";
cout <<"\t\t+++++В переводчике ";
if(v.size()>1)
cout <<"находятся "<<v.size()<<" Записеи\n";
else
cout<<"находится "<<v.size()<<" Запись \n";
wcout <<"\n **(1)Add***(2)Translate***(3)Change***(4)Remove***(5)ShawAll***(0)Quite**\n";
cout <<"\nчто вы хотите делать ?\n";
wcout<<"\n";
cin>>choice;
cout <<endl;
switch(choice)
{
case '1': Add(v,Transl);
break;
case '2': Translater(v,Transl);
break;
case '3':
break;
case '4':
break;
case '5':ShawAll(v,Transl);
break;
case '0': Quite=false;
break;
default:
{
cout <<"Error\n";
continue;
break;}
}
wofstream fout;
wofstream sout;
fout.open("C:\\Translater 1.0\\Translater.txt");
int q;
for ( q = 0; q <v.size(); q++)
{
int itsLenght=v[q].GetRusLenght();
if(itsLenght>9)
fout<<v[q].GetRus()<<"\t\t\t"<<v[q].GetEngl()<<endl;
else
fout<<v[q].GetRus()<<"\t\t\t\t"<<v[q].GetEngl()<<endl;
}
}
return 0;
}
template <class T>
void Add (std::vector<T>&v,Translate&Transl)
{
wstring Rus,Engl;
wcout<<L"Введи слово"<<endl;
wcin>>Rus;
wcout<<Rus<<endl;
cout<<" Enter the word\n";
wcin>>Engl;
Transl.SetRus(Rus);
Transl.SetEngl(Engl);
v.push_back(Transl);
}
template <class T>
void FileExist(vector<T>&v,Translate&Transl)
{
string strPath="c:\\Translater 1.0";
cout<<strPath ;
if ( access( strPath.c_str(), 0 ) == 0 )
{
struct stat status;
stat( strPath.c_str(), &status );
if ( status.st_mode & S_IFDIR )
{
cout << " Папака была заведена " << endl;
}
else
{
cout << " ето File " << endl;
}
}
else
{
cout << " Папка несуществует, папка\n";
cout<<strPath<<" будет заведена... " << endl;
_mkdir("C:\\Translater 1.0");
}
wifstream fin;
fin.open("C:\\Translater 1.0\\Translater.txt" );
if(fin)
{
cout<<"Фаил Translater.txt был наиден , читается .......\n";
int i=0;
wchar_t rus[100];
wchar_t engl[100];
for(;fin;)
{
fin>>rus;
wstring Rus(rus);
fin>>engl;
wstring Engl(engl);
Transl.SetRus(Rus);
Transl.SetEngl(Engl);
v.push_back(Transl);
}
v.erase(v.end()-1,v.end()); // because for(;fin;)
}
else
cout <<"Фаил Translater.txt был ненаиден\n";
}
template <class T>
void ShawAll(vector<T>&v,Translate&Transl)
{
for(int i=0;i<v.size();i++)
{
wcout <<"Rus: "<<v[i].GetRus() ;
int itsLenght=v[i].GetRusLenght();
if(itsLenght==1||itsLenght==2)
wcout <<"\t\t\t\tEngl: "<<v[i].GetEngl()<<endl;
else
{
if(itsLenght>10)
wcout <<"\t\tEngl: "<<v[i].GetEngl()<<endl;
else
wcout <<"\t\t\tEngl: "<<v[i].GetEngl()<<endl;
}
}
}
template <class T>
void Translater( vector<T>&v,Translate&Transl)
{
wstring Rus,Engl;
wchar_t choice;
cout<<"*** (1)Rus->Engl******** (2) Engl->Rus***\n";
wcin>>choice;
int i=0;
switch (choice)
{
case '1':{
wcin>>Rus;
if(Search (v,Transl,Rus)!=-1)
{
i=Search (v,Transl,Rus);
cout <<"English \n";
wcout<<v[i].GetEngl()<<endl;
}
else
cout<<"Error\n";
}
break;
case '2':
{
wcin>>Engl;
if(Search (v,Transl,Engl)!=-1)
{
i=Search (v,Transl,Engl);
cout <<"Russian \n";
wcout<<v[i].GetRus()<<endl;
}
else
cout<<"Error\n";
}
}
}
template <class T>
int Search (vector<T>&v,Translate&Trransl,wstring Lang)
{
int i,q;
for(i=0;i!=v.size();++i)
{
if((v[i].GetRus()==Lang)||(v[i].GetEngl()==Lang))
{
return i;
}
}
return -1;
}
Последний раз редактировалось new-sl; 30.05.2009 в 22:27..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|