Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 419
от 07.07.2007, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 247, Экспертов: 54
В номере:Вопросов: 19, Ответов: 33


Вопрос № 93519: Здравствуйте. Помогите, пожалуйста, написать программу, которая при введении слова с дефисом меняла бы местами части слова до и после дефиса. Спасибо:)....
Вопрос № 93528: Здравствуйте. Помогите составить программу вычисления суммы: S=1+1*2+1*2*4+...+1*2*...*n Заранее спасибо.:))...
Вопрос № 93529: Здравствуйте. Помогите составить программу, которая спрашивает время суток и выводит на экран соответствуещее приветствие (доброе утро, добрый день, ночы, вечера). Заранее спасибо.:))...
Вопрос № 93530: Здравствуйте. Помогите составить программу упорядочивания значений трёх переменных таким образом, чтобы a)a<b<c b) a<b>c Заранее спасибо.:))...
Вопрос № 93531: Здравствуйте. Помогите составить программу нахождения четвёртой точки паралелограмма по координатам известных 3 точек.Заранее спасибо.:))...
Вопрос № 93532: Здравствуйте. Помогите составить для действительных значений a и b составить программу полного анализа и решения линейного уравнения ax=b и кубического уравнения ax^3+bx=0. Заранее спасибо.:))...
Вопрос № 93533: Здравствуйте. Помогите составить программу определения средней цифры числа n, которое состоит из непарного количества цифр. Заранее спасибо.:))...
Вопрос № 93534: Здравствуйте. Помогите составить программу сокращения одномерного массива путем удаления каждого второго элемента. Заранее спасибо.:))...
Вопрос № 93535: Здравствуйте. Помогите составить программу по иска двух целых трёхзначных чисел, кратное которых наближает число Пи с наибольшей точностью. Заранее спасибо.:))...
Вопрос № 93536: Здравствуйте. Помогите составить программу вывода на экран списка символов, из которых состоит введённый пользователем текст. Заранее спасибо.:))...
Вопрос № 93537: Здравствуйте. Помогите составить программу которая бы упорядочивала введённые слова по алфавиту. Заранее спасибо.:))...
Вопрос № 93538: Здравствуйте. Помогите составить программу вычисления 100!(факториал). Заранее спасибо.:))...
Вопрос № 93539: Здравствуйте. Помогите составить программу, которая в заданном двумерном массиве меняла местами третий и первый рядки. Заранее спасибо.:))...
Вопрос № 93540: Здравствуйте. Помогите составить программу, которая бы определяла, будет ли выпуклым n-угольник, заданный на плоскости координатами его последовательных вершин . Заранее спасибо.:))...
Вопрос № 93556: Дана действительная квадратная матрица порядка n. Вычислить сумму тех ее элементов, расположенных на главной диагонали и выше нее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше не...
Вопрос № 93573: Здравствуйте. Помогите составить программу поиска двух целых трёхзначных чисел, частное которых наближает число Пи с наибольшей точностью. Заранее спасибо....
Вопрос № 93590: 1.В файле f записан массив действительных чисел. Найти наименьшее из этих чисел 2.Четыре точки заданы своими координатами X(x1, x2, x3), Y(y1, y2, y3), Z(z1, z2, z3), T(t1, t2, t3).Выяснить, какие из них находятся на минимальном расстоянии д...
Вопрос № 93599: Дан двумерный массив вещественных чисел из 4 столбцов и 3 строк. Найти сумму максимальных элементов каждой строки. Вывести массив по строкам. После каждого движения поршня разряжающего насоса их сосуда удаляется 20% находящегося газа. Скольк...
Вопрос № 93625: Создать программу, имитирующую работу с базой данных по предложенной предметной области на основе типизированного файла. Функциями программы (выбираются из стартового меню) являются: 1. Создание нового файла базы данных 2. Открытие существующ...

Вопрос № 93.519
Здравствуйте. Помогите, пожалуйста, написать программу, которая при введении слова с дефисом меняла бы местами части слова до и после дефиса. Спасибо:).
Отправлен: 01.07.2007, 14:42
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Градов Юрий Михайлович
Здравствуйте, Нижник Ксения Петровна!
Посмотрите решение задачи в приложении:

Приложение:

---------
Глаза боятся - руки делают!

Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 01.07.2007, 15:30
Оценка за ответ: 5
Комментарий оценки:
Заданная программа работает отлично. Спасибо!


Вопрос № 93.528
Здравствуйте. Помогите составить программу вычисления суммы: S=1+1*2+1*2*4+...+1*2*...*n Заранее спасибо.:))
Отправлен: 01.07.2007, 15:11
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Vassea
Здравствуйте, Нижник Ксения Петровна!
Если имеется в виду
1+1*2+1*2*3+1*2*3 +...+1*2*4*6*...*n то
var i,n:integer;
sum:longint;
PR:longint
begin
readln(N);
sum:=0; PR:=1;
for i:=1 to n do
begin
sum:=sum+PR*i;
PR:=PR*i
end;
writeln(Sum);
end.
Если необходима другая последовательность то необходимо правильно записать условие
Ответ отправил: Vassea (статус: 4-ый класс)
Ответ отправлен: 01.07.2007, 19:43
Оценка за ответ: 4
Комментарий оценки:
Нужна указанная последовательность 1+1*2+1*2*4+1*2*4*6+1*2*4*6*8+1*2*...*n - в каждом новом слагательном добавляется множитель на 2 больший предыдущего, парный. От программы требуется вычислить значение суммы после введения пользователем числа n(обязательно парного)- последнего множителя в окно ввода.

Отвечает: Gh0stik
Здравствуйте, Нижник Ксения Петровна!

Вот решение Вашей задачи:
var i,n:integer;
sum,v:longint;
begin
write('n=');read(n);
v:=1;
sum:=1;
i:=2;
while i <= n do
begin
v:=v*i;
inc(sum,v);
inc(i,2);
end;
writeln('sum=',sum);
end.


Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 03.07.2007, 23:51


Вопрос № 93.529
Здравствуйте. Помогите составить программу, которая спрашивает время суток и выводит на экран соответствуещее приветствие (доброе утро, добрый день, ночы, вечера). Заранее спасибо.:))
Отправлен: 01.07.2007, 15:14
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Louken
Здравствуйте, Нижник Ксения Петровна!

Решение в приложении:

Приложение:

Ответ отправил: Louken (статус: 9-ый класс)
Ответ отправлен: 02.07.2007, 00:59
Оценка за ответ: 4
Комментарий оценки:
Программа хорошая, но если я ввожу, например, 11:25 - одиннадцать часов двадцать пять минут - то она не работает :(

Отвечает: Gh0stik
Здравствуйте, Нижник Ксения Петровна!

Если Вы сказали что Вы вводите время в формате hh:mm, то попробуйте еще такое решение:
var s:string;
h,code:integer;
begin
write('What time is it? ');read(s);
val(copy(s,1,pos(':',s)-1),h,code);
if code <> 0
then writeln('Error of time...')
else
case h of
0..4: writeln('good night');
5..10: writeln('good moning');
11..17: writeln('good day');
18..23: writeln('good evening');
end;
readln;
end.


Если Вы разбиваете сутки на другие интервалы, то Вам будет достаточно просто их изменить в операторе case.

Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 04.07.2007, 00:16


Вопрос № 93.530
Здравствуйте. Помогите составить программу упорядочивания значений трёх переменных таким образом, чтобы a)a<b<c
b) a<b>c
Заранее спасибо.:))
Отправлен: 01.07.2007, 15:16
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Louken
Здравствуйте, Нижник Ксения Петровна!

Код в приложении.
Процедура MinMax сортирует две переменные, в порядке возрастания.

Приложение:

Ответ отправил: Louken (статус: 9-ый класс)
Ответ отправлен: 02.07.2007, 19:47


Вопрос № 93.531
Здравствуйте. Помогите составить программу нахождения четвёртой точки паралелограмма по координатам известных 3 точек.Заранее спасибо.:))
Отправлен: 01.07.2007, 15:18
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Louken
Здравствуйте, Нижник Ксения Петровна!

Решение действительно, только для случаев, когда вводятся три последовательные (!) координаты (A,B,C; B,C,D и т.д.).
Допустим Вы ввели координаты A, B и C.
Есть такие формулы, для нахождения середины отрезка:
x=(x1+x2)/2
y=(y1+y2)/2
Благодаря им можно найти середину отрезка AC - это будет точка пересечения диагоналей:
подставляем вместо x1 и y1 координаты точки A, вместо x2 и y2 координаты точки C.
sx=(x1+x3)/2;
sy=(y1+y3)/2;
Теперь рассмотрим отрезок BD, где D - искомая точка:
в нем известны точка B и середина отрезка, подставляем в наши формулы, вместо x1 и y1 координаты точки B, вместо x и y координаты середины отрезка, получим:
x4=2*sx-x2;
y4=2*sy-y2;
Подставив вместо sx и sy ранее найденные уравнения, получим:
x4=x1+x3-x2;
y4=y1+y3-y2;
Удачи.

Приложение:

Ответ отправил: Louken (статус: 9-ый класс)
Ответ отправлен: 02.07.2007, 00:48

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Нижник Ксения Петровна!

Всего таких точек может быть три.
В приложении программа которая их вычисляет.
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 02.07.2007, 13:51


Вопрос № 93.532
Здравствуйте. Помогите составить для действительных значений a и b составить программу полного анализа и решения линейного уравнения ax=b и кубического уравнения ax^3+bx=0. Заранее спасибо.:))
Отправлен: 01.07.2007, 15:20
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Vassea
Здравствуйте, Нижник Ксения Петровна!
var a,b:real;
x:real;
begin
readln(a,b);
if (a=0) and (b=0) then begin writeln('любой x');readln; exit; end;
if a=0 then begin writeln('нет таких x');readln; exit; end;
writewln('x=',b/a);
readln;

end.
var a,b:real;
x:real;
begin
if (a=0) and (b=0) then begin writeln('любой x');readln; exit; end;
if (a=0) or (b=0) then begin writeln('единственное решение x=0');readln; exit; end;

if (-b/a <0) then begin
writeln('единственное решение x=0, остальные комплексные');readln; exit; end;
if -b/a >0 then begin
writeln('x1=0');
writeln('x2=',sqrt(-b/a));
writeln('x3=',-sqrt(-b/a));
end;
end.

Ответ отправил: Vassea (статус: 4-ый класс)
Ответ отправлен: 01.07.2007, 19:53


Вопрос № 93.533
Здравствуйте. Помогите составить программу определения средней цифры числа n, которое состоит из непарного количества цифр. Заранее спасибо.:))
Отправлен: 01.07.2007, 15:22
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Vassea
Здравствуйте, Нижник Ксения Петровна!
var n:integer;
st:string;
begin
readln(n);
str(n,st);
writeln(st[(n div 2)+1]);
readln;
end.
Ответ отправил: Vassea (статус: 4-ый класс)
Ответ отправлен: 01.07.2007, 19:55
Оценка за ответ: 1
Комментарий оценки:
Извините, но программа ВООБЩЕ не работает.

Отвечает: Louken
Здравствуйте, Нижник Ксения Петровна!

Мое решение, в котором не используются строки:

Приложение:

Ответ отправил: Louken (статус: 9-ый класс)
Ответ отправлен: 02.07.2007, 00:12
Оценка за ответ: 4
Комментарий оценки:
Неплохая программа, но если в числе более 10 цифр, то программа не выполняется:(


Вопрос № 93.534
Здравствуйте. Помогите составить программу сокращения одномерного массива путем удаления каждого второго элемента. Заранее спасибо.:))
Отправлен: 01.07.2007, 15:24
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Градов Юрий Михайлович
Здравствуйте, Нижник Ксения Петровна!
Привожу в приложении решение Вашего вопроса:

Приложение:

---------
Глаза боятся - руки делают!

Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 01.07.2007, 21:10
Оценка за ответ: 4
Комментарий оценки:
Юрий Михайлович, программа выдает сообщение при запуске:
Ошибка:6 - выход за границы диапазона изменения индекса 1..5 (строка 20)

Отвечает: Louken
Здравствуйте, Нижник Ксения Петровна!

В отличии от предыдущего варианта решения, в моем не используется дополнительных массивов

Приложение:

Ответ отправил: Louken (статус: 9-ый класс)
Ответ отправлен: 02.07.2007, 00:00
Оценка за ответ: 5


Вопрос № 93.535
Здравствуйте. Помогите составить программу поиска двух целых трёхзначных чисел, кратное которых наближает число Пи с наибольшей точностью. Заранее спасибо.:))
Отправлен: 01.07.2007, 15:25
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Градов Юрий Михайлович
Здравствуйте, Нижник Ксения Петровна!
Посмотрите решение в приложении, может понравится?

Приложение:

---------
Глаза боятся - руки делают!

Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 01.07.2007, 20:29


Вопрос № 93.536
Здравствуйте. Помогите составить программу вывода на экран списка символов, из которых состоит введённый пользователем текст. Заранее спасибо.:))
Отправлен: 01.07.2007, 15:26
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Vassea
Здравствуйте, Нижник Ксения Петровна!
var st:string;
ss:set of char;
i:integer;
c:char;
begin

readln(st); ss:=[];
for i:=1 to length(st) do
if not (st[i] in ss) then begin
writeln(st[i]);
ss:=ss+[st[i]];
end; {ввод символов в порядке их появления по одному разу}
{ если необходимо вывести в алфавитном порядке то}
for c:=chr(0) to chr(255) do
if c in ss then writeln(C);
readln;
end.

Исправлена ошибка 'Types mismatch'. [Denisss]
Ответ отправил: Vassea (статус: 4-ый класс)
Ответ отправлен: 01.07.2007, 20:03
Оценка за ответ: 2
Комментарий оценки:
В программе выдаётся ошибка: операнды имеют неприводимые типы:(

Отвечает: Louken
Здравствуйте, Нижник Ксения Петровна!

Код программы в приложении:

Приложение:

Ответ отправил: Louken (статус: 9-ый класс)
Ответ отправлен: 02.07.2007, 19:18


Вопрос № 93.537
Здравствуйте. Помогите составить программу которая бы упорядочивала введённые слова по алфавиту. Заранее спасибо.:))
Отправлен: 01.07.2007, 15:27
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Градов Юрий Михайлович
Здравствуйте, Нижник Ксения Петровна!
В приложении решение Вашей задачи

Приложение:

---------
Глаза боятся - руки делают!

Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 01.07.2007, 19:50
Оценка за ответ: 4
Комментарий оценки:
Все слова упорядочились правильно, но только слово ананас почему-то стояло в самом конце. А если я хочу ввести 5 слов и 13 - мне что, каждый раз вносить изменения в прогу?


Вопрос № 93.538
Здравствуйте. Помогите составить программу вычисления 100!(факториал). Заранее спасибо.:))
Отправлен: 01.07.2007, 15:28
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Coupler
Здравствуйте, Нижник Ксения Петровна!
Так как 100! очень большое число, то его нужно хранить в одномерном динамическом массиве. Решение задачи в приложении.

Приложение:

Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 01.07.2007, 16:31

Отвечает: _killhunter_
Здравствуйте, Нижник Ксения Петровна!
Для вычисления факториала лучше использовать рекурсивную функцию, котора использует тождество С(n,k) = C(n-1,k-1)+C(n-1,k)
В приложении пример такой ф-ии

Приложение:

Ответ отправил: _killhunter_ (статус: 1-ый класс)
Ответ отправлен: 02.07.2007, 12:37
Оценка за ответ: 4
Комментарий оценки:
З пример функции спасибо, но мне нужна вся программа.


Вопрос № 93.539
Здравствуйте. Помогите составить программу, которая в заданном двумерном массиве меняла местами третий и первый рядки. Заранее спасибо.:))
Отправлен: 01.07.2007, 15:30
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Vassea
Здравствуйте, Нижник Ксения Петровна!
type
arr=array [1..10] of integer; {ряд}
a=array [1..10] of arr;
var M:a;
x,y:integer;
i,j:integer;
c:a;
begin
readln(x,y); {x- кол-во рядов, y-кол-во столбцов}

for i:=1 to x do
for j:=1 to y do
readln(M[i,j]); {ввод массива}

c:=M[3];
M[3]:=M[1];
M[1]:=c; {замена рядов}
readln;
end.
Ответ отправил: Vassea (статус: 4-ый класс)
Ответ отправлен: 01.07.2007, 18:41

Отвечает: Градов Юрий Михайлович
Здравствуйте, Нижник Ксения Петровна!
Попробуйте метод, приведенный в приложении:

Приложение:

---------
Глаза боятся - руки делают!

Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 01.07.2007, 19:39
Оценка за ответ: 5
Комментарий оценки:
Спасибо, прога хорошая, работает

Отвечает: _killhunter_
Здравствуйте, Нижник Ксения Петровна!
Если необходимо поменять местами значения то это делается следующей процедурой

Приложение:

Ответ отправил: _killhunter_ (статус: 1-ый класс)
Ответ отправлен: 02.07.2007, 13:01
Оценка за ответ: 2
Комментарий оценки:
А что это в приложении - программа?


Вопрос № 93.540
Здравствуйте. Помогите составить программу, которая бы определяла, будет ли выпуклым n-угольник, заданный на плоскости координатами его последовательных вершин . Заранее спасибо.:))
Отправлен: 01.07.2007, 15:32
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: _killhunter_
Здравствуйте, Нижник Ксения Петровна!
Для ответа на этот вопрос достаточно сравнить знаки векторных произведений векторов [(A1,A2),(A1,A3)], [(A1,A3),(A1,A4)],...,[(A1,An-1),(A1,An)]. Если знаки всех произведений совпадут, тогда многоугольник выпуклый.
В приложении напишу код Функции выщитывающей векторное произведение векторов (А1,А2) и (А1,А3) (точка Аn задается двумя координатами X,Y)

Приложение:

Ответ отправил: _killhunter_ (статус: 1-ый класс)
Ответ отправлен: 02.07.2007, 12:22


Вопрос № 93.556
Дана действительная квадратная матрица порядка n. Вычислить сумму тех ее элементов, расположенных на главной диагонали и выше нее, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше нее нет элементов с указанным свойством, то ответом должно служить сообщение об этом.
Предложение содержит буквы латинского и русского алфавитов. Написать программу, которая выводит буквы только латинского алфавита в порядке их следования в предложении.

Приложение:

Отправлен: 01.07.2007, 18:57
Вопрос задал: ZET (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Vassea
Здравствуйте, ZET!
var max:integer;
M:array [1..10,1..10] of integer;
sum:integer;
i,j:integer;
n:integer;
begin
readln(n);
for i:=1 to n do
for j:=1 to n do readln(M[i,j]);

for i:=2 to n do
for j:=1 to i-1 do
if (i=2) or (M[i,j]>max) then max:=M[i,j]; {поиск максимального элемента ниже диагонали}
sum:=0;
for i:=1 to n do
for j:=i to n do if M[i,j]>max then Sum:=Sum+M[i,j];
writeln(Sum);
readln;
end.

var st:string;
ss:set of char;
i:integer;
begin
readln(st);
ss:=['a'..'z','A'..'Z'];
for i:=1 to length(st) do
if st[i] in ss then write(st[i]);
end.




Ответ отправил: Vassea (статус: 4-ый класс)
Ответ отправлен: 01.07.2007, 19:36
Оценка за ответ: 3
Комментарий оценки:
все задачи полностью нерешены!

Отвечает: Louken
Здравствуйте, ZET!

В приложении решение Ваших задач:

Приложение:

Ответ отправил: Louken (статус: 9-ый класс)
Ответ отправлен: 01.07.2007, 23:35
Оценка за ответ: 5


Вопрос № 93.573
Здравствуйте. Помогите составить программу поиска двух целых трёхзначных чисел, частное которых наближает число Пи с наибольшей точностью. Заранее спасибо.
Отправлен: 01.07.2007, 21:19
Вопрос задала: Нижник Ксения Петровна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Градов Юрий Михайлович
Здравствуйте, Нижник Ксения Петровна!
Надеюсь, что форма не проглотит знаки. У себя я проверяю решение - все Ок!

Приложение:

---------
Глаза боятся - руки делают!

Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 01.07.2007, 22:14
Оценка за ответ: 3
Комментарий оценки:
К сожалению, программа выдаёт числа, частное которых = 1.7. Пи = 3.14. Возможно, неясно поставлена задача - нужно чтобы при делении первого чтсла на второе получалось 3.14, 3.13, 3.15 или что-то около того.

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Нижник Ксения Петровна!
Большее число начинается от 300 потому, что минимальное меньшее = 100. И даже при нем приближение в 3 = 300 / 100, очевидно, не лучшее (314/100 гораздо точнее)
Соответственно, наибольшее значение меньшего числа равно 350 потому, что 999, будучи деленным даже на 350, уже дает меньше 3-х. Соответственно для любых j больше 350, приближение будет еще хуже. Код в приложении.
Я когда-то делал эту задачу, числа в ответе должны получиться около 355 и 117.

Воообще, можно написать гораздо более быстро работающий код, но в условии ничего про скорость не сказано, да и этот код на всех современных копмьютерах выполняется достаточно быстро.
Не люблю транслит, поэтому написал на англ. Фраза буквально переводится как "наилучшее приближение ПИ отношением 3-хзначных чисел является".

UPD Исправлено double на extended

Приложение:

---------
Не узнаешь - не попробуешь.

Ответ отправил: Сухомлин Кирилл Владимирович (статус: Специалист)
Ответ отправлен: 02.07.2007, 14:14


Вопрос № 93.590
1.В файле f записан массив действительных чисел. Найти наименьшее из этих чисел

2.Четыре точки заданы своими координатами X(x1, x2, x3), Y(y1, y2, y3), Z(z1, z2, z3), T(t1, t2, t3).Выяснить, какие из них находятся на минимальном расстоянии друг от друга и вывести на печать значение этого расстояния. Вычисление расстояния между двумя точками оформить в виде процедуры.

3.После каждого движения поршня разряжающего насоса их сосуда удаляется 20% находящегося газа. Сколько движений поршня нужно сделать, чтобы достичь давления P при начальном давлении Pn.

Приложение:

Отправлен: 02.07.2007, 05:43
Вопрос задал: ZET (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Coupler
Здравствуйте, ZET!
Насчет второй задачи: Вы уже задавали вопрос 90051, поэтому я здесь немного его разберу. По первой задаче - отрицательные и неверные значения получаются из-за переполнения. Возьмите другой тип данных, или используйте длинную арифметику - но это уже будет совсем другая задача, гораздо более сложная, если писать ее сначала. Вторая задача - нет там "error in statement" и быть не может. Этот код свободно компилируется как BP 7.0, так и delphi. Выкладываю в приложение тот же код, только откоментированный. Если преподаватель информатики спросит Вас то, чего нет в комментариях - пользуйтесь внутренней почтой - я Вам отвечу, не надо задавать вопрос несколько раз.

Приложение:

Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 02.07.2007, 08:58

Отвечает: Vassea
Здравствуйте, ZET!
1) Скорее всего файл текстовый и числа записаны через пробел в одну строку. тогда
var min:real;
M:array [1..200] of real
i,n:integer;
f:text;
begin
assign(f,'text.txt');
reset(F);
n:=0;
while not eof(f) do
begin
n:=n+1; { в n после завершения цикла будет храниться количество чисел}
read(f,M[n]);
end;
close(f);

min:=M[1]; {Сначала считаем что минимальный элемент -- первый}
for i:=2 to n do
if M[i]< min then min:=M[i]; {сравниваем все оставшиеся элементы с min}
writeln(Min);

readln;
end.

Делать это в виде процедуры можно но не удобно
var M:array [1..4] of record
x,y,z:real; {здесь будут храниться координаты точек}
end;
RR:real;{расстояние}
min, {здесь будет храниться ответ}
tek {здесь будет храниться расстояние между текущими точками}
:real;

i,j:integer;
procedure АА(x,y,z:real; {координаты I точки} x1,y1,z1:real; {координаты II точки} var Res:real); {var перед Res необходим так как через эту переменную будет возвращаться результат}
begin
Res:=sqrt( sqr(x1-x) + sqr(y1-y) + sqr(z1-z) );
{известная формула для нахождения расстояния}
end;
begin
for i:=1 to 4 do
begin
writeln('Введите координаты точки ', i);
readln(M[i].x,M[i].y,M[i].z); {Вводим координаты для i-той точки}
end;

min:=-1; { приравниваем к -1 так как такого расстояния быть не может
и если расстояние равняется -1 значит не будет сравнивать текущее расстояние с мин а сразу будем присваивать }

for i:=1 to 3 do
for j:=i+1 to 4 do {цикл для создания всех комбинации
i=1 j=2,3,4
i=2 j=3,4
i=3 j=4 }
begin
if min=-1 then AA(M[i].x,M[i].y,M[i].z,M[j].x,M[j].y,M[j].z, Min ) else
begin
AA(M[i].x,M[i].y,M[i].z,M[j].x,M[j].y,M[j].z, tek );
if tek<min then min:=tek; {если текущее значение меньше мин то мин:=tek}
end;


end;

writeln(min);
readln;
end.
var P, PN:real;
n:integer;
begin
readln(P,PN);
n:=0;
while P>Pn do
begin
P:=P*0.8;
n:=n+1;
end;

writeln(n);
readln;
end.
Ответ отправил: Vassea (статус: 4-ый класс)
Ответ отправлен: 02.07.2007, 09:17


Вопрос № 93.599
Дан двумерный массив вещественных чисел из 4 столбцов и 3 строк. Найти сумму максимальных элементов каждой строки. Вывести массив по строкам.

После каждого движения поршня разряжающего насоса их сосуда удаляется 20% находящегося газа. Сколько движений поршня нужно сделать, чтобы достичь давления P при начальном давлении Pn.

Приложение:

Отправлен: 02.07.2007, 07:48
Вопрос задал: ZET (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Omickron
Здравствуйте, ZET!

Дан двумерный массив вещественных чисел из 4 столбцов и 3 строк. Найти сумму максимальных элементов каждой строки. Вывести массив по строкам.
Я точно не помню уже как выводятся числа в консольке... За это извиняйте...
А в остальном - пожалуйте.

Приложение:

Ответ отправил: Omickron (статус: 3-ий класс)
Ответ отправлен: 02.07.2007, 08:05

Отвечает: Andreev Oleg
Здравствуйте, ZET!
После каждого движения поршня разряжающего насоса их сосуда удаляется 20% находящегося газа. Сколько движений поршня нужно сделать, чтобы достичь давления P при начальном давлении Pn.
program two;
var Pn,p:real;i:integer;
begin
writeln('Vvedite Pn');readln(pn);
writeln('Vvedite P');readln(p);
i:=0;(*счетчик движений*)
while (Pn>P) do
begin
Pn:=Pn*0.8;(*уменьшаем давление*)
i:=i+1;(*увеличиваем число движений*)
end;
if i=0 then writeln('Oshibka, Pn >= P')
else writeln('Chslo dvizheniy ',i)
end.
Ответ отправил: Andreev Oleg (статус: 4-ый класс)
Ответ отправлен: 02.07.2007, 09:10
Оценка за ответ: 5

Отвечает: Vassea
Здравствуйте, ZET!
var ARR:array[1..3,1..4] of real;
sum:real; max:real; i,j:integer;

begin
for i:=1 to 3 do
for j:=1 to 4 do readln(Arr[i,j]); { ввод массива}

sum:=0; {начальное значение суммы}
for i:=1 to 3 do {для каждой строки}
begin

for j:=1 to 4 do {поиск ее максимального значения}
begin
if j=1 then max:=Arr[i,j] {если первый элемент то max } else
begin
if ARR[i,j]>max then max:=ARR[i,j];
end;
end;
sum:=sum+max;
end;
writeln(Sum);
readln;
for i:=1 to 3 do
begin
for j:=1 to 4 do write(Arr[i,j],' ');

writeln;
end;
readln;
end.

var P, PN:real;
n:integer;
begin
readln(PN,P); {в первом варианте перепутал начальное и конечное давление}
n:=0;
while PN>P do
begin
PN:=PN*0.8;
n:=n+1;
end;

writeln(n);
readln;
end.
Ответ отправил: Vassea (статус: 4-ый класс)
Ответ отправлен: 02.07.2007, 09:26


Вопрос № 93.625
Создать программу, имитирующую работу с базой данных по предложенной предметной области на основе типизированного файла. Функциями программы (выбираются из стартового меню) являются:
1. Создание нового файла базы данных
2. Открытие существующего файла базы данных
3. Добавление данных в файл базы данных
4. Просмотр всех данных, хранящихся в файле базы данных, в виде списка
5. Просмотр данных, удовлетворяющих определенным условиям отбора, отсортированных по указанному критерию
вот и программа Склад. Составить программу формирования данных о товарах на складе: номер по порядку, наименование товара, цена, количество единиц товара. Организовать выбор товаров по диапазону цен и упорядочить его по наименованиям.

Приложение:

Отправлен: 02.07.2007, 11:09
Вопрос задал: ZET (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Coupler
Здравствуйте, ZET!
Решение задачи в приложении. Я не делал никаких проверок на существование файла, оставив это Вам, если это требуется. Если будут вопросы - пишите во вн. почту.

Приложение:

Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 02.07.2007, 18:04


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное