Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: iogun
Дата сообщения: 21.04.2008 08:44
c0d3r
что то в моей проге нет упоминания о массиве у
в общем есть код который нужно перевести на pascal. Помогите пожалуйста

Цитата:

//////////////////////////////////////////////////////////////////////////////
//
// Solving differential equations (Eiler-Coshi method)
// (c) Johna Smith, 1996
//
// Method description:
// Given differential equation y'=f(x,y) and starting conditions
// x=x0, y(x0)=y0. We should find solution of this equation
// at [a;b] interval.
// y(i+1) calculated as y(i) + delta y(i)
// delta y=h*(f(x,y(i))+f(x,z))/2, z=y(i)+h*(f(x(i),y(i))
//
// In this example y'=cos(y)+3x, [a;b]=[0;1], x0=0, y0=1.3
//
//////////////////////////////////////////////////////////////////////////////
#include <math.h>
#include <stdio.h>
const float a=0,b=1; // bound of the interval
const int num_points=10; // number of point to solve
float x0=0,y0=1.3; // initial conditions
int M=1;
float f(float x, float y)
{
return (cos(y)+3*x); // y'=cos(y)+3*x
}
void calculate(int m,float *y)
{
float x,yi,h,z;
h=(b-a)/(num_points*m);
yi=y0; x=x0;
for (int i=0;i<num_points;i++)
{
for (int k=0;k<m;k++)
{
z=yi+h*f(x,yi);
yi+=h*(f(x,yi)+f(x,z))/2;
x+=h;
}
*(y+i)=yi;
}
}
void main(void)
{
float yh[num_points],yh2[num_points];
calculate(M,yh);
calculate(2*M,yh2); // doubled step for better accuracy
// epsilon is difference between solutions with single
// and double steps
printf("X\t\tYH\t\tYH2\t\tEPSILON\n");
for (int i=0;i<num_points;i++)
printf("%f\t%f\t%f\t%f\n",(x0+((i+1)*(b-a))/num_points),
yh[i],yh2[i],yh2[i]-yh[i]);
}

Автор: hazor90
Дата сообщения: 21.04.2008 15:25
Люди ответте на мой вопрос пожалуйста, см. посты выше, изза одной ошибки программа не работает и не развивается
Автор: TeXpert
Дата сообщения: 21.04.2008 18:18
iogun
Цитата:
что то в моей проге нет упоминания о массиве у
Есть:
Цитата:
float yh[num_points],yh2[num_points];
calculate(M,yh);
calculate(2*M,yh2)
Их, как видишь, даже два.
Цитата:
// Solving differential equations (Eiler-Coshi method)
Это -- грубая подделка, имена обоих великих нагло искажены.
Автор: iogun
Дата сообщения: 22.04.2008 10:08
TeXpert

а может у Вас есть алгоритм (программ) этого метода. очень, очень нужно - курсовую сдать.
Автор: chintoi
Дата сообщения: 23.04.2008 17:44
как это правильно записать?

char charfromblock[][9][4] =
{
    {'c' ,'b' , 'a', ','},
    {'f' ,'e' , 'd', '.'},
    {'i' ,'h' , 'g', '!'},
    {'l' ,'k' , 'j', '-'},
    {'n' ,' ' , 'm','\0'},
    {'q' ,'p' , 'o', '?'},
    {'t' ,'s' , 'r', '('},
    {'w' ,'v' , 'u', ':'},
    {'z' ,'y' , 'x', ')'}
},

{
    {'г' ,'в' , 'а', 'б'},
    {'ж' ,'ё' , 'д', 'е'},
    {'к' ,'й' , 'з', 'и'},
    {'о' ,'н' , 'л', 'м'},
    {'р' ,' ' , 'п','\0'},
    {'ф' ,'у' , 'с', 'т'},
    {'ш' ,'ч' , 'х', 'ц'},
    {'ы' ,'ъ' , 'щ', '-'},
    {'я' ,'ю' , 'ь', 'э'}
};
Автор: BornLeader
Дата сообщения: 24.04.2008 11:19
char charfromblock[][9][4] =
{
{
{'c' ,'b' , 'a', ','},
{'f' ,'e' , 'd', '.'},
{'i' ,'h' , 'g', '!'},
{'l' ,'k' , 'j', '-'},
{'n' ,' ' , 'm','\0'},
{'q' ,'p' , 'o', '?'},
{'t' ,'s' , 'r', '('},
{'w' ,'v' , 'u', ':'},
{'z' ,'y' , 'x', ')'}
},

{
{'&#227;' ,'&#226;' , '&#224;', '&#225;'},
{'&#230;' ,'&#184;' , '&#228;', '&#229;'},
{'&#234;' ,'&#233;' , '&#231;', '&#232;'},
{'&#238;' ,'&#237;' , '&#235;', '&#236;'},
{'&#240;' ,' ' , '&#239;','\0'},
{'&#244;' ,'&#243;' , '&#241;', '&#242;'},
{'&#248;' ,'&#247;' , '&#245;', '&#246;'},
{'&#251;' ,'&#250;' , '&#249;', '-'},
{'&#255;' ,'&#254;' , '&#252;', '&#253;'}
}
};
Автор: chintoi
Дата сообщения: 24.04.2008 11:22
оу, спасибо! как это я про еще пару скобок забыл. то есть теперь я такой ошибки не допущу. в первый раз очевидное кажется неочевидным
Автор: BornLeader
Дата сообщения: 24.04.2008 11:23
char charfromblock[][9][4] =
{
{
{'c' ,'b' , 'a', ','},
{'f' ,'e' , 'd', '.'},
{'i' ,'h' , 'g', '!'},
{'l' ,'k' , 'j', '-'},
{'n' ,' ' , 'm','\0'},
{'q' ,'p' , 'o', '?'},
{'t' ,'s' , 'r', '('},
{'w' ,'v' , 'u', ':'},
{'z' ,'y' , 'x', ')'}
},

{
{'&#227;' ,'&#226;' , '&#224;', '&#225;'},
{'&#230;' ,'&#184;' , '&#228;', '&#229;'},
{'&#234;' ,'&#233;' , '&#231;', '&#232;'},
{'&#238;' ,'&#237;' , '&#235;', '&#236;'},
{'&#240;' ,' ' , '&#239;','\0'},
{'&#244;' ,'&#243;' , '&#241;', '&#242;'},
{'&#248;' ,'&#247;' , '&#245;', '&#246;'},
{'&#251;' ,'&#250;' , '&#249;', '-'},
{'&#255;' ,'&#254;' , '&#252;', '&#253;'}
}
};
Автор: LuckyELF
Дата сообщения: 24.04.2008 18:35

Цитата:
hazor90


Возможно поздно, но всеже, посмотрел код, компилера рядом не было, но вот что заметил, у тебя конструктор формы содержит другие функции, не вызовы функций, а их тела


Цитата:
__fastcall TForm2::TForm2(TComponent* Owner)
:TForm(Owner)
{
//Конструктор
template <class PType> parser<PType>::parser()


Попробуй написать что-то типа


Код: __fastcall TForm2::TForm2(TComponent* Owner)
:TForm(Owner)
{
Вызовы необходимых функций.
}
Автор: risha89
Дата сообщения: 24.04.2008 21:20
Народ, плиз помогите))) нужно сдавать послезавтра...ума не приложу, как делать((

Путем перестановки элементов квадратной вещественной матрицы добиться того, чтобы ее максимальный элемент находился в левом верхнем углу, следующий по величине — в позиции (2, 2), следующий по величине — в позиции (3, 3) и т.д., заполнив таким образом всю главную диагональ.
Найти номер первой из строк, не содержащих ни одного положительного элемента.
Автор: hazor90
Дата сообщения: 24.04.2008 22:35
LuckyELF
Написать в конструкторе только вызовы функций?, хорошо, попробую
Автор: mastaflow
Дата сообщения: 02.05.2008 14:12
Проблема такая:
пишу змейку - точнее уже написал и работает, но есть некоторый глюк или еще что, который я не могу объяснить

Часть игры выглядит так:

Код:
/**
* gameSpeed = скорость перемещения змейки
* speedCount = счетчик
*/

while(1) {
if(kbhit()) {
input = _getch();
}
if(speedCount == gameSpeed) {
moveSnake(snake, input);
speedCount = 0;
}
speedCount++;
Sleep(1);
}//while
Автор: xdude
Дата сообщения: 02.05.2008 14:39
Друзья, кто-то может подсказать, если функция возвращает std::string - это грозит какими-то издержками в производительности/использовании памяти?

Код:
std::string getMyString()
{
std::string result;
...
return result;
}
...
std::string myString = getMyString;
Автор: Evgen4
Дата сообщения: 05.05.2008 00:43
Кто сталкивался отпишитесь или скиньте что-то почитать.
Задача состоит в том чтобы передавать данные на более низких уровнях не использую TCP/IP и т.д. Желательно если таково существует передавать по мак адрессу (ткните кто-то где почитать), в крайнем случае используя только IP, принимающая сторона что-то наподобии контролера. Ну и конечно это на С++.
Заранее Спасибо
Автор: BornLeader
Дата сообщения: 05.05.2008 17:34
xdude

Цитата:
Или все же лучше передавать в функцию строку по ссылке

Однозначно. В первом случае будет создан временный объект std::string result; а потом только содержимое его будет присвоено к нужному тебе myString, во втором случае ты минуя создание временного объекта сразу работаешь с ним,в чем и выигрываешь.
Автор: VoodooMaster
Дата сообщения: 06.05.2008 15:00
Извините за примитивный вопрос, ни как не могу найти решения
ЕСТЬ ОБРАБОТЧИК КЛИКА МЫШИ
private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs ^ e) {     }
// Соответственно в среде С++
Вопрос такоЙ-
КАК МНЕ ПОЛУЧИТЬ КООРДИНАТЫ КЛИКА И ДРУГИЕ ПАРАМЕТРЫ СОБЫТИЯ?
Автор: BornLeader
Дата сообщения: 06.05.2008 17:01
тебе нужен другой обработчик нажатия мыши - ну например MouseUp или аналогичный.
Тогда координаты можно получить вот таким образом:
private: System::Void pictureBox1_MouseUp(System::Object * sender, System::Windows::Forms::MouseEventArgs * e)
{
char szBuff[80];
char szMessage[1024];
strcat(szMessage,"X = ");
itoa(e->get_X(),szBuff,10);
strcat(szMessage,szBuff);
strcat(szMessage,"\nY = ");
itoa(e->get_Y(),szBuff,10);
strcat(szMessage,szBuff);
MessageBox::Show(szMessage);
}
Автор: Qraizer
Дата сообщения: 06.05.2008 20:13
mastaflow, можно было проще решить. Виндовый шедулер не будет прерывать обычную текущую задачу, чтобы запустить ту, которая только что спала в ожидании какого-нибудь события, которое вот прям счас вдруг произошло. И это правильно, т.к. в противном случае любая задача смогла бы получить почти неограниченное процессорное время, "граммотно" расставляя Sleep()-ы. Поэтому твоя нитка по истечении 1 мс только помечается готовой к исполнению, но запущена будет в момент перепланирования потоков, которое делается обычно раз в 20 мс. И то не факт, что обязательно будет запущена, потому как она может оказаться не единственной такой.
Но кроме обычных задач есть ещё и необычные, которые отличаются тем, что имеют REALTIME_PRIORITY_CLASS. Вот они реагируют на события сразу, не дожидаясь перепланирования потоков. Вернее, они сразу перепланируются виндовым шедулером, не дожидаясь очередного 20 мс-ного момента. Кроме того, пока они сами не уйдут в ожидание чего-нибудь, им время будет выделяться постоянно. Сдвинуть их могут только такие же задачи с ещё большим приоритетом потоков.
Т.е. тебе было достаточно при старте присвоить своему процессу реал-таймовый приоритет. Это было бы самым простым решением. Но как бы то ни было, тебе верно сказали, что рассчитывать на точность задержек в своей программе было изначально неправильно, бо как среда всё-таки многозадачная и планируемая с вытеснением.
Автор: RAVLLIAN
Дата сообщения: 06.05.2008 22:27
Всем привет! Ребят помогите кто-нибудь сделать прогу, просто только начали учить и сразу дали, а разобраться еще не успел.

Написать следующие функции в двух вариантах: с использованием
индексов и указателей. Вначале должна быть написана функция с использованием
индексов. Второй вариант должен являться чисто формальным преобразованием
выражений с индексами в выражения с указателями. Протестировать функции,
т.е. в функции main должны быть тестовые обращения к написанной функции,
например, к функции strcat(...).
При тестировании
- задать исходные строки константами, результат выводить на экран
- исходные строки описать как массивы и вводить из файла
- исходные строки описать с помощью указателей, выделить память и вводить их из файла.
Вывод результатов тестирования выполнить в один общий файл с комментариями и исходными данными. char* strtran(char* string1, char * string2, char string3)
В строке string1 осуществляет замену подстрок string2 строками
string3. Возвращает указатель на преобразованную строку.
Автор: lorents
Дата сообщения: 10.05.2008 17:52
Всем привет!
можете мне помочь в следующем вопросе
у меня проблема с печатью
можно ли отправить документ на определенный dll файл, который отвечает за печать

На пример:

в Windows есть файл photowiz.dll (это мастер печати фотографии)
он находиться

C:\WINDOWS\system32

можете подсказать код отправки фотографий на этот dll файл

очень надо, пожалуйста!

все что я знаю об этом файле то что его можно можно запустить через стандартную программу просмотра фотографии, нажав на кнопку печать

вот сама программа и и dll файл печати
http://img233.imageshack.us/my.php?image=87609092lc5.png
Автор: TeXpert
Дата сообщения: 10.05.2008 22:27
lorents
Цитата:
...можно ли отправить документ на определенный dll файл
Нет такого понятия -- отправлять документ на dll.
Цитата:
...dll файл, который отвечает за печать
Печатью управляет служба спулера печати.
Цитата:
На пример
Например, вот
Код: spoolsv.exe
Автор: lorents
Дата сообщения: 11.05.2008 18:16
привет!
подскажите пожалуйста как можно вызвать стандартное диалоговое окно печати виндуса
и соотвественно при нажатии кнопки ОК идет печатать того документ который нужен (документ имеет расширение txt)
Спасибо!
Автор: BornLeader
Дата сообщения: 12.05.2008 12:16
ShellExecute(NULL,"print", "Document.txt", NULL, NULL,SW_NORMAL);


Добавлено:
Извиняюсь: ShellExecute(NULL,"print", "Document.txt", NULL, NULL, SW_SHOWNORMAL);
Автор: regan32
Дата сообщения: 13.05.2008 20:35
парни у меня проблема надо замутить минюшку под дос при помощи псевдографики
в борланд С++ но как это зделать хз искал в инете гайды ненашел ничего что мне нужно
если кто-то писал подобное или знает ссылки с тем как что делать поделитесь со мной.
Заранее спасибо!!!
Автор: distance
Дата сообщения: 14.05.2008 08:54
regan32
ищи TurboVision для C++, оно как раз делает окна и меню с использованием псевдографики.
Автор: razernov
Дата сообщения: 14.05.2008 15:16
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>

void message(int m)
{
if(m==1){printf("\nnevernuiy nomer");}
if(m==2){printf("");}
getch();
}

void func1(void)
{
printf("func1 srabotalo");
getch();
}

void func2(void)
{
printf("func2 srabotalo");
getch();
}

void main()
{
char m;
while(1)
{
clrscr();
printf("Menu:\n");
printf("1.function 1\n");
printf("2.function 2\n");
printf("3.Exit\n");
printf("---\nVvedi variant menu:");

scanf("%c",&m);

switch(m)
{
case '1': func1();break;
case '2': func2();break;
case '3': exit(1);break;
default: message(1);
}
}
}
//----------------------------------------------------
помогите найти ошибку. Почему при первом присваивании m единицы или двойки, всё срабатывает на ура, а при последующих вводах, функции func1 и func2 выполняются, но срабатывает default и выскакивает сообщение о неверном номере. Как сделать, чтоб при вводе 1 и 2 не выскакивало это сообщение "nevernuiy nomer"
Автор: Abs62
Дата сообщения: 14.05.2008 17:45
razernov

Цитата:
Почему при первом присваивании m единицы или двойки, всё срабатывает на ура, а при последующих вводах, функции func1 и func2 выполняются, но срабатывает default и выскакивает сообщение о неверном номере.

Потому, что после считывания символа в буфере остаётся символ '\n', который и будет считан при следующем обращении к scanf.

Цитата:
Как сделать, чтоб при вводе 1 и 2 не выскакивало это сообщение "nevernuiy nomer"

Пробел добавить - scanf(" %c",&m). Это заставит scanf пропускать все пробельные символы, к которым относится и '\n'.
Автор: razernov
Дата сообщения: 14.05.2008 17:59

Цитата:
Abs62

спасибо
Автор: regan32
Дата сообщения: 14.05.2008 18:23

Цитата:
парни у меня проблема надо замутить минюшку под дос при помощи псевдографики
в борланд С++ но как это зделать хз искал в инете гайды ненашел ничего что мне нужно
если кто-то писал подобное или знает ссылки с тем как что делать поделитесь со мной.
Заранее спасибо!!!

Цитата: ищи TurboVision для C++, оно как раз делает окна и меню с использованием псевдографики.
Автор: TeXpert
Дата сообщения: 14.05.2008 18:42
regan32
Цитата:
...это мне не подходит мне надо в borlande
Чушь порешь. TurboVision и есть продукт Borland

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.