Вопрос по информатике:
Кто, что сможет. Решите, пожалуйста на Паскале
2а.1. Найти номер первого отрицательного элемента массива.
2а.2. Найти значение и номер последнего четного положительного элемента.
2а.3. Найти номер второго элемента, кратного 5.
2а.4. Сколько положительных чисел между вторым и третьим нулевыми элементами?
2а.5. Напечатать номера первых четырех положительных элементов.
2а.6. Найти номера первого и последнего отрицательных элементов.
2а.7. Сколько четных элементов находится между первым положительным и последним отрицательными элементами.
- 25.12.2017 18:22
- Информатика
- remove_red_eye 7697
- thumb_up 17
Ответы и объяснения 1
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-11,11); a.Println;
// 1
begin
var s:=a.Where(t->t<0);
if s.Count=0 then
Writeln('1. Нет отрицательных элементов')
else
Writeln('1. Первый отрицательный элемент номер ',
a.IndexOf(s.First)+1)
end;
// 2
begin
var s:=a.Select((v,i)->(v,i)).Where(t->(t[0]>0) and t[0].IsEven);
if s.Count=0 then
Writeln('2. Нет четных положительных элементов')
else begin
var r:=s.Last;
Writeln('2. Последний четный положительный элемент номер ',r[1]+1,
', значение ',r[0])
end
end;
// 3
begin
var s:=a.Select((v,i)->(v,i)).Where(t->t[0] mod 5=0);
if s.Count<2 then
Writeln('3. Нет двух элементов, кратных 5')
else
Writeln('3. Номер второго элемента, кратного 5, равен ',
(s.Skip(1).Take(1)).First[1]+1)
end;
// 4
begin
var s:=a.Select((v,i)->(v,i)).Where(t->t[0]=0);
if s.Count<3 then
Writeln('4. Нет трех нулевых элементов')
else begin
s:=s.Skip(1).Take(2);
Writeln('4. Количество положительных элементов между ',
'вторым и третьим нулевыми элементами равно ',
a[s.First[1]+1:s.Last[1]].Where(t->t>0).Count)
end
end;
// 5
begin
var s:=a.IndexesOf(t->t>0).Take(4).Select(t->t+1);
if s.Count<4 then
Writeln('5. Нет четырех положительных элементов')
else begin
Write('5. Номера первых четырех положительных элементов: ');
s.Println
end
end;
// 6
begin
var s:=a.IndexesOf(t->t<0);
if s.Count=0 then
Writeln('6. Нет отрицательных элементов')
else
Writeln('6. Номера первого и последнего отрицательных элементов: ',
s.First+1,' ',s.Last+1)
end;
// 7
begin
var s:=a.IndexesOf(t->t>0);
if s.Count=0 then
Writeln('7. Нет положительных элементов')
else begin
var i1:=s.First;
s:=a.IndexesOf(t->t<0);
if s.Count=0 then
Writeln('7. Нет отрицательных элементов')
else begin
var i2:=s.Last;
Writeln('7. Количество четных элементов между первым ',
'положительным и последним отрицательными элементами: ',
a?[i1+1:i2].Where(t->t.IsEven).Count)
end
end
end
end.
- 26.12.2017 04:34
- thumb_up 19
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.