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

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


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

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

Выпуск № 371
от 15.05.2007, 21:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 254, Экспертов: 70
В номере:Вопросов: 1, Ответов: 4


Вопрос № 86318: Добрый день или вечер помогите решить задачки на Паскале 1.Для заданного натурального числа N рассчитать сумму:1!+2!+3+......N! 2.Найти максимальное число среди трёх чисел а,в,с. 3.Дан массив из N элементов. В нем четные числа заменить 0,...

Вопрос № 86.318
Добрый день или вечер помогите решить задачки на Паскале
1.Для заданного натурального числа N рассчитать сумму:1!+2!+3+......N!
2.Найти максимальное число среди трёх чисел а,в,с.
3.Дан массив из N элементов. В нем четные числа заменить 0, нечетные на 1.
4.Даны катеты прямоугольного треугольника найти гипотенузу.
5.Найти максимальный элемент в двумерном массиве
Заранее Огромное спасибо!!!!
Отправлен: 10.05.2007, 20:10
Вопрос задал: Левченко Евгений Александрович (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Menand
Здравствуйте, Левченко Евгений Александрович!
1:

***
s:=0;
for i1:=1 to n do
begin
p:=1;
for i2:=1 to i1 do
p:=p*i2;
s:=s+p;
p:=1;
end;
***
результат будет в s

3:
(вы не указали, так что думаю массив одномерный - но передалать 1 строчка)
***
for i:=1 to n do
if (mas[i] mod 2)=0 then mas[i]:=0 else mas[i]:=1;
***

5:
***
max=mas[1,1];
for i:=1 to n do
for j:=1 to m do
if (mas[i,j]>max) then max:=mas[i,j];
end;
***
Ответ отправил: Menand (статус: Студент)
Ответ отправлен: 10.05.2007, 20:29
Оценка за ответ: 4

Отвечает: Verena
Здравствуйте, Левченко Евгений Александрович!

Очень лёгкие задачки, такие можно, вообще-то, в любой книжке найти как примеры. Решение в приложении.

Приложение:

---------
Эта история - не для истории, понимаешь?

Ответ отправила: Verena (статус: 10-ый класс)
Ответ отправлен: 10.05.2007, 20:32
Оценка за ответ: 5

Отвечает: XMF
Здравствуйте, Левченко Евгений Александрович!
--
1)

function fact(var i:integer): integer;
var
s:integer;
begin
if(i=0) then begin fact:=1; end else i*fact(i-1);
end;

В этом случае компилятор выдает ошибку 91 (":=" expected). Если производите какие-то арифметические операции (умножения, деления и пр.), то нужно занести результат в какую-либо переменную.

--
прога:
....
var
i,n,s: integer;
begin
readln(n);
for i:=n downto 1 do s := s + fact(i);
writeln(s);
----


2)
min:integer;
if( (a < b) and (a < c) ) min:=a;
if( (b < a) and (b < c) ) min:=b;
if( (c < b) and (c < a) ) min:=c;

{ способ туповат, но ... =) }
--------------------
Задача состоит в нахождении максимума, а не минимума.

3)

{ a[n] - масив }
for i:=1 to N do
begin
if ( (a[i] mod 2) = 0) a[i]=0; else a[i]=1;
end;
------------------
В Pascal "=" - выполняет операцию сравнения, а не присваивания. Вместо нее следует использовать ":=". Перед "else" точка с запятой не ставятся!

4)
cat1, cat2, res: integer;

readln(cat1, cat2);
writeln( sqrt(cat1*cat1* + cat2*cat2));
// проверку cat1, cat2 на отрицательные значения сделаешь уже сам.
После второго cat1 символ * лишний.

5)
i,j,max: integer;
{a [n][m] = масив }

max = a[1][1];
for i:=1 to n do
for j:=1 to m do
if(max < a[i][j] ) max = a[i][j];
--
НО! я писал последний раз на паскале 4 года назад (сейчас на си) )) если будут ошибки - поправь, но вроде должно работать... Единственное что я не помню, так это с какого индекса начинаются масивы с 0 или 1...

но в целом будет работать ;)

[Для экзаменаторов: Прошу учесть, что все примеры, за исключением 2-го нерабочие. 2-й пример приведен неверно (для другого случая).] [Denisss]
Ответ отправил: XMF (статус: 7-ой класс)
Ответ отправлен: 10.05.2007, 20:35
Оценка за ответ: 5

Отвечает: Louken
Здравствуйте, Левченко Евгений Александрович!

Не очень понятно 1-ое задание. Может найти: 1+2+3+......N = N!? Навсякий случай привожу оба решения

[Для экзаменаторов: Примеры 1 и 3 решены неправильно. Пример 2 - копия примера 2 из ответа эксперта Verena.] [Denisss]

Приложение:

Ответ отправил: Louken (статус: 1-ый класс)
Ответ отправлен: 10.05.2007, 20:55
Оценка за ответ: 5


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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

В избранное