Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Решения задач (Borland Pascal)

16K
20 марта 2006 года
Fiona
9 / / 20.03.2006
У меня беда. Нужно срочно сдать четыре задания по программированию. С теорией я разобралась, а вот на практике ничего не получается. Подскажите где можно найти как можно больше решенных задач такого вот рода T=E(12+i в квадрате)+ П(пи) (12-j в квадрате) Тут даже условие нормально написать нельзя, не то что найти похожее =-(
Помогите, очень-очень прошу.
929
20 марта 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by Fiona
У меня беда. Нужно срочно сдать четыре задания по программированию. С теорией я разобралась, а вот на практике ничего не получается. Подскажите где можно найти как можно больше решенных задач такого вот рода T=E(12+i в квадрате)+ П(пи) (12-j в квадрате) Тут даже условие нормально написать нельзя, не то что найти похожее =-(
Помогите, очень-очень прошу.


Вряд ли такое где-то лежит...
Ты напиши, что надо, может помогу.

16K
20 марта 2006 года
Fiona
9 / / 20.03.2006
Цитата:
Originally posted by sp999
Вряд ли такое где-то лежит...
Ты напиши, что надо, может помогу.



Решить двухэтажний пример в Борланд Паскале, мне бы увидеть хотя бы как оно выглядит =-/
Написать его сюда не реально, разве что рисунком.
Сейчас попробую.

16K
20 марта 2006 года
Fiona
9 / / 20.03.2006
вот так они выглядят
7.9K
20 марта 2006 года
uki_
122 / / 26.01.2006
 
Код:
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;
16K
20 марта 2006 года
Fiona
9 / / 20.03.2006
Цитата:
Originally posted by uki_ [/i


Спасибо огромное, ты первый кто откликнулся.
Я остальные по примеру попытаюсь сама решить, только вот ещё хочу спросить: Как эта тема называется в Borland Pascale? мне бы ознакомится.

7.9K
20 марта 2006 года
uki_
122 / / 26.01.2006
Цитата:
Originally posted by Fiona
Спасибо огромное, ты первый кто откликнулся.
Я остальные по примеру попытаюсь сама решить, только вот ещё хочу спросить: Как эта тема называется в Borland Pascale? мне бы ознакомится.

Думаю, что "Процедуры, функции"

Но ты же писала что:" С теорией я разобралась..." ;)

3.6K
21 марта 2006 года
CrazyTimon
125 / / 13.02.2006
Цитата:

Думаю, что "Процедуры, функции"

Но ты же писала что:" С теорией я разобралась..." ;)


Я ваще понять не погу почему ты решил енто делать с помощью ф-ции.Ведь в условии не сказанно ,что алгоритм должен быть реализован с помощью функции.
P( . (Хотя ф-цией целомудреней будет)
--------------------------------------------------

Если писать отдельно программу то раздел в паскале скорее всего будет называться 'математические выражения и операторы'(вроде так):roll:
--------------------------------------------------
Вот кстати ссылочка
Почитай(правда дельфа ,но смысл то не меняется)мож поймёшь :D

276
21 марта 2006 года
Rebbit
1.1K / / 01.08.2005
Цитата:
Originally posted by uki_
Думаю, что "Процедуры, функции"

Но ты же писала что:" С теорией я разобралась..." ;)



Вряд ли ето отдельним розделом идет - ето вродь в самом начале заставляют делать.

Fiona - поищите описание математических функций в хелпе.
С того что так помню он умеет делать :
sin - синус
cos - косинус
arctan - арктангенс
ln - натуральный логарифм
exp - експонента (обратное к логарифму)
sqr - корень квадратный
abs - модуль числа
round - округлить
может не все правильно написал.
Остальние функции можно сделать из етих.
К примеру логарифм числа A с основой B
log(A, B) = ln(A) / ln(B)

В коде ето будет гдето так

 
Код:
function log(a, b: real): real;
begin
  log := ln(a) /  ln(b);
end


Или число А в степене Б (Б - может бить дробю. Типа Б = 1/3 - корень кубический)
 
Код:
function Stepin(a, b: real): real;
begin
  Stepin := exp( b * ln(a));
end

Если поднять книги по математике, тригонометри - то все можно сделать :).
Удачи.
929
21 марта 2006 года
sp999
198 / / 31.01.2003
Цитата:
Originally posted by Rebbit
sqr - корень квадратный


Sqr - квадрат
Sqrt - квадратный корень

16K
21 марта 2006 года
Fiona
9 / / 20.03.2006
Хочу сказать всем: спасибо что помогаете =-)

to uki_ - я оказывается не правильно условия написала =-(
С теорией у меня всё хорошо, если задать определённый вопрос по всей методичке что я учила - отвечу не запинаясь.

to CrazyTimon - посмотрелы ссылочку, но не совсем поняла, там как там без описания.

to Rebbit - с математикой у меня всё хорошо, но этого сделать не получается =-(
___

Я закину задания, если кто знает или встречался с этим, то буду рада любому совету.

вот первое -
16K
21 марта 2006 года
Fiona
9 / / 20.03.2006
Цитата:
Originally posted by Fiona
Я закину задания, если кто знает или встречался с этим, то буду рада любому совету.

вот первое -



к верхнему

Обчислити та вивести на екран таблицю значень функції - (функция)
Аргумент x змінюється від –4,0(Хпоч)до 2,0(Хкінц) з кроком 0,4 ( ).

Как???( с слезами на глазах )

7.9K
21 марта 2006 года
uki_
122 / / 26.01.2006
Цитата:
Originally posted by Fiona
to uki_ - я оказывается не правильно условия написала =-(

Ну видишь, видишь...:roll:
:)

Код:
program Expr;
  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.
P.S. Шаг 0,3 или 0,4??? По таблице 0,3, но в объяснении к таблице написано, что 0,4
16K
21 марта 2006 года
Fiona
9 / / 20.03.2006
Цитата:
Originally posted by uki_
Ну видишь, видишь...:roll: :)



Слов нету! - одни эмоции!! =-)))
Сейчас же начну решать остальные по твоему примеру. =-)
У меня 4 задания и в каждом по три примера - думаю что остальные два решу благодаря тебе - спасибо большое, очень благодарна. =-)

А вот другое задание с таким вот условием:

Скласти блок-схему алгоритму та програму для обчислення виразу (приклад). Значення змінних a та b ввести з клавіатури.

7.9K
21 марта 2006 года
uki_
122 / / 26.01.2006
Цитата:
Originally posted by Fiona
Скласти блок-схему алгоритму та програму для обчислення виразу (приклад). Значення змінних a та b ввести з клавіатури.

Код:
program Expr2;
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.
16K
21 марта 2006 года
Fiona
9 / / 20.03.2006
Цитата:
Originally posted by uki_
Нужно бы откомпилировать. У меня нет BP на компе. К первой проге дописал в конец repeat.


Хорошо что вспомнил.
Ты практически мой спаситель - благодарю тебя! =-) сейчас начну по второму заданию решать.
Неужели они такие лёгкие что так быстро, да ещё и без программы решаешь? - мне даже стыдно =-/

А вот так выглядит третие задание:

Скласти блок-схему алгоритму та програму для пошуку максимального серед трьох дійсних чисел, введених з клавіатури.
(В интернете нашла что это на тему - використанням алгоритмів розгалуженої структури, но как решать не рпилагалось)

7.9K
21 марта 2006 года
uki_
122 / / 26.01.2006
Цитата:
Originally posted by Fiona
Неужели они такие лёгкие что так быстро, да ещё и без программы решаешь? - мне даже стыдно =-/

Мда...Ты тоже нашла с кем себя сравнивать... :)

Код:
program Expr3;
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.
Код:
program Expr4;
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.
3.6K
22 марта 2006 года
CrazyTimon
125 / / 13.02.2006
Мля.... А по русски задания не сможешь,а то у меня с украинским плохо(я даж не понимаю чё надо сделать):{
7.9K
22 марта 2006 года
uki_
122 / / 26.01.2006
Цитата:
Originally posted by CrazyTimon
Мля.... А по русски задания не сможешь,а то у меня с украинским плохо(я даж не понимаю чё надо сделать):{

Составить блок-схему алгоритма, а написать программу для поиска максимального с трех чисел, введенных с клавиатуры.

якщо == если

Второе задание, то же самое, блок-схема +прога. для формулы ниже. x и y вводятся с клавиатуры.

16K
22 марта 2006 года
Fiona
9 / / 20.03.2006
to uki_
Даже не знаю как тебя отблагодарить... Не удобно уже становится - столько для меня сделал, без тебя наверное ничего и не решила бы.
Осталось только последнее задание - немного напоминает одно из прошлых, только добавились пару новых значений которые вводят меня в заблужение.

Скласти блок-схему алгоритму та програму для обчислення значення виразу (приклад). Результат вивести на екран.

Вот так пример выглядит:
7.9K
22 марта 2006 года
uki_
122 / / 26.01.2006
Код:
program Expr5;
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.

37K
28 февраля 2008 года
Катечка
3 / / 28.02.2008
Пожалуйста, ребята, умоляю, помогите решить задачку!!!!!!!!!!Она очень лёгкая,но я не справлюсь!!! Вот такая задача: Дана последовательность слов,между словами пробел,за последним словом точка.Напечатать текст,состоящий из последних символов всех слов.
PLEASE!!!Выручайте!!!!

Сроки я не указываю! Но чем быстрее вы ее сможете решить, тем лучше! Заранее огромная благодарность!!!!!!

Ребяточки, посмотрите пожалуйста, кто может, еще одну задачку!!!!! PLEASE!!!!!
Есть тип данных "месяц", есть тип данных "день"(диапазон от 1 до 31). Есть переменные m1 и m2 типа месяц, переменные d1 и d2 типа день и переменная t типа boolean. Переменной t присвоить значение true, если дата d1m1 предшествует в рамках года дате d2m2,и false, если наоборот.

я то итак поняв что S:="путь к файлу" и убрать сроку writeln,readln
[COLOR=Red][/COLOR]
33K
28 февраля 2008 года
morf
6 / / 20.10.2007
Катечка первая задача решается так:

Код:
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.


Она работает если слова разделены строгоодним пробелом.
Вывод последних символов осуществляется в строчку без пробелов так как в условии ничё не сказано.
9.4K
28 февраля 2008 года
AIGrifon
165 / / 13.11.2007
Цитата:

Катечка первая задача решается так:

Код:
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]

9.4K
28 февраля 2008 года
AIGrifon
165 / / 13.11.2007
Для второй задачи считается, что в любом месяце 31 день.

[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.
33K
28 февраля 2008 года
morf
6 / / 20.10.2007
Цитата: AIGrifon
Про последнее слово обработать забыл. Нужно немного подредактировать:


Неа ничё я не забыл. Мой код брабатывал все слова, а твой делает тоже самое, тока добавляет в конце вывода пробелм.

257
28 февраля 2008 года
kosfiz
1.6K / / 18.09.2005
коллеги, а если вдруг будет набор слов такого типа: первоеслово второеслово точка. третье слово. ??? да и for что-то вниманием обделили.
33K
28 февраля 2008 года
morf
6 / / 20.10.2007
Цитата: kosfiz
коллеги, а если вдруг будет набор слов такого типа: первоеслово второеслово точка. третье слово. ???



Как-то забыл про такой вариант:(
Но тут либо ничё не меняется либо добавляются такие строки (зависит от того считать ли требующим обработки текст до последней точки либо до первой соответственно) после чтения входного текста:
delete(s,Pos('.',s),length(s));
s:=s+' ';
и убирается
s[length(s)]:=' ';


А for - чёта не придумаю где его тут впихнуть можно. тут хватает while, pos и delete.

257
29 февраля 2008 года
kosfiz
1.6K / / 18.09.2005
мой вариант такой(вроде как корректный):
[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]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог