IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массивы и прочее., помогите, рожалуйста, решить
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


1. Дано натуральное числоN. Требуется написать программу для определения наименьшего из целых чисел, больших числа N и составленных из тех же цифр, что и N.

2. Для заданной числовой последовательности A[1..N] найти максимальную длину строго возрастающей подпоследовательности элементов (не обязательно подряд идущих) последовательности A.

3. Даны два массива чисел. Создать третий массив теми элементами из первого массива, которых нет во втором массиве.

4. Дан угол в градусах между часовой стрелкой и линией, проходящей через центр циферблата и точку, соотв. 12 часам. Требуется определить текущее время с точностью до минуты. Используя полученные числа, определить, сколько времени пройдет прежде чем часовая и минутная стрелки
а) будут перпендикулярны
б) будут взаимно противоположны
в) совпадут

5. Для некоторого целого числа N определить такое число a, не кратное 10, котрое при зачеркивании первой цифры уменьшается в n раз.


Катастрофически не хватает времени, очень надеюсь на вашу помощь... unsure.gif

Добавлено через 19 мин.
2. Пока что сделала так...

const  a:array[1..10] of integer=(1,2,0,6,8,3,6,4,2,0);  
var b:array[1..10] of integer;
i,j,k,max:integer;
begin
for j:=1 to 6 do
begin for i:=1 to 6 do
if a[i+1]>a[i] then inc(k);
b[j]:=k;
end;
max:=1;
for j:=2 to 5 do if b[j]>b[max] then max:=j;
writeln(max-1);
readln;
end.


Вроде выходит, но, думается, есть тут какая-то жопа... unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






willin, практически все задачи уже решались (или обсуждались) на форуме:

1. Принцип решения - здесь: Число
2. и 3. - вообще встречаются довольно часто... Например, 3 массива - для третьей задачи...
4. см. здесь: Задача о времени без алгоритма. Как?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


volvo, видимо, неправильно искала, так как ничего не нашла... Попробую перейти по ссылкам

Добавлено через 11 мин.
эх, добрые люди, не поможете ли написать код, голова совсем пухнет, времени не хватает анализировать задачи...

Добавлено через 4 мин.
для третьей задачи не работает...
Uses Crt ;

Var
A: Array[1..20] of Integer;
B: Array[1..20] of Integer;
C: Array[1..20] of Integer;
n,i,j,k:Integer;
Begin
ClrScr;
Writeln('n=');
Readln (N);
Writeln('a');
For I := 1 to N do
Begin
Write('A[',I,']=');
Readln(A[I]);
End;
Writeln('B');

For I := 1 to N do
Begin
Write('B[',I,']=');
Readln(B[I]);
End;


j:=0;
For i:=1 to n do
Begin
if (a[i]<>b[i]) then
begin
c[j]:=a[i];
inc(j)
end; end;

for i:=1 to n do
write(c[i],' ');
readln;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(wilin @ 1.11.2007 13:11) *

для третьей задачи не работает...

Ты сравниваешь A[i] с B[i], то есть только элементы с одинаковыми номерами. А надо каждый A[i] сравнивать со всеми B[k]. Посмотри исправленный вариант. Заодно, поучись форматированию программы (отступы). И еще на некоторые мелочи обрати внимание, которые я подправил.

Вводить массивы руками было утомительно, поэтому я вставил заполнение случайными числами - извини уж. Надеюсь, ты сможешь вернуть обратно, если нужно..
Var
A,B,C: Array[1..20] of Integer;
n,i,j,k:Integer;
flag:boolean;

Begin
Write('n=');
Readln (N);
Writeln('a');
For I := 1 to N do Begin
A[I]:=Random(N);
Write(A[I]:4)
End;
WriteLn;
Writeln('B');
For I := 1 to N do Begin
B[I]:=Random(N);
Write(B[I]:3)
End;
WriteLn;
j:=0;
For i:=1 to n do Begin
{устанавливаем флажок и..}
flag:=true;
{в цикле сравниваем со всеми элементами B }
{если хотя бы один равен - флаг сбрасывается}
for k:=1 to N do flag:=flag and (a[i]<>b[k]);
{если флаг не упал, то A[i] не встречается в B }
if flag then begin
{строчки в этом цикле я переставил. Почему?}
inc(j);
c[j]:=a[i]
end;
end;
{вывод массива только до j}
for i:=1 to j do write(c[i],' ');
readln;
end.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 17:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name