Решения задач (Borland Pascal)
Помогите, очень-очень прошу.
У меня беда. Нужно срочно сдать четыре задания по программированию. С теорией я разобралась, а вот на практике ничего не получается. Подскажите где можно найти как можно больше решенных задач такого вот рода T=E(12+i в квадрате)+ П(пи) (12-j в квадрате) Тут даже условие нормально написать нельзя, не то что найти похожее =-(
Помогите, очень-очень прошу.
Вряд ли такое где-то лежит...
Ты напиши, что надо, может помогу.
Вряд ли такое где-то лежит...
Ты напиши, что надо, может помогу.
Решить двухэтажний пример в Борланд Паскале, мне бы увидеть хотя бы как оно выглядит =-/
Написать его сюда не реально, разве что рисунком.
Сейчас попробую.
var
sn, cs : real;
begin
sn := sin(x + 6.0);
cs := cos(x + 5.0);
result := (1.0 + sn*sn)/(2.0 + cs*cs);
end;
Спасибо огромное, ты первый кто откликнулся.
Я остальные по примеру попытаюсь сама решить, только вот ещё хочу спросить: Как эта тема называется в Borland Pascale? мне бы ознакомится.
Спасибо огромное, ты первый кто откликнулся.
Я остальные по примеру попытаюсь сама решить, только вот ещё хочу спросить: Как эта тема называется в Borland Pascale? мне бы ознакомится.
Думаю, что "Процедуры, функции"
Но ты же писала что:" С теорией я разобралась..." ;)
Думаю, что "Процедуры, функции"
Но ты же писала что:" С теорией я разобралась..." ;)
Я ваще понять не погу почему ты решил енто делать с помощью ф-ции.Ведь в условии не сказанно ,что алгоритм должен быть реализован с помощью функции.
P( . (Хотя ф-цией целомудреней будет)
--------------------------------------------------
Если писать отдельно программу то раздел в паскале скорее всего будет называться 'математические выражения и операторы'(вроде так):roll:
--------------------------------------------------
Вот кстати ссылочка
Почитай(правда дельфа ,но смысл то не меняется)мож поймёшь :D
Думаю, что "Процедуры, функции"
Но ты же писала что:" С теорией я разобралась..." ;)
Вряд ли ето отдельним розделом идет - ето вродь в самом начале заставляют делать.
Fiona - поищите описание математических функций в хелпе.
С того что так помню он умеет делать :
sin - синус
cos - косинус
arctan - арктангенс
ln - натуральный логарифм
exp - експонента (обратное к логарифму)
sqr - корень квадратный
abs - модуль числа
round - округлить
может не все правильно написал.
Остальние функции можно сделать из етих.
К примеру логарифм числа A с основой B
log(A, B) = ln(A) / ln(B)
В коде ето будет гдето так
begin
log := ln(a) / ln(b);
end
Или число А в степене Б (Б - может бить дробю. Типа Б = 1/3 - корень кубический)
begin
Stepin := exp( b * ln(a));
end
Если поднять книги по математике, тригонометри - то все можно сделать :).
Удачи.
sqr - корень квадратный
Sqr - квадрат
Sqrt - квадратный корень
to uki_ - я оказывается не правильно условия написала =-(
С теорией у меня всё хорошо, если задать определённый вопрос по всей методичке что я учила - отвечу не запинаясь.
to CrazyTimon - посмотрелы ссылочку, но не совсем поняла, там как там без описания.
to Rebbit - с математикой у меня всё хорошо, но этого сделать не получается =-(
___
Я закину задания, если кто знает или встречался с этим, то буду рада любому совету.
вот первое -
Я закину задания, если кто знает или встречался с этим, то буду рада любому совету.
вот первое -
к верхнему
Обчислити та вивести на екран таблицю значень функції - (функция)
Аргумент x змінюється від –4,0(Хпоч)до 2,0(Хкінц) з кроком 0,4 ( ).
Как???( с слезами на глазах )
to uki_ - я оказывается не правильно условия написала =-(
Ну видишь, видишь...:roll:
:)
uses CRT;
var
x, y: real;
function fy(x: real) : real;
var
sn, cs : real;
begin
sn := sin(x + 6.0);
cs := cos(x + 5.0);
result := (1.0 + sn*sn)/(2.0 + cs*cs);
end;
begin
ClrScr;
writeln('Расчет значения функции');
writeln('=======================');
x := -4.0;
while(x <= 2.0) do begin
y := fy(x);
writeln('При x = ,', x:4:1, ' fy = ', y);
x := x + 0.4;
end;
writeln('=======================');
writeln('\nНажмите любую клавишу...');
[color=red]repeat[/color] until Keypressed;
end.
Ну видишь, видишь...:roll: :)
Слов нету! - одни эмоции!! =-)))
Сейчас же начну решать остальные по твоему примеру. =-)
У меня 4 задания и в каждом по три примера - думаю что остальные два решу благодаря тебе - спасибо большое, очень благодарна. =-)
А вот другое задание с таким вот условием:
Скласти блок-схему алгоритму та програму для обчислення виразу (приклад). Значення змінних a та b ввести з клавіатури.
Скласти блок-схему алгоритму та програму для обчислення виразу (приклад). Значення змінних a та b ввести з клавіатури.
uses CRT;
label end_label;
var
F, x, y, [color=red]x1,[/color] y1 : real;
begin
ClrScr;
write('Введите значение x и y (через пробел) ');
read(x, y);
if y = 0.0 then begin
writeln('\nНеправильные входные данные. y = 0');
writeln('(деление на ноль)');
goto end_label;
end;
[color=red]x1 := x + 1.0/y;
if x1 = 0.0 then begin
writeln('\nНеправильные входные данные.');
writeln('(деление на ноль)');
goto end_label;
end;[/color]
y1 := y + 1.0;
y1 := y1 * y1;
if x + y1 < 0.0 then begin
writeln('\nНеправильные входные данные.');
writeln('(корень с отр. числа)');
goto end_label;
end;
F = 1.0/[color=red]x1[/color] + sqrt(x + y1);
writeln('x = ', x);
writeln('y = ', y);
writeln('F(x,y) = ', F);
end_label:
writeln('\nНажмите любую клавишу...');
repeat until KeyPressed;
end.
Нужно бы откомпилировать. У меня нет BP на компе. К первой проге дописал в конец repeat.
Хорошо что вспомнил.
Ты практически мой спаситель - благодарю тебя! =-) сейчас начну по второму заданию решать.
Неужели они такие лёгкие что так быстро, да ещё и без программы решаешь? - мне даже стыдно =-/
А вот так выглядит третие задание:
Скласти блок-схему алгоритму та програму для пошуку максимального серед трьох дійсних чисел, введених з клавіатури.
(В интернете нашла что это на тему - використанням алгоритмів розгалуженої структури, но как решать не рпилагалось)
Неужели они такие лёгкие что так быстро, да ещё и без программы решаешь? - мне даже стыдно =-/
Мда...Ты тоже нашла с кем себя сравнивать... :)
uses CRT;
var
min, x, y, z : Integer;
begin
ClrScr;
write('Введите трех целых чисел (через пробел) ');
read(x, y, z);
if x <= y then
if x <= z then
min := x
else
min := z
else
if y <= z then
min := y
else
min := z;
writeln('\nМинимальным из чисел ', x, y, z,
' является ', min);
writeln('\nНажмите любую клавишу...');
repeat until KeyPressed;
end.
uses CRT;
var
x, Y : real;
begin
ClrScr;
write('Введите вещественное число : ');
read(x);
Y := x*x + 4.0*x + 5.0;
if x > 2.0 then Y := 1.0/Y;
writeln('\nПри x = ', x, ' Y = ', Y);
writeln('\nНажмите любую клавишу...');
repeat until KeyPressed;
end.
Мля.... А по русски задания не сможешь,а то у меня с украинским плохо(я даж не понимаю чё надо сделать):{
Составить блок-схему алгоритма, а написать программу для поиска максимального с трех чисел, введенных с клавиатуры.
якщо == если
Второе задание, то же самое, блок-схема +прога. для формулы ниже. x и y вводятся с клавиатуры.
Даже не знаю как тебя отблагодарить... Не удобно уже становится - столько для меня сделал, без тебя наверное ничего и не решила бы.
Осталось только последнее задание - немного напоминает одно из прошлых, только добавились пару новых значений которые вводят меня в заблужение.
Скласти блок-схему алгоритму та програму для обчислення значення виразу (приклад). Результат вивести на екран.
Вот так пример выглядит:
uses CRT;
var
i, T, mul, sum: Integer;
begin
ClrScr;
// Расчет суммы
sum := 12 * 44;
for i := 1 to 44 do
sum := sum + i*i;
// Расчет произведения
mul := 1;
for i := 1 to 21 do
mul := mul * (12 - i*i);
T := sum + mul;
writeln('T = ', sum, ' + ', mul, ' = ' , T);
writeln('\nНажмите любую клавишу...');
repeat until KeyPressed;
end.
PLEASE!!!Выручайте!!!!
Сроки я не указываю! Но чем быстрее вы ее сможете решить, тем лучше! Заранее огромная благодарность!!!!!!
Ребяточки, посмотрите пожалуйста, кто может, еще одну задачку!!!!! PLEASE!!!!!
Есть тип данных "месяц", есть тип данных "день"(диапазон от 1 до 31). Есть переменные m1 и m2 типа месяц, переменные d1 и d2 типа день и переменная t типа boolean. Переменной t присвоить значение true, если дата d1m1 предшествует в рамках года дате d2m2,и false, если наоборот.
я то итак поняв что S:="путь к файлу" и убрать сроку writeln,readln
[COLOR=Red][/COLOR]
s : string;
x,y : integer;
begin
clrscr;
writeln('Введите набор слов: ');
readln(s);
s[length(s)]:=' ';
while ( s <> '' ) do
begin
x:=Pos(' ',s);
write(s[x-1]);
delete(s,1,x);
end;
readkey;
end.
Она работает если слова разделены строгоодним пробелом.
Вывод последних символов осуществляется в строчку без пробелов так как в условии ничё не сказано.
Катечка первая задача решается так:
Код:
var
s : string;
x,y : integer;
begin
clrscr;
writeln('Введите набор слов: ');
readln(s);
s[length(s)]:=' ';
while ( s <> '' ) do
begin
x:=Pos(' ',s);
write(s[x-1]);
delete(s,1,x);
end;
readkey;
end.
Она работает если слова разделены строгоодним пробелом.
Про последнее слово обработать забыл. Нужно немного подредактировать:
[highlight=pascal]
var
s : string;
x,y : integer;
begin
clrscr;
writeln('Введите набор слов: ');
readln(s);
s[length(s)]:=' ';
while ( s <> '' ) do
begin
x:=Pos(' ',s);
write(s[x-1]);
delete(s,1,x);
end;
write(s[length(s) - 1]);
readkey;
end.
[/highlight]
[highlight=pascal]
type
TMonth = 1..12;
TDay = 1..31;
var
m1,m2 : TMonth;
d1,d2 : TDay;
t : Boolean;
begin
t := False;
m1 := 2;
m2 := 2;
d1 := 22;
d2 := 23;
if m1 = m2 then begin
if d1 = 31 then begin
write(t);
exit;//Иначе при Succ(d1) получим ошибку
end;
if d2 = Succ(d1) then t := true
end;
write(t);
end.
[/highlight]
В данном случае получим true.
Неа ничё я не забыл. Мой код брабатывал все слова, а твой делает тоже самое, тока добавляет в конце вывода пробелм.
Как-то забыл про такой вариант:(
Но тут либо ничё не меняется либо добавляются такие строки (зависит от того считать ли требующим обработки текст до последней точки либо до первой соответственно) после чтения входного текста:
delete(s,Pos('.',s),length(s));
s:=s+' ';
и убирается
s[length(s)]:=' ';
А for - чёта не придумаю где его тут впихнуть можно. тут хватает while, pos и delete.
[highlight=pascal]
uses crt;
var
s: string;
i, index: word;
begin
clrscr;
readln(s);
index:=pos('.', s);
case index of
0, 1:
begin
readln;
exit;
end
else
for i:=1 to index-1 do
if ((s[i+1]=' ') or (s[i+1]='.')) and (s<>' ') then write(s);
end;
readln;
end. [/highlight]