Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
С использованием векторных операций. n=input('введите n=');
n=input('введите n='); for i=1:n X(i)=input('X(i)='); end s=X(1)+X(n); X(4:n+1)=X(3:n); X(3)=s; disp('Измененный массив'); disp(X)
Задача 35. Формирование нового массива на основе исходного Условие задачи. Дан одномерный массив А целых чисел и два числа x и y. Сформировать массив В из элементов исходного, лежащих в интервале от x до y. Исходными данными являются количество элементов массива n, элементы массива А и два числа x и y, задающие начало и конец интервала. Результатом будет одномерный массив В. Количество элементов исходного массива n вводится, а количество элементов результирующего массива заранее неизвестно, оно зависит от исходных данных и может быть иное, чем y исходного. Элементы исходного массива А[ i], принадлежащие заданному интервалу (x, y) должны быть записаны в массив В под другими номерами, нежели в исходном массиве. Например, пусть дан числовой массив из 10 элементов А ={20,41,3,11,12,4,9,8,10,30} и интервал (2,5). Проверка исходного массива начинается с первого элемента А[1], он не попадает в интервал и его в массив В заносить не надо. Проверяем второй элемент А[2], он тоже не попал в интервал, значит и его заносить в массив В не надо. Проверяем третий элемент А[3], он попадает в интервал, следовательно, его надо занести в массив В. Если делать это, используя присваивание В[ i]=А[ i], и помещать его в мвссив В под тем же номером 3, то первые два элемента массива В будут заполнены неопределенными значениями (в лучшем случае нулями) и таких элементов может быть много. Это зависит от того, сколько элементов массива А попадут в интервал. В приведенном примере массив В получится таким {0,0,3,0,0,4,0,0,0,0}. Поэтому новый массив В надо заполнять, начиная с первого элемента, а для номеров элементов этого массива необходимо предусмотреть дополнительную переменную k, которую надо увеличивать на 1 каждый раз перед тем как заносить новый элемент в массив В. И тогда полученный массив В будет содержать значения {3,4}. Переменная k будет не только номером элемента нового массива В, но после окончания формирования массива она будет определять реальное количество элементов в нем. Это надо учитывать при выводе массива В. Для обозначения индексов элементов массива А возьмем переменную i. До цикла переменной k присваивается начальное значение, равное 0, затем, в цикле для i, изменяющейся от 1 до n, каждый элемент массива А[ i] проверяется на принадлежность интервалу (х,у). Если условие выполняется, то формируется следующий номер элемента нового массива k= k+1 и в В[ k] заносится проверенный элемент исходного массива А[ i]. После выхода из цикла значение k будет определять количество элементов нового массива В. Если значение k осталось равным нулю, значит в массиве А не оказалось элементов, удовлетворяющих заданному условию. Следовательно, перед выводом необходимо выполнить проверку значения k. Если k =0, то выдается соответствующее сообщение на экран, в противном случае k элементов полученного массива выводятся на экран с использованием оператора цикла с параметром, изменяющимся от 1 до k.
Структурированная запись алгоритма 35 1. Ввести значения границ интервала x и y. 2. Ввести количество элементов исходного массива n. 3. Ввести элементы массива А. 4. Задать начальное значение индексу нового массива k =0. 5. Повторять n раз для i =1, n следующее действие: 5.1 Проверить каждый элемент исходного массива A[i] на принадлежность заданному диапазону: A[ i]>х и A[ i]< y. 5.1.1. Если условие выполняется, то значение индекса k надо изменить на 1 и записать элемент A [ i ] в элемент массива В [ k]: k= k+1; В[ k] = A [ i ]. 6. Проверить значение k. Если оно равно нулю, 6.1.то вывести сообщение ‘Нужных элементов в исходном массиве нет’, 6.2. иначе в цикле от 1 до k вывести элементы полученного массива. Схема алгоритма
Текст программы на языке Си #include <stdio.h> #define N 50 int main (void) { int A[N], B[N], n, k=-1, i, x, y; printf("Введите x,y\n"); scanf("%d",&x); scanf("%d",&y); printf("Введите n\n"); scanf("%d", &n); printf("Введите элементы массива A\n"); for (i=0; i<n; i++) scanf ("%d", &A[i]); for (i=0; i<n; i++) if (A[i]>x && A[i]<y) { k++; B[k]=A[i]; } if (k==(-1)) printf("Нужных элементов в массиве нет'\n"); else { printf ("Полученный массив\n"); for (i=0; i<=k; i++) printf ("%d\t", B[i]); printf("\n"); } return 0; } Программа на языке Паскаль Program Main_35; Var a,b: array of integer; i,n,k,x,y: integer; begin writeln('Введите интервал (x,y)'); readln(x,y); writeln('Введите кол-во эл-тов масс.');
readln(n); setlength(a,n); setlength(b,n); writeln('Введите элементы массива'); for i:=0 to n-1 do readln(a[i]); k:=-1; for i:=0 to n-1 do if (a[i]>x) and (a[i]<y) then begin k:=k+1; b[k]:=a[i]; end; if k=(-1) then writeln('Нужных элементов в массиве нет') else begin writeln('Полученный массив'); for i:=0 to k do write(b[i]:3); end; a:=nil; b:=nil; end.
|
||||||
Последнее изменение этой страницы: 2021-04-12; просмотров: 81; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.226.105 (0.008 с.) |