Как найти номер последнего отрицательного элемента массива

Цитата
Сообщение от EzCoding
Посмотреть сообщение

Ну если убрать N- будет норм.

да и при N будет нормально, ошибки не будет, просто на экран выведется мусор, переменная то не инициализирована

Цитата
Сообщение от EzCoding
Посмотреть сообщение

Не понимаю зачем вы делаете проверку i>-1 если можно проверять i>=0;

этот код выполнит одно и тоже но при записи i>=0 возможен вариант что будут две проверки на больше и на равно
неизвестно как компилятор откомпилирует, оптимизирует или нет, на каком камне это будет исполнятся
а так я просто показал еще один путь решения
не люблю мыслить шаблонно

Цитата
Сообщение от EzCoding
Посмотреть сообщение

А если выводить вне цикла — лучше иметь счетчик отдельно и отдельно переменную вывода, счетчик может понадобится еще для каких то подзадач.

так если он не нужен снаружи объявляй его в цикле
да и счетчик это не приговор
можешь в одном цикле объявить i а в другом ii
почитай Криса Касперски «Техника отладки программ без исходных кодов» «Основы хакерства» и другие книги
и поймешь что получается в исполняемом коде, хороший оптимизатор может так перелопатить твою программу, что её никто не узнает

Цитата
Сообщение от Andrey027
Посмотреть сообщение

Помогите найти ошибку.

одну

Цитата
Сообщение от Andrey027
Посмотреть сообщение

Microsoft visual C++ 6.0

Цитата
Сообщение от Andrey027
Посмотреть сообщение

double a[5],

Цитата
Сообщение от Andrey027
Посмотреть сообщение

cout<<«Vvedite razmer massiva»;

зачем? он итак известен 5
а что будет, если я введу100

Цитата
Сообщение от Andrey027
Посмотреть сообщение

cout<<«nVvedite massiv:n»;
cin>>a[n];

выход за пределы массива

и где ввод всех элементов массива?

Цитата
Сообщение от Andrey027
Посмотреть сообщение

for(i=0;i<n;i++)
{
cout<<«nMassiva:n»<<a[i];
p*=a[i];
k++;
}

и где проверка на отрицательный элемент?
k будет равно n

Урок 23. Поиск элемента в массиве

Просмотров 3.1к. Обновлено 23 ноября 2020

Урок из серии: «Язык программирования Паскаль»

На этом уроке рассмотрим алгоритмы поиска элемента в одномерном массиве. Эти алгоритмы очень похожи на обработку последовательностей (поиск, выборка и т.д.).

Отличие заключается в том, что в массиве одновременно доступны все его компоненты. Такой доступ называется параллельным.

Рассмотрим несколько примеров.

Пример 1. Найти номера четных элементов.

Решение.

Для нахождения четных элементов необходимо просмотреть весь массив, и если будут попадаться четные элементы, то нужно выводить их на экран. Напишем процедуру, которая принимает в качестве входного параметра массив и выводит на экран нужные элементы.

Procedure Solve(m : myarray);
Var i: Integer;
Begin
   For i:=1 To n Do 
      If m[i] Mod 2 = 0 Then Write(i:5);{если элемент четный, то вывести на экран}
End;

Пример 2. Есть ли отрицательный элемент в массиве?

Решение.

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

Начинаем с первого элемента (i = 1).

Пока не просмотрен последний (i<=n) и не найден отрицательный (m [i]>=0), будем переходить к следующему (inc (i)).

Таким образом, мы закончим просмотр в одном из двух случаев:

  • первый — просмотрели все элементы и не нашли отрицательный, тогда i>n;
  • второй — нашли нужный, при этом i<=n.

Напишем функцию, значение которой истина (True), если такой элемент есть, и ложь (False), если его нет.

Function Controll (m: myarray): Boolean;
Var i : Integer;
Begin
   i := 1;
   While (i<=n) And (m[i]>0) Do Inc(i);
   Control1:=(i<=n)
End;

Пример 3. Найти номер последнего отрицательного элемента массива.

Решение.

Последний отрицательный — это первый отрицательный элемент, если начать просмотр с конца.

Если очередной элемент не является отрицательным, то нужно уменьшать значение текущего индекса, пока он не станет меньше номера первого элемента или не будет найден отрицательный элемент.

Таким образом, можно модифицировать предыдущую функцию. Но поскольку надо найти номер элемента, тип результата будем целым.

Договоримся, что если такого элемента нет, то значение функции будет равно 0.

Function Control2 (m: myarray): Integer;
Var i : Integer;
Begin
   i:=n;
   While (i>=1) And (m[i]>0) Do Des(i);
   If i<1 Then Control2:=0
          Else Control2:=i;
End;

Вы рассмотрели алгоритмы на поиск и выборку элементов в массиве.

На следующем уроке продолжим знакомиться с алгоритмами  обработки одномерных массивов.

const
    N = 13;
var
    c: Array[1..N] Of Integer;
    i, id: 0..N;
begin
    id := 0;
    for i := 1 to N do
    begin
        Write('c[', i, ']=');
        ReadLn(c[i]);
        if (c[i] < 0)
        then
            id := i;
    end;
    if (id > 0)
    then
        WriteLn('Hомер последнего отрицательного элемента ', id)
    else
        WriteLn('Не найдено отрицательных чисел!');
end.

Если идти циклом по строкам сверху вниз, то нужно перебрать все значения:

Sub n12()
    Dim i As Long, n As Long
    
    For i = 1 To 8
        If Cells(i, 1).Value < 0 Then n = i
    Next i
        
    If n > 0 Then MsgBox ("Значение = " & Cells(n, 1).Value & ", номер = " & n), 64, "РЕЗУЛЬТАТ"
End Sub

Но если цикл «развернуть», диапазон просматривается только до первого отрицательнного значения:

Sub n12()
    Dim i As Long

    For i = 8 To 1 Step -1
        If Cells(i, 1).Value < 0 Then Exit For
    Next i
    
    If i > 0 Then MsgBox ("Значение = " & Cells(i, 1).Value & ", номер = " & i), 64, "РЕЗУЛЬТАТ"
End Sub

Если есть желание, можно добавить сообщение о том, что отрицательные не найдены.

Пример 1
Задача. Дан целочисленный одномерный
массив, состоящий из n элементов. Найти сумму и произведение нечетных элементов,
кратных 3.


Ход решения:
Введем обозначения: n –
количество элементов в массиве; А – имя массива; i – индекс элемента массива;
Ai – i-й элемент массива A; s – сумма нечетных элементов массива, кратных
3; p – произведение нечетных элементов массива, кратных 3.
Входные
данные: n, A.
Выходные
данные: s, p.

Первоначально сумма искомых
элементов равна нулю: не просуммировано ни одно слагаемое, то есть s:=0. Далее,
используя любой оператор цикла, просматриваем весь массив от первого и до
последнего элемента. И если при этом элемент массива нечетный и кратен 3, то к
уже накопленной сумме добавляется очередное слагаемое, т.е. s:= s + A[i]. Здесь
слева и справа от знака присваивания записано имя одной и той же переменной s,
именно это обеспечивает постепенное накопление суммы: s справа – уже
вычисленное известное значение суммы, s  — ее новое, вычисляемое значение.
При просмотре массива можно
сразу вычислить и произведение элементов массива, удовлетворяющих заданному
условию. Произведение вычисляется с помощью оператора p:=p*A[i]. При этом p
справа и p слева имеют разные значения: p справа – уже известное, вычисленное
ранее значение произведения, p слева – новое, вычисляемое его значение.
Первоначально искомое произведение равно единице, т.е. p:=1.
При решении этой задачи
можно использовать любой из видов циклов. 

Блок-схема цикл с параметром:

Для решения используется цикл с параметром: 
Program Primer;
var A: Array[1..20] Of Integer;
      i, n, s, p: Integer;
begin
     write (‘n=’); 
     readln (n);
     for i:=1 to n do readln (A[i]);   {ввод массива}                 s:= 0;  p:=1;
     for i:=1 to n do   {обработка массива}
     if (A[i] mod 2 <>0) and (A[i] mod 3 = 0) then
      begin
          s:=s+A[i];  
          p:= p*A[i];
      end;
     writeln (‘s=’, s, ‘p=’, p);
     readln;
     end.

 Блок-схема цикл с предусловием:
 Для решения используется цикл с предусловием:

Program Primer;
var A: Array[1..20] Of Integer;
      i, n, s, p: Integer;
begin
     write (‘n=’); 
     readln (n); 
     i:=1;
     while i <= n do
      begin     
          readln (A[i]);   
          i:= i + 1;
      end;
     s:= 0;  p:=1; i:=1;
     while i<=n  do 
         begin

             
 if (A[i] mod 2
<>0) and (A[i] mod 3 = 0) then

              
     begin

                 
    s:=s+A[i]; 

              
       p:= p*A[i];

              
     end;  
                i:=
i + 1;
          end;   
      writeln (‘s=’, s, ‘p=’, p);
      readln;
      end.

Пример 2
Задача. Дан массив целых чисел. Найти
количество тех элементов, значения которых положительны и не превосходят заданного
натурального числа А. 


Ход решения:
Введем обозначения: n
– количество элементов в массиве; X – имя массива; i – индекс
элемента массива; Xi – i-й элемент массива X; А – заданное число; k –
количество элементов, значения которых положительны и не превосходят заданного
числа А.
Входные данные: n, X,
A.                              
Выходные данные: k.
Вводим с клавиатуры
значение числа А. Количество элементов, значения которых положительны и не
превосходят заданного числа А, вначале полагаем равным нулю, то есть k:=0. Если
очередной элемент массива положителен и не превосходят заданного числа A, то
количество таких элементов нужно увеличить на единицу, то есть k:=k + 1. Таким
образом, обрабатываются все элементы массива.
При решении этой задачи можно
использовать любой из видов циклов.

 Блок-схема:

 Для решения используется цикл с параметром:
Program Primer;
Var X: Array[1..20] Of Integer;
      i, n, k, A: Integer;
Begin
     Write (‘n=’); 
     Readln (n);
     For i:=1 To n Do Readln (X[i]);   {ввод массива}
     Write (‘A=’);  
     Readln (A); 
     k:= 0; 
     For i:=1 To n Do   {обработка массива}
     If (X[i] >0) and (X[i] <= A) Then k:=k + 1;
     Writeln (‘k=’, k);
      Readln
      End.

Пример
3

Задача. Дан одномерный целочисленный массив, состоящий из n элементов. Найти номера четных элементов,
стоящих на нечетных местах. 
Ход решения:
Введем обозначения: n –
количество элементов в массиве; X – имя массива; i – индекс элемента массива;
Xi – i-й элемент массива Х.
Входные данные: n, X.
Выходные данные: i.
Необходимо просмотреть весь
массив. Если просматриваемый элемент является четным, а его порядковый номер –
нечетный, то вывести его номер. При решении этой задачи можно использовать
любой из видов циклов.

  Блок-схема:

 Для решения используется цикл с  параметром:

Program Primer;
Var X: Array[1..20] Of Integer;
      i, n:  Integer;
Begin
     Write (‘n=’); Readln (n);
     For i:=1 To n Do Readln
(X[i]);   {ввод массива}
      For i:=1 To n Do   {обработка массива}
      If (X[i] mod 2 = 0) and (i mod 2<>0) Then Write
(i:5);
      Readln;
      End. 

Пример 4

Задача. Дан одномерный целочисленный массив, состоящий из n элементов.Найти номер последнего
отрицательного элемента массива.

Ход
решения:
Введем обозначения: n – количество элементов в массиве; А – имя массива; i –
индекс элемента массива; Ai – i-й элемент массива A; m – номер последнего
отрицательного элемента массива.
Входные данные: n, A.
Выходные данные: m.
Последний отрицательный
элемент массива – это первый отрицательный элемент, который встретится при
просмотре массива с конца. Если очередной элемент не является отрицательным, то
нужно уменьшать значение текущего индекса (i:=i-1), пока он не станет меньше
номера первого элемента или не будет найден отрицательный элемент. Переменная m
получает значение i (номер отрицательного элемента), т.е. m := i. Если в
массиве нет отрицательного элемента, то значение переменной m остается равным
нулю.

  Блок-схема:

 Для решения используется цикл с  параметром:

Program
Primer;
Const n=10;
Var A:
Array[1..n] Of Integer;
      i, m: Integer;
Begin
      For i:=1 To n Do Readln (A[i]);   {ввод массива}
      m := 0; 
i:=n;
      While 
(i >= 1) and (A[i] >=0) Do i:=i-1;   
      m:=i;
      Writeln (‘m=’, m);
      Readln;
      End.

Задачи

1. Дан целочисленный одномерный массив, состоящий из n
элементов. Найти сумму и произведение всех элементов массива.
2. Дан целочисленный одномерный массив, состоящий из n
элементов. Найти сумму и произведение четных элементов.
3. Дан
целочисленный одномерный массив, состоящий из n элементов. Найти среднее
арифметическое всех элементов массива.
4. Дан целочисленный
одномерный массив, состоящий из n элементов. Выяснить, какое число встречается
раньше — положительное или отрицательное.
5. Дан одномерный
массив, состоящий из n действительных чисел. Выяснить, является ли
последовательность возрастающей или убывающей.
6. Дан целочисленный одномерный массив, состоящий из n
элементов. Найти сумму и произведение элементов, кратных 3 и 5.
7. Дан целочисленный
одномерный массив, состоящий из n элементов. Вывести его элементы, индексы
которых являются степенями двойки (1, 2, 4, 8, 16, …).
8. Дан массив целых чисел. Найти количество отрицательных
элементов, больше -9.
9. Дан целочисленный одномерный массив, состоящий из n
элементов. Найти количество элементов кратных 7.
10. Дан целочисленный
одномерный массив, состоящий из n элементов. Вывести на экран элементы, которые
являются квадратами какого-либо числа.
11. Дан одномерный
целочисленный массив, состоящий из n элементов. Найти номера нечетных
элементов, стоящих на четных местах. 
12. Дан целочисленный
одномерный массив, состоящий из n элементов. Найти максимум и минимум. Поменять
их местами.
13. Дан целочисленный
одномерный массив, состоящий из n элементов. Заменить все элементы на их
квадраты.
14. Дан целочисленный
одномерный массив, состоящий из n элементов. Заменить все элементы на их
противоположные значения.
15. Дан целочисленный
одномерный массив, состоящий из n элементов. Поменять местами первый и
последний элементы.
16. Дан одномерный
массив, состоящий из n действительных чисел. Сформировать новый массив,
состоящий из отрицательных элементов.
17. Дан целочисленный
одномерный массив, состоящий из n элементов. Вывести на экран те элементы, у
которых остаток от деления на m равен k. 
18. Вводятся
результаты контрольной работы 10 учащихся. Определите число неудовлетворительных,
удовлетворительных, хороших, отличных оценок. Вывести среднюю оценку,
полученную учащимися за контрольную работу.
19. Ввести оценки N
учеников по K предметам. Определить и вывести на экран количество учеников, не
получивших ни одной «5».
20. В группе учится N
студентов, студенты получили по четыре отметки за экзамен. Определить
количество неуспевающих студентов и средний балл группы.
21. В одномерном
массиве размещены: в первых элементах — значения аргумента, в следующих —
соответствующие им значения функции. Напечатать элементы этого массива в виде
двух параллельных столбцов (аргумент и значения функции).
22. Дан целочисленный
одномерный массив, состоящий из n элементов. Вычислить сумму чисел,
порядковые номера которых являются числами фибоначчи.
23. Сформировать
массив простых множителей заданного числа.
24. В одномерном
массиве с четным количеством элементов (2n) находятся координаты n точек
плоскости. Они располагаются в следующем порядке: х1, у1, х2, у2, х3, у3 и т.д.
Найти номера наиболее и наименее удаленных друг от друга точек.

Упражнение «Программирование одномерных массивов»

1. Дан фрагмент программы,
обрабатывающий массив А из 10 элементов:

n := 10;
for i:=1 tо n do A[i] := i;
j := 1;
for i:=1 tо n-1 do 
if A[i] < A[i+1] then j := j + 1;
Чему будет равно значение переменной j после выполнения этого алгоритма?
а) 1  б)2 в)10 г)11

keruch07

0 / 0 / 0

Регистрация: 10.10.2016

Сообщений: 2

1

Найти номер последнего отрицательного элемента массива

11.10.2016, 08:52. Показов 12504. Ответов 3

Метки нет (Все метки)


Дан массив С(13).Найти номер последнего отрицательного элемента массива.

Как раз не могу найти номер последнего отрицательного элемента — правильно не выдает.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program _1; 
const n=13; 
var 
c:array[1..n] of integer; a:array[1..n] of integer; 
i,k:integer; 
begin 
for i:=1 to n do 
readln(c[i]); 
k:=1; 
for i:=2 to n do 
if a[i]<0 then k:=i; 
writeln(k); 
readln; 
end.

я написал, но номер последнего отрицательного элемента не выдает. может кто поможет исправить ошибку! Спасибо!

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Kapytan

133 / 148 / 64

Регистрация: 27.06.2013

Сообщений: 535

11.10.2016, 09:56

2

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
uses crt;
const m=13;
var
c:array[1..m] of integer;
i,N:integer;
begin
cls;
N:=0;
for i:=1 to m do
begin
writeln('Введите ', i, '-й элемент массива');
readln(c[i]);
if c[i]<0 then N:=i;
end;
writeln('Hомер последнего отрицательного элемента = ',N);
readln;
end.

0

JokeR.BY

CAPITAL OF ROCK!

1281 / 708 / 982

Регистрация: 03.03.2010

Сообщений: 2,286

11.10.2016, 12:15

3

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Kapytan, а если нет отрицательных?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const
    N = 13;
var
    c: Array[1..N] Of Integer;
    i, id: 0..N;
begin
    id := 0;
    for i := 1 to N do
    begin
        Write('c[', i, ']=');
        ReadLn(c[i]);
        if (c[i] < 0)
        then
            id := i;
    end;
    if (id > 0)
    then
        WriteLn('Hомер последнего отрицательного элемента ', id)
    else
        WriteLn('Не найдено отрицательных чисел!');
end.

0

0 / 0 / 0

Регистрация: 10.10.2016

Сообщений: 2

11.10.2016, 18:06

 [ТС]

4

Спасибо большое друзья! Вы мне очень помогли! Я очень рад, что есть добрые люди!

0

Урок 23. Поиск элемента в массиве

Просмотров 2.8к. Обновлено 23 ноября 2020

Урок из серии: «Язык программирования Паскаль»

На этом уроке рассмотрим алгоритмы поиска элемента в одномерном массиве. Эти алгоритмы очень похожи на обработку последовательностей (поиск, выборка и т.д.).

Отличие заключается в том, что в массиве одновременно доступны все его компоненты. Такой доступ называется параллельным.

Рассмотрим несколько примеров.

Пример 1. Найти номера четных элементов.

Решение.

Для нахождения четных элементов необходимо просмотреть весь массив, и если будут попадаться четные элементы, то нужно выводить их на экран. Напишем процедуру, которая принимает в качестве входного параметра массив и выводит на экран нужные элементы.

Procedure Solve(m : myarray);
Var i: Integer;
Begin
   For i:=1 To n Do 
      If m[i] Mod 2 = 0 Then Write(i:5);{если элемент четный, то вывести на экран}
End;

Пример 2. Есть ли отрицательный элемент в массиве?

Решение.

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

Начинаем с первого элемента (i = 1).

Пока не просмотрен последний (i<=n) и не найден отрицательный (m [i]>=0), будем переходить к следующему (inc (i)).

Таким образом, мы закончим просмотр в одном из двух случаев:

  • первый — просмотрели все элементы и не нашли отрицательный, тогда i>n;
  • второй — нашли нужный, при этом i<=n.

Напишем функцию, значение которой истина (True), если такой элемент есть, и ложь (False), если его нет.

Function Controll (m: myarray): Boolean;
Var i : Integer;
Begin
   i := 1;
   While (i<=n) And (m[i]>0) Do Inc(i);
   Control1:=(i<=n)
End;

Пример 3. Найти номер последнего отрицательного элемента массива.

Решение.

Последний отрицательный — это первый отрицательный элемент, если начать просмотр с конца.

Если очередной элемент не является отрицательным, то нужно уменьшать значение текущего индекса, пока он не станет меньше номера первого элемента или не будет найден отрицательный элемент.

Таким образом, можно модифицировать предыдущую функцию. Но поскольку надо найти номер элемента, тип результата будем целым.

Договоримся, что если такого элемента нет, то значение функции будет равно 0.

Function Control2 (m: myarray): Integer;
Var i : Integer;
Begin
   i:=n;
   While (i>=1) And (m[i]>0) Do Des(i);
   If i<1 Then Control2:=0
          Else Control2:=i;
End;

Вы рассмотрели алгоритмы на поиск и выборку элементов в массиве.

На следующем уроке продолжим знакомиться с алгоритмами  обработки одномерных массивов.

Напишем программу, которая определяет номер отрицательного элемента в массиве.

 Нахождение номера отрицательного элемента в массиве.


program massiv9;
uses crt;
const N=10;
type x=array [1..N] of integer;
var a:x;
i:integer;
k:integer;
begin
clrscr;
randomize;
for i:=1 to N do
begin
a[i]:= -10+random (91);
write (A[i]:4)
end;
writeln;
k:=0;
for i:=1 to N do
if a[i] <0 then
begin
k:=I
end;
if k>0 then
writeln (‘Индекс отрицательного элемента = ’,k)
else
writeln (‘В массиве нет отрицательных элементов');
readln
end.



В строке №7 мы записали переменную для хранения индекса отрицательного элемента.

В строке №19 мы задаем условие, при котором перебираются все 10 сгенерированных чисел и среди них ищется отрицательный, и если отрицательное число находится, то его индекс (номер) заносится в переменную K (строка №21).

В строке №23 записывается условие: если переменная «K» больше 0 (т.е. есть отрицательные элементы), то на экран выводится сообщение (строка №24). В обратном случае (если нет отрицательных элементов, и «K» так и останется равным 0), выведется сообщение (строка №26)

nakhozhdenie nomera otricateljnogo ehlementa v massive

nakhozhdenie nomera otricateljnogo ehlementa v massive.

Из всех сгенерированных чисел у нас 2 числа отрицательные. Так как цикл начинался с первого элемента и закончился на 10-ом элементе, у нас выводится номер последнего найденного отрицательного числа (т.к. именно этот номер последним был записан в переменную «K»). Если бы нам нужно было найти номер первого отрицательного числа, то мы бы заменили строку №16 (for i:=1 to N do) на такую строку: for k:=N downto 1 do (т.е. перебирали бы элементы с конца).


Предыдущая статья : Определение наличия в массиве отрицательных чисел.

Оглавление : Уроки Паскаль.

Следующая статья : Двумерные массивы в Pascal.


Найти
номер последнего отрицательного элемента
массива.

Решение

Последний
отрицательный
− это
первый отрицатель­ный элемент, который
встретится при просмотре масси­ва с
конца. Если очередной элемент не является
отрица­тельным, то нужно уменьшать
значение текущего ин­декса, пока он
не станет меньше номера первого эле­мента
или не будет найден отрицательный
элемент. Та­ким образом, можно
модифицировать предыдущую функ­цию.
Но поскольку надо найти номер элемента,
тип ре­зультата будет целым.

Договоримся,
что если в массиве нет отрицательного
элемента, то значение функции будет
равно
0.

Program
Example_96;

Function
Control2 (m: myarray):
Integer;

Var
i: Integer;

Begin

i:=n;

While
(i>=1) And (m[i]>=0) Do Dec(i);

Control2:=i;

End.

§37. Методы работы с элементами одномерного массива

Рассмотрим
еще несколько типов задач.

Изменение
значений некоторых элементов

Пример
1

Заменить
отрицательные элементы массива на их
аб­солютные величины.

Решение

Для
решения задачи опишем процедуру. Ей
будем передавать один параметр
− массив,
который и будет результатом, при этом
значения некоторых элементов могут
быть изменены.

Program
Example_97;

Procedure
Substitution1 (Var
m: myarray);

Var
i: Integer;

Begin

For
i:=1 To n Do

If m[i]<0
Then m[i]:=-m[i];

End;

Пример
2

Прибавить
к каждому элементу массива число
25.

Решение

Преобразуем
предыдущую процедуру.

Program
Example_98;

Procedure
Substitution2 (Var m: myarray);

Var
i: Integer;

Begin

For
i:=1 To n Do m[i]:=m[i]+25;

End;

Пример
3

Если
очередной элемент массива четный, то
приба­вить к нему первый, если нечетный
− прибавить
послед­ний. Первый и последний элементы
не изменять.

Решение

Просмотрим
все элементы массива, кроме первого и
последнего, и если очередной элемент
четный, то есть делится на
2
без остатка, то увеличим его на значение
первого элемента, иначе
− увеличим
его на значение по­следнего элемента.

Program
Example_99;

Procedure
Substitution3 (Var m: myarray);

Var
i: Integer;

Begin

For
i:=2 To n-1 Do

If
m[i] Mod
2=0
Then m[i]:=m[i]+m[1]

Else
m[i]:=m[i]+m[n];

End;

Создание массива

Рассмотрим
два примера.

Пример 1

Даны
два одномерных массива одинаковой
размер­ности. Получить третий массив
такой же размерности, каждый элемент
которого равен сумме соответствующих
элементов данных массивов.

Решение

Пусть
даны два массива
− А
и В,
состоящие из пяти элементов. Получим
из них массив С,
тоже состоящий из пяти элементов, причем
пер­вый элемент этого массива ра­вен
сумме первых элементов массивов А
и В,
второй
− сум­ме
вторых элементов данных массивов −
и так далее.

i

1

2

3

4

5

A

14

2

7

8

9

B

3

6

5

12

4

C

17

8

12

20

13

Для
решения этой задачи опишем процедуру,
которой передаются три параметра. Первые
два
− это два
исходных одномерных массива, третий
− это
одномерный массив той же размерности,
который является результатом и заполняется
по указан­ному правилу.

Program
Example_100;

Procedure
Sum_Ar(a, b: myarray;

Var
с:
myarray);

Var
i: Integer;

Begin

For
i:=1 To n Do c[i]:=a[i]+b[i];

End;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Как найти площадь газона
  • Как составить уравнение треугольника в системе координат
  • Как найти один миллион рублей срочно
  • Как найти траву светяшку в геншин импакт
  • Как найти звонящего по адресу