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

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

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

> Задачка, одномерные массивы
студентка
сообщение 22.11.2004 14:28
Сообщение #1


Гость






Срочно надо решить задания, а я ничего в массивах не знаю. blink.gif Помогите пожалуйста!!!!
1.)Даны действительные а1,....,a18. Получить а1,a10,a2,a11,...,a9,a18.
2.)Даны целые a1,...,an. Получить новую последовательность, выбросив из
исходной все члены с наибольшим значением (если все члены последовательности равны, то ничего выводить не нужно).
3.)Если в данной последовательности действительных чисел a1,....,an есть
хотя бы один член, меньше чем -2, то все отрецательные члены заменить
их квадратами, оставив остальные без изменений; в противном случае
домножить все члены на 0.1.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 5)
volvo
сообщение 23.11.2004 13:46
Сообщение #2


Гость






студентка
Вот первая задача... Попробуйте решить остальные самостоятельно...

Var
  a: Array[1 .. 18] Of Real;
  i, j, next: Integer; T: Real;

Begin
  For i := 1 To 18 Do
    Begin
      Write('a[', i, '] = ');
      Readln(a[i]);
    End;

  i := 1; next := 10;
  While i <= 18 do
    Begin

      T := a[next];
      For j := Pred(next) DownTo Succ(i) Do
        a[Succ(j)] := a[j];
      a[Succ(i)] := T;

      Inc(i, 2); Inc(next)
    End;

  For i := 1 To 18 Do
    WriteLn('a[', i, '] = ', a[i])
End.

 К началу страницы 
+ Ответить 
студентка
сообщение 24.11.2004 19:08
Сообщение #3


Гость






volvo
СПАСИБО!!!
 К началу страницы 
+ Ответить 
студентка
сообщение 26.11.2004 15:36
Сообщение #4


Гость






rolleyes.gif Вторую задачку я решила, а вот с третьей проблемкасуть задачи я поняла, а вот только никак не могу понять как она решается!!! Помогите!!!! Хотя бы какую нибудь подсказочку дайте!!!!
 К началу страницы 
+ Ответить 
volvo
сообщение 26.11.2004 15:47
Сообщение #5


Гость






студентка
Значит так: самый простой вариант - два прохода по массиву.
Первый проход - проверяем, есть ли элемент меньше, чем -2. Если есть, устанавливаем какую-то переменную типа Boolean в True.

Перед 2-ым проходом проверяем состояние этой переменной, и если она = True, то каждый A[i] для которого выполняется A[i] < 0, заменяем на SQR(A[i]). Если переменная равна False, то просто проходим по массиву и умножаем каждый его элемент на 0.1
 К началу страницы 
+ Ответить 
студентка
сообщение 26.11.2004 16:02
Сообщение #6


Гость






СПАСИБО-О-О!!!!
 К началу страницы 
+ Ответить 

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

 

- Текстовая версия 28.09.2025 10:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"