
18.10.2009, 18:49
|
|
Познающий
Регистрация: 09.03.2009
Сообщений: 43
С нами:
9039367
Репутация:
53
|
|
Прошу помогите с двумя лабами!
2. Список.
НОВЫЕ ПОНЯТИЯ: шаблон, понятие итератора.
Реализовать динамический список элементов типа T (T -- параметр).
Реализовать:
[на "тройку"] минимальный набор:
операции вставки элемента в начало и конец списка; удаления первого и последнего элемента; деструктор, освобождающий всю выделенную память; запретить использование конструктора копирования и оператора присваивания.
[на "четвёрку"] возможность перебора элементов:
класс-итератор, перебирающий элементы списка при вызове оператора ++
[на "пятёрку"] копирование списков:
корректно работающие конструктор копирования и оператор присваивания.
-----------------------------------------------------------------------------
3. Символьное дифференцирование.
НОВЫЕ ПОНЯТИЯ: наследование, виртуальные методы.
[на "тройку"]
Реализовать абстрактный класс Expression с чисто виртуальными методами Expression *diff(); void print(); реализовать классы Number, Variable, Add (сумма), Sub (разность) с реализациями операции diff (дифференцирование) и print (печать на экран).
Пример:
Expression *e = new Add(new Number(1), new Variable('x'));
e->print();
std::cout << "\n";
Expression *de = e->diff();
de->print();
std::cout << "\n";
delete e;
delete ed;
[на "четвёрку"]
Реализовать классы Mul (произведение), Div (частное), при желании функции типа Sin, Cos и т.п.
[на "пятёрку"]
Реализовать чтение выражения из строки с автоматическим созданием необходимых объектов.
Пример:
Expression *e = read_expression("(x+1)*x");
|
|
|

19.10.2009, 00:01
|
|
Познающий
Регистрация: 10.02.2009
Сообщений: 40
С нами:
9077503
Репутация:
0
|
|
Помогите разобраться плиз, а то постоянно ошибки выдает и если второе условие не выполняется то должно выводится соответствующее сообщение:
program primer;
var
f,x:real;
begin
writeln('Vvedite luboe chislo');
writeln('x=');
readln(x);
if x > 0 then
begin
f := exp (3*ln(x)) / sqrt(3) - exp (x) * abs (ln (exp (3*ln(1,37)))) + exp(3*ln(x)) + 4/3;
writeln ('f=',f);
end;
if x < = 0 then
begin
writeln ('else');
f := ( exp (3*ln(x))) + sqrt (7)) / cos (x - 2 * Pi) - abs ( ln (exp (3*ln(x)))) + 4 * (sin(x)/cos(x));
writeln ('f=',f);
writeln ('Uslovie ne vipolnaetsa');
end;
readln;
end.
|
|
|

19.10.2009, 00:22
|
|
Участник форума
Регистрация: 09.03.2009
Сообщений: 178
С нами:
9038742
Репутация:
523
|
|
Вот попробуй так:
Код:
program primer;
var
f,x:real;
begin
writeln('Vvedite luboe chislo');
writeln('x=');
readln(x);
if x > 0 then
begin
f := exp (3*ln(x)) / sqrt(3) - exp (x) * abs (ln (exp (3*ln(1.37)))) + exp(3*ln(x)) + (4/3);
writeln ('f=',f);
end;
if x <= 0 then
begin
writeln ('else');
f := ( exp (3*ln(x))) + sqrt (7) / cos (x - 2 * Pi) - abs ( ln (exp (3*ln(x)))) + 4 * (sin(x)/cos(x));
writeln ('f=',f);
writeln ('Uslovie ne vipolnaetsa');
end;
readln;
end.
Нужны было подправить несколько логических ошибок
|
|
|

19.10.2009, 00:24
|
|
Познающий
Регистрация: 10.02.2009
Сообщений: 40
С нами:
9077503
Репутация:
0
|
|
Все так только нужно чтобы при вводе о или какого нибудь отрицательнного числа ошибка невыскакивала.А появлялось сообщение что условие невыполняется!
|
|
|

19.10.2009, 00:37
|
|
Участник форума
Регистрация: 09.03.2009
Сообщений: 178
С нами:
9038742
Репутация:
523
|
|
По гугли на тему ошибки Invalid Floating Point Operation
|
|
|

19.10.2009, 01:20
|
|
Познающий
Регистрация: 10.02.2009
Сообщений: 40
С нами:
9077503
Репутация:
0
|
|
Нужно реализовать на Pascale. Найти сумму всех чисел из промежутка а и b кратных из 13 и 5 .
|
|
|

19.10.2009, 02:04
|
|
Познающий
Регистрация: 16.10.2009
Сообщений: 40
С нами:
8720343
Репутация:
14
|
|
Сообщение от >>serhio<<
Нужно реализовать на Pascale. Найти сумму всех чисел из промежутка а и b кратных из 13 и 5 .
Я на Паскале не "бум-бум", но вроде бы так:
Код:
program atob;
uses CRT;
var a,b,n1,n2,i,sum:integer;
begin clrscr;
writeln('Vvedite chislo a ');
readln(a);
writeln('Vvedite chislo b ');
readln(b);
n1:=13; n2:=5;
for i:=a to b do
begin if ((i mod n1)=0) AND ((i mod n2)=0) Then
sum:=sum+i;
end;
writeln('summa ravna => ' , sum);
readln(i);
end.
|
|
|

25.10.2009, 20:00
|
|
Новичок
Регистрация: 11.11.2008
Сообщений: 7
С нами:
9208749
Репутация:
0
|
|
Помогите пожалуйста!Очень срочно нужно.Буду очень благодарен откликнувшимся.
Задание:
Розработать матиматическую постановку задачи и сложить программы на языках Паскаль и Си для перещета координат точки с полярной системы в декартовую.
|
|
|

19.10.2009, 19:03
|
|
Постоянный
Регистрация: 15.03.2008
Сообщений: 441
С нами:
9555536
Репутация:
95
|
|
Вывести на экран все натуральные трехзначные и пятизначные числа из диапазона от A до B, значение которых кратно 13. При отсутствии чисел с указанными свойствами выдать на экран сообщение “Требуемых чисел нет”. Границы диапазона A и B ввести с клавиатуры.
язык - си шарп.
Буду очень благодарен
|
|
|

19.10.2009, 20:28
|
|
Постоянный
Регистрация: 15.03.2008
Сообщений: 441
С нами:
9555536
Репутация:
95
|
|
вот мой код, но он очень странно пашет, постоянно выводит 1000
Код:
int a, b, tr, pt,ost1,ost2,ml,st;
Console.WriteLine("Введите начало диапа,а");
a = int.Parse(Console.ReadLine());
Console.WriteLine("Введите конец диапазона,в");
b = int.Parse(Console.ReadLine());
for (a = a; a <= b; a++)
for( ml=1;ml<=9;ml++)
for (st = 0; st <= 9; b++)
{
tr = 100 * ml + st;
pt = 10000 * ml + st;
ost1 = tr % 13;
ost2 = pt % 13;
if (ost1 == 0)
if (ost2 == 0)
Console.WriteLine(tr);
Console.WriteLine(pt);
else
Console.WriteLine("таких чисел нет"!);
}
Console.ReadLine();
парни, срочно, помогите!)
Последний раз редактировалось jecka3000; 19.10.2009 в 20:30..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|