forum.rastrnet.ru

forum.rastrnet.ru (http://forum.rastrnet.ru/index.php)
-   Программируем (http://forum.rastrnet.ru/forumdisplay.php?f=35)
-   -   С++ (http://forum.rastrnet.ru/showthread.php?t=37510)

MebiuS 18.12.2007 09:57

Цитата:

Сообщение от Incognito (Сообщение 573940)
Приведи пару примеров правильной записи.

считываем из файла:
Цитата:


f_a=fopen("matrica_A.dat","r");

if (!f_a ) {
printf("\n Nevozmojno otkrit fail s matricei A");
printf("\n Najmite lubyu klavishy dlya vihoda");
getch();
return(0);
}

printf("\n Matrica A chitannaya is faila: \n");
for(i=0;i<=n-1;i++)
{
for(j=0;j<=m-1;j++)
{
fscanf(f_a,"%d ",&a[i][j]);
printf("%d ",a[i][j]);
}
printf("\n");
}
fclose(f_a);
делаем чтонибудь с матрицей
Цитата:

------------------
выводим новую матрицу в файл
Цитата:


printf("\n\n NEW Matrica A :\n");
f_a=fopen("new_matrica_A.dat","w");

for(i=0;i<=n-1;i++)
{
for(j=0;j<=m-1;j++)
{
fprintf(f_a,"%d ",a[i][j]);
printf("%d ",a[i][j]);
}
fprintf(f_a,"\n");
printf("\n");
}
fclose(f_a);


radist 19.12.2007 20:54

народ плиз срочно нужна помощ,нужно согласно заданию написать на С++ программу. кто напишет тому на счет телефона положу 100-200р

задание на фотке

MebiuS 29.01.2008 20:13

как убрать нули после числа? :) чтобы вид не портили

_Nva_ 29.01.2008 22:24

Используй силу %g, он сам подбирает длину мантисы, если я чего не путаю. Или %.xf x - число знаков после запятой.

Ратибор 29.01.2008 22:31

Форматированный вывод:
printf("%.3f",myvar)

TiRex 30.01.2008 02:02

А широковещательный запрос коим образом организовать?
Мне надо организовать на клиентской части рассылку запроса на наличие сервиса некоего. А сервер значит сидит и прослушивает допустим порт, приходит запрос - он ему отвечает, что готов с ним иметь дело. Где почитать поподробнее?

_Nva_ 30.01.2008 09:16

Программирование в сетях Microsoft Windows Джонс А., Оланд Дж.
В этой книге вопросы сетевого программирования под windows освещены. Есть скан данной книги, но сразу предупреждаю он ужастно распознанный.

TiRex 30.01.2008 10:33

Мммм... Если библиотеки подойдут и под линукс, то не плохо бы. Мне под ним надо собствено писать. В манах с чего начать поиск просто не представляю.

_Nva_ 30.01.2008 12:35

Вложений: 1
Ну под линух данная книга как практическое руководство не подойдет (описание базируется на winapi), но идеология сокетов одна наверное во всех системах. Прикрепил небольшое описание работы с блокирующими сокетами под unix. А для организации шировещательной рассылки надо использовать udp протокол или tcp с адресом в котором адрес узла подсети состоит из одних 1 в бинарном виде (например 192.168.0.255 при маске 255.255.255.0).

TiRex 30.01.2008 13:56

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

REY 07.02.2008 20:11

Товарищи, возникла такая проблема. Вобщем мне нужно научиться писать проги с графическим интерфейсом. До этого писал только консольные приложения. Скачал с инета какую-то книгу, но что-то как-то там даже написание проги Hello world делается через какие-то классы, и их синтаксис абсолютно не знаком. В общем может у кого есть, или кто посоветует еще какой-нибудь мануальчик, чтобы быстренько освоиться с этим делом.

_Nva_ 07.02.2008 21:03

Графический интерфейс можно строить с помощью разных библиотек. WinApi (самый низкий уровень примитивы ОС), обертка над ними в rad средах (Borland Bulder, Visual Studio), кросплатформенная библиотека (Qt, wxWidgets). Соответсвенно, подходы и литература могут отличаться от выбора библиотеки. Уточни или выбери.

REY 07.02.2008 21:09

Пишу в Microsoft Visual C++ 6.0 Вот по нему бы что-нибудь.

Format c:/ 07.02.2008 21:13

под винду или никсы?

REY 07.02.2008 21:17

Я? Под винду.

Format c:/ 07.02.2008 21:19

qt и непарься в общем хотя можеш погуглить я просто под винду не писал ниразу... возможно в составе каких то крупных библов есть и окна.

REY 07.02.2008 21:30

В общем в вижуале создовал MFC проект, там сразу и менюшка и панель инструментов и окна. Только вот куда мне податься там не посредственно со своим кодом стало как-то непонятно. Как-то гугление и яндексение пока не помогли, так что мож у кого завалялся мануальчик.

TiRex 07.02.2008 23:15

Ищи исходники нормальные просто, по ним нормально можно всё понять, а дальше мсдн.

MebiuS 19.02.2008 19:47

Цитата:

Сообщение от Incognito (Сообщение 603869)
Слышал что с помощью "switch" можно сделать меню.

Обьясните по подробнее КАК ЭТО?

кури методу там хорошо это описано

TiRex 19.02.2008 21:46

printf("1) Perviy\n2)Vtoroy\n...N)N-niy\nViberite punkt: ");
scanf("%d",&menu);
switch(menu)
{
1: printf("\nVibrali 1");break;
...
N:
}
наверное такое...

Димка 29.02.2008 16:24

Подскажите где можно найти пример метода сортировки выбором чтоли:D
по мойму выбором нужны курсовой дописывать а без этого метода никак:( лекции по сортировке не было исчё.

AIR1 23.03.2008 00:43

Подскажите, пожайлуста, функция rand() при каждом запуске программы возвращает одно и тоже число.
Как сделать чтобы числа были разные?

TiRex 23.03.2008 01:18

Цитата:

Сообщение от AIR1 (Сообщение 616196)
Подскажите, пожайлуста, функция rand() при каждом запуске программы возвращает одно и тоже число.
Как сделать чтобы числа были разные?

randomize() (или типо того) перед рандом вызывай

Dem@n 23.03.2008 01:39

дайте ссылку где лежит С++

TiRex 23.03.2008 02:24

http://gcc.gnu.org/
http://www.bloodshed.net/dev/index.html
http://www.codeblocks.org/
http://www.bloodshed.net/
певое что попалось в гугле на "скачать с++". Уточняй запрос.

Dem@n 23.03.2008 11:06

а на нашем фтп нету? не охото с инета качать!

санёк 31.03.2008 16:33

подскажите чем квадратный корень обозначается

TiRex 31.03.2008 16:35

функцией квадратного корня, если память не изменяет это sqrt(double) в math.h

санёк 31.03.2008 18:12

спасиба

AIR1 28.04.2008 17:09

Подскажите, пожайлуста, пишу прогу со вставкой ассемблера, нужно выполнить деление содержимого регистра esi на edi, я пишу:

mov eax, esi;
idiv edi;

вроде всё правильно, но в регистре eax появляется что-то неосмысленное. В чём может быть ошибка?

ZiC_ 29.04.2008 11:50

Если я правильно понял команду idiv, то после того когда, который ты написал в eax должно быть частное от деления, а в edx - остаток. А что на самом деле получается?

Unbroken 22.05.2008 14:32

Ищу учебник по С++ в электронном виде. Может у кого есть ?

Coder 09.06.2008 15:53

http://www.cyberguru.ru/ - много всего по всем почти языкам, есть исходники, книги
http://www.dasbook.ru/index.php - очень большая библиотека, есть много интересного
http://proklondike.com/ - очень хороший ресурс, рекомендую
http://ihtik.lib.ru/dreamhost_complit_22janv2007.html - огромная коллекция (около 7000) всевозможных книг(Delphi, Turbo Pascal, C/C++, PHP, Perl, Fortran и еще много чего), как на русском так и на английском языках, помоему там можно найти все.

пожалуйста, качай сколько влезет!=) Советую начать с Крупник А. "Изучаем С++". Если не совсем чайник то Уолтер Савич "С++ во всей полноте" или/и Г.Шилтд не помню точно название, что то типа самоучитель С++!

Dem@n 13.06.2008 12:54

помогите написать программу, пожалйста:
написать програму, определяющую сумму элементов главной диагонали произвольной квадратной матрицы!
написать функции:
-заполнение двумерного массива случайными часлами из диапазона [-15;45]
-вывод двумерного массива
-опеределение суммы элементов главной диагонали матрицы!
вообще ниче не понимаю ПОМОГИТЕ, пожалуйста!

Вот пример:
#include<iostream.h>
#include<math.h>
#include <stdlib.h>
#include <time.h>
void vvod (int*, int, int);
void vivod( int *, int, int);

void change(int *, int,int , int , int );
void main ()
{
int d;
int b;
int n,m;
cout<<"vvedite kolichestvo strok-n";
cin>>n;
cout<<"vvedite kolichestvo stolbcov-m";
cin>>m;
cout<<"vvedite d";
cin>>d;
cout<<"vvedite b";
cin>>b;
int *A=new int[n*m];
vvod (A, n,m);
vivod(A,n,m);
change(A,n,m,d,b);
cout<<"rezyltat"<<endl;
vivod(A,n,m);
delete []A;
}

void vvod ( int*A, int n, int m)

{ srand(time(0));
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
*(A+i*m+j)=rand()%401-200;
}
}
}
void vivod( int *A, int n, int m)
{ for (int i=0;i<n;i++)
{
for ( int j=0;j<m;j++)
{

cout<<*(A+i*m+j)<<"\t";
}cout<<endl;}
cout<<endl;
}

void change(int *A, int n , int m, int d, int b)
{ int x;

for (int j=0; j<m; j++)
{
if (j!=b||j!=d)
{
x=*(A+d*m+j);
*(A+d*m+j)=*(A+b*m+j);
*(A+b*m+j)=x;
}
}
}



пример 2:

#include<iostream.h>
#include<stdlib.h>
#include<time.h>

void zapol(int *,int,int);
void vivod(int *,int,int);
void invers(int*,int,int,int);

void main()
{ int n,u;
cout<<"\n"<<"vvedite kol-vo strok dvumernogo massiva u=";
cin>>u;
cout<<"vvedite kol-vo stolbcov dvumernogo massiva n=";
cin>>n;
cout<<"\n";
int *A=new int[n*u];
zapol(A,n,u);
vivod(A,n,u);
int n1,h,j,i;
cout<<"vvedite zameniayemiy stolbec=";
cin>>n1;
cout<<"\n";
cout<<"vvedite zamenyayushiy stolbec=";
cin>>h;
cout<<"\n";
invers(A,n1-1,u,h-1);
cout<<"invers mas A"<<"\n";
vivod(A,n,u);
delete []A;
}
void zapol(int *a,int n,int u)
{
srand (time(0));
int i,j;
for(i=0;i<n;i++)
{ for(j=0;j<u;j++)
{*(a+i*u+j)=rand()%401-200;
}

}
}
void vivod(int *a,int n,int u)
{
cout<<"mas A"<<"\n";
for(int j=0;j<u;j++)
{ for(int i=0;i<n;i++)
{
if(i<(n-1))
cout<<*(a+i*u+j)<<"\t";
else
cout<<*(a+i*u+j)<<"\n";
}
}
}
void invers(int *a,int n1,int u,int h)
{
int S,i,j;

for(j=0;j<u;j++)
{
S=*(a+n1*u+j);
*(a+n1*u+j)=*(a+h*u+j);
*(a+h*u+j)=S;
}

}

Diom 13.06.2008 14:47

Сойдет?
 
Спойлер про программу:
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>

void vvod(int *a,int n);
void vivod(int *a,int n);
void symma(int *a,int n);

void main()
{
int n; //размерность матрицы
int *a; //указатель на целое
clrscr();
cout <<"Введите размерность квадратной матрицы n\n";
cin >> n;
a=new int [n*n];//выделение динамической памяти
vvod(a,n); //генерация случайных чисел
vivod(a,n); //вывод матрицы
symma(a,n); //подсчет элементов
delete []a; //очищение динамической памяти
getch();
}

void vvod(int *a,int n)
{
int i,j;
randomize(); //эээ как объяснить :)
for (i=0;i<n;i++)
for (j=0;j<n;j++)
a[i*n+j]=rand()%61-15;//генерация чисел в диапозоне [-15,45]
}

void vivod(int *a,int n)
{
int i,j;
cout <<"Полученная матрица:\n";
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
cout.width(4); //установка ширины поля
cout << a[i*n+j];
}
cout <<endl;
}
}

void symma(int *a,int n)
{
int i,s=0;
for(i=0;i<n;i++)
s=s+a[i*n+i];
cout <<"Сумма элементов по главной диагонали равна "<< s;
}

Coder 13.06.2008 18:53

раз уж написал, не удалять же! Вариант два:
Код:

/*
*мартица, генерация случайных чисел в диапазоне     
*от -15 до 45, передача двумерного массива в матрицу
*/

#include <iostream>
#include <stdlib.h>

using namespace std;

void generation(int (*matrix)[10])
{
    int i = 0;
    int j = 0;
    for(i=0; i<10; i++)
    {
        for(j=0; j<10; j++)
        {
                  matrix[i][j]=rand()%61-15;
        }
    }
}

void output(int (*matrix)[10])
{
    int i = 0;
    int j = 0;
    for(i=0; i<10; i++)
    {
        for(j=0; j<10; j++)
        {
                cout << matrix[i][j] << "\t";
        }
        cout << "\n\n\n";
    }
}

int summ(int (*matrix)[10])
{
    int i = 0;
    int sum = 0;
    for(i=0; i<10; i++)
    { 
            sum = sum + matrix[i][i];
    }
    return sum;
}

int main(void)
{
    int matrix[10][10];
    generation(matrix);
    output(matrix);
    cout << "\nSum: "<< summ(matrix)<< endl;

system("PAUSE");
return EXIT_SUCCESS;
}


Dem@n 16.06.2008 19:17

а вот помогите прокоментировать:

#include<iostream.h>
#include<math.h>

void mas(int*,int);
void vivod(int*,int);
int krat(int,int);
int kol_krat(int*,int,int);

void main()
{ int *A=new int[10];
int *B=new int[5];
int *C=new int[8];
int k,S;
cout<<"vvedite chislo k=";
cin>>k;
mas(A,10);
vivod(A,10);
S=kol_krat(A,10,k);
cout<<"\n"<<"\n"<<"kol-vo kratnih chislu "<<k<<" elementov massiva="<<S<<"\n"<<"\n";
mas(B,5);
vivod(B,5);
S=kol_krat(B,5,k);
cout<<"\n"<<"\n"<<"kol-vo kratnih chislu "<<k<<" elementov massiva="<<S<<"\n"<<"\n";
mas(C,8);
vivod(C,8);
S=kol_krat(C,8,k);
cout<<"\n"<<"\n"<<"kol-vo kratnih chislu "<<k<<" elementov massiva="<<S<<"\n"<<"\n";
delete []A;
delete []B;
delete []C;
}
void mas(int *n,int a)
{ int i;
for(i=0;i<a;i++)
{ cout<<"vvedite element"<<i+1<<"\n";
cin>>n[i];
}
}
void vivod(int *n,int a)
{ cout<<"mas"<<a<<"\n";
for(int i=0;i<a;i++)
{ cout<<*(n+i)<<"\t";

}
}
int kol_krat(int *n,int a,int k)
{ int i,u,S;
for( i=0,S=0,u=0;i<a;i++)
{ u=krat(*(n+i),k);
S=S+u;
}
return S;
}
int krat(int n,int a)
{ int u;
if(n%a==0)
u=1;
else
u=0;
return u;
}

Dem@n 19.06.2008 18:14

А есть у кого нибудь прога (установочная) C++??? или на фтп?
помогите написать 2 программы:

6 лаба вариант 11
Написать программу для определения разности двух матриц случайных чисел размерностью n*m. Написать функцию:
-заполнения двумерного массива случайными числами из диапозона[0;70];
- вывод двумерного массива;
- определения разности между двумя матрицами одинакового размера.

4 лаба вариант 10
-По вводимому с клавиатуры целому числу определить сколько различных цифр используется в его записе.
-Протестировать программу для некоторого произвольного диапазона числовых значений(157;173)

Mello 26.06.2008 20:20

У меня где-то первая прога была...:)

Maks_Jago 11.06.2010 06:56

Цитата:

Сообщение от Dem@n (Сообщение 643683)
помогите написать программу, пожалйста:
написать програму, определяющую сумму элементов главной диагонали произвольной квадратной матрицы!
написать функции:
-заполнение двумерного массива случайными часлами из диапазона [-15;45]
-вывод двумерного массива
-опеределение суммы элементов главной диагонали матрицы!
вообще ниче не понимаю ПОМОГИТЕ, пожалуйста!

Вот пример:
#include<iostream.h>
#include<math.h>
#include <stdlib.h>
#include <time.h>
void vvod (int*, int, int);
void vivod( int *, int, int);

void change(int *, int,int , int , int );
void main ()
{
int d;
int b;
int n,m;
cout<<"vvedite kolichestvo strok-n";
cin>>n;
cout<<"vvedite kolichestvo stolbcov-m";
cin>>m;
cout<<"vvedite d";
cin>>d;
cout<<"vvedite b";
cin>>b;
int *A=new int[n*m];
vvod (A, n,m);
vivod(A,n,m);
change(A,n,m,d,b);
cout<<"rezyltat"<<endl;
vivod(A,n,m);
delete []A;
}

void vvod ( int*A, int n, int m)

{ srand(time(0));
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
*(A+i*m+j)=rand()%401-200;
}
}
}
void vivod( int *A, int n, int m)
{ for (int i=0;i<n;i++)
{
for ( int j=0;j<m;j++)
{

cout<<*(A+i*m+j)<<"\t";
}cout<<endl;}
cout<<endl;
}

void change(int *A, int n , int m, int d, int b)
{ int x;

for (int j=0; j<m; j++)
{
if (j!=b||j!=d)
{
x=*(A+d*m+j);
*(A+d*m+j)=*(A+b*m+j);
*(A+b*m+j)=x;
}
}
}



пример 2:

#include<iostream.h>
#include<stdlib.h>
#include<time.h>

void zapol(int *,int,int);
void vivod(int *,int,int);
void invers(int*,int,int,int);

void main()
{ int n,u;
cout<<"\n"<<"vvedite kol-vo strok dvumernogo massiva u=";
cin>>u;
cout<<"vvedite kol-vo stolbcov dvumernogo massiva n=";
cin>>n;
cout<<"\n";
int *A=new int[n*u];
zapol(A,n,u);
vivod(A,n,u);
int n1,h,j,i;
cout<<"vvedite zameniayemiy stolbec=";
cin>>n1;
cout<<"\n";
cout<<"vvedite zamenyayushiy stolbec=";
cin>>h;
cout<<"\n";
invers(A,n1-1,u,h-1);
cout<<"invers mas A"<<"\n";
vivod(A,n,u);
delete []A;
}
void zapol(int *a,int n,int u)
{
srand (time(0));
int i,j;
for(i=0;i<n;i++)
{ for(j=0;j<u;j++)
{*(a+i*u+j)=rand()%401-200;
}

}
}
void vivod(int *a,int n,int u)
{
cout<<"mas A"<<"\n";
for(int j=0;j<u;j++)
{ for(int i=0;i<n;i++)
{
if(i<(n-1))
cout<<*(a+i*u+j)<<"\t";
else
cout<<*(a+i*u+j)<<"\n";
}
}
}
void invers(int *a,int n1,int u,int h)
{
int S,i,j;

for(j=0;j<u;j++)
{
S=*(a+n1*u+j);
*(a+n1*u+j)=*(a+h*u+j);
*(a+h*u+j)=S;
}

}

Могу сделать это всё тебе...Могу сделать классом, если нужно...Могу оформить в виде приложения с помощью API, ну или в консоле если нужно...Только за деньги...Интересует такой вариант????


Текущее время: 17:44. Часовой пояс GMT +7.

Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot

Форум открыт в июле 2004 г.