Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2014, 18:20   #1
Dexter33
 
Регистрация: 05.04.2014
Сообщений: 3
Смущение задачи в PascalABC

Поморите пожалуйста решить задачки в Pascal...
Фото заданий ниже)
Спасибо.
Изображения
Тип файла: jpg 20140405_091859.jpg (118.4 Кб, 134 просмотров)
Dexter33 вне форума Ответить с цитированием
Старый 05.04.2014, 18:53   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Хотелось бы увидеть ваши наработки. И еще, в третьей задаче не совсем ясен смысл задачи. Что означает "вывести ... в первой строке", если введена одна строка.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 05.04.2014, 18:57   #3
Dexter33
 
Регистрация: 05.04.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Хотелось бы увидеть ваши наработки. И еще, в третьей задаче не совсем ясен смысл задачи. Что означает "вывести ... в первой строке", если введена одна строка.
Спасибо что отозвались, но уже сделал вроде, можно попросить проверить?)
1)
Код:
program v9_1;
var
a, b, x, y: real;
begin
a := -0.75;
b := 51;
Write('x = ');
ReadLn(x);
y := 1 + abs(x - b) + (exp(ln(x - a) * 2)/2);
WriteLn('y = ', y);
ReadLn;
end.
2)
Код:
program v9_2;
var
i: integer;
a: array [1..10] of integer;
begin
for i := 1 to 10 do
begin
Write('a[',i,'] = ');
ReadLn(a[i]);
end;
for i := 1 to 10 do
if a[i] mod 3 = 0 then
Write(a[i], ' ');
ReadLn;
end.
3)
Код:
program v9_3;
var
i: integer;
s: string;
n: string;
begin
Write('Str = ');
ReadLn(s);
n := '';
for i := 1 to Length(s) do
if s[i] in ['0'..'9'] then
n := n + s[i];
WriteLn(n);
ReadLn;
end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 06.04.2014 в 09:29.
Dexter33 вне форума Ответить с цитированием
Старый 05.04.2014, 19:10   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Кхммм, какой-то нетипичный студент попался
Пожалуй, поставлю-ка я плюсик
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 06.04.2014, 09:34   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

на мой взгляд все три задачи решены верно (с маленькой оговоркой .

единственно.
я бы в первой задаче настоятельно рекомендовал обойтись без логарифма и exp,
есть функция возведения в квадрат sqr()
Возведение в квадрат будет работать при любых входных числах, в отличие от ln(), которая имеет ограниченную ОДЗ

и ещё, в первой задаче стоит создать подпрограмму-функцию... Это не сделано.

Последний раз редактировалось Serge_Bliznykov; 06.04.2014 в 09:40.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.04.2014, 14:45   #6
Dexter33
 
Регистрация: 05.04.2014
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
на мой взгляд все три задачи решены верно (с маленькой оговоркой .

единственно.
я бы в первой задаче настоятельно рекомендовал обойтись без логарифма и exp,
есть функция возведения в квадрат sqr()
Возведение в квадрат будет работать при любых входных числах, в отличие от ln(), которая имеет ограниченную ОДЗ

и ещё, в первой задаче стоит создать подпрограмму-функцию... Это не сделано.
Так лучше?
1)
Код:
program v9_1;
const A=-0.75;
B=51;
var y,x:real;
begin
writeln('Введите X:');
read(x);
y:=1+abs(x-b)+sqr(x-a)/2;
writeln('Y = ',y);
end.

Последний раз редактировалось Dexter33; 06.04.2014 в 15:13.
Dexter33 вне форума Ответить с цитированием
Старый 07.04.2014, 09:21   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Dexter33 Посмотреть сообщение
Так лучше?
1)
Код:
program v9_1;
const A=-0.75;
B=51;
var y,x:real;
begin
writeln('Введите X:');
read(x);
y:=1+abs(x-b)+sqr(x-a)/2;
writeln('Y = ',y);
end.
Намного!
Вот в таком виде уже можно смело сдавать.

В Pascal/Delphi большие(прописные)/малые(строчные) буквы в именах переменных не различаются. Но я бы Вам (для себя) рекомендовал использовать один регистр (если будете изучать C/C#/Java - эта привычка Вам сильно пригодится):
я о чём - либо:
Код:
const 
  A=-0.75;
  B=51;
...
y:=1+abs(x-B)+sqr(x-A)/2;
либо
Код:
const 
  a=-0.75;
  b=51;
...
y:=1+abs(x-b)+sqr(x-a)/2;
но ещё раз повторю - в данном случае это не ошибка! Просто неаккуратность...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PascalABC stalker161reg Помощь студентам 0 25.12.2013 15:18
PascalABC.NET задачи VladKorolev Помощь студентам 0 17.12.2012 19:39
PascalABC Юся=) Помощь студентам 1 22.12.2011 19:09
PascalABC ludan Помощь студентам 0 22.10.2011 22:50
3D в PascalABC Рудко Дмитрий Паскаль, Turbo Pascal, PascalABC.NET 6 09.02.2010 13:02