Массивы в Pascal

Комментарии

Помогите

D[1..30] сколько чисел со значениями >50

Нужна помощь

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

решение

решение

Помогите,не могу разобраться

Дан одномерный целочисленный массив.Вставить два элемента: первый - после всех элементов, больших данного числа Р, а второй - перед всеми элементами, большими данного числа Р (Р вводить с клавиатуры).

Помогите чем сможете, не могу разобраться

Нужно в сделать массив в паскале.
Дан массив длиной 10. Написать программу для нахождения одинаковых элементов. Чтобы после начала он предложил написать кол-во элементов, а после того как ты написал числа, он сказал (да) если одинаковые имеются и (нет) если одинаковых нет.

Подобная задача

Подобная задача

А может кто нибудь написать

А может кто нибудь написать пожалуйста, а то я ту похожую смотрел, но не понимаю. Он сразу выводит элементы, а мне надо самому вводить.
Заранее большое спасибо!

кто поможет с задачкой.... не могу понять

если сумма элементов главной диагонали массива А(n,n) больше суммы элементов побочной диагонали, то найти количество четных элементов каждого столбца, иначе- заменить все элементы диагоналей массива на 1.

С вводом матрицы проблем нет... Не знаю как правильно тут задать условие и посчитать сумму элементов главной и побочной диагоналей.

Сумма главной диагонали: sum1

Сумма главной диагонали:

sum1 := 0;
for i:=1 to N do
    sum1 := sum1 + A[i,i];

Сумма побочной диагонали:

sum2 := 0;
for i:=1 to N do
    sum2 := sum2 + A[i,N-i+1];

if sum1 > sum2 then 
    for j:=1 to N do begin
        qty := 0;
        for i:=1 to N do 
            if not odd(A[i,j]) then qty := qty + 1;
        write(qty, ' ');
    end
else 
    for i:=1 to N do begin
        A[i,i] := 1;
       A[i, N-i+1] := 1;
    end;

а можно полностью до меня не

а можно полностью
до меня не доходит)

ПОМОГИТЕ ПОЖАЛУЙСТА

Нужно сделать массив в паскале. Задача звучит - "Среди этих чисел есть равные?"

Есть ли в массиве одинаковые

Есть ли в массиве одинаковые элементы

Помогите

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

помогите!

Дан массив А длиной 10. Составить программу для нахождения минимального элемента массивы и его номера. Полученные значения выдать на экран. Массив А заполнить любым способом.

Поиск максимального элемента

Поиск максимального элемента в массиве

Вам надо только знак > поменять на

Прошу помочь(((

Составить программу которая будет анализировать каждую нажатую клавишу на ее принадлежность. Дана такая задача.я решила ее по оператору case.все вроде бы правильно но с меня требуют удобный интерфейс.прошу помочь.

Помогите с задачей

Какой алгоритм подходит к этой задаче? Работаю в паскале.
Каждые выходные к Васе приходят друзья, чтобы поиграть в карты. Для полноценной игры число карт в колоде должно быть кратно количеству игроков.
У Васи есть колода из N карт. Он решил, что для каждой новой игры он будет выбирать такое количество карт, которым не играли ранее. В карты они играют либо вдвоем, либо втроем. Помогите Васе подсчитать, какое количество игр можно будет сыграть этой колодой.
Формат входных данных
Задано целое число N (1 ≤ N ≤ 109) — количество карт в колоде.
Формат выходных данных
Выведите, какое количество игр можно будет сыграть этой колодой.

Возможно требуется найти все

Возможно требуется найти все числа до 109 кратные 2 или 3.

Нужна помощь.....

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

Проверьте, если не сложно...

const
  nmax=20;
var
  a: array[1..nmax,1..nmax] of integer;
  b: array[1..nmax] of integer;
  n,m,i,j,jm: byte;
  s,max: integer;
begin
  write('Введите размеры матрицы n, m: ');
  readln(n,m);
  writeln('Исходная матрица: ');
  for i:=1 to n do
  begin
    for j:=1 to n do
    begin
      a[i,j]:=random(99)+1;
      write(a[i,j]:4);
    end;
    writeln;
  end;
  writeln;
  max:=0;
  for i:=1 to n do max:=max+a[i,1];
  jm:=1;
  for j:=2 to m do
  begin
    s:=0;
    for i:=1 to n do
      s:=s+a[i,j];
    if s>max then
    begin
      max:=s;
      jm:=j;
    end;
  end;
  writeln('Наибольшее среднее арифметическое в ',jm,'-м столбце и = ',max/n:0:2);
  for i:=1 to n do writeln(a[i,jm]);
  writeln('Преобразованная матрица:');
  for i:=1 to n do
  begin
    for j:=1 to n do
    begin
      if j=jm then a[i,j]:=0;
      write(a[i,j]:4);
    end;
    writeln;
  end;
end.
 
и как применить защиту от неправильного ввода компонентов????

При заполнении матрицы

При заполнении матрицы внутренний цикл. Видимо должна быть m, а не n. То же самое при выводе.
Зачем массив b?

В остальном вроде бы все правильно.

У вас элементы матрицы генерируются случайно. Здесь не нужна "защита". Для корректного ввода m и n можно сделать так:

m := 0;
n := 0;
while ((m > 21) or (m )) and ((n > 21) or (n )) do 
    readln(n,m);

Есть ошибка...

Он неправильно считает среднее арифметическое... Где ошибка?

В столбце m элементов, значит

В столбце m элементов, значит max/m

Спасибо

Спасибо большое вам за помощь

Помогите пожалуйста решить задачку....

Найти произведение наибольших значений по столбцам произвольной матрицы и их среднее значение.

помогите

надо написать программу с одномерным массивам и заполнить его и через процедуру надо что бы он перезаполнил его в порядке возрастания с теми перемеными которые ты в вел
плиззз помогите

const N = 10; type arr =

const N = 10;
type
    arr = array[1..N] of integer;
var
    a: arr;
    i,j: byte;
 
procedure sort(var mas: arr);
    var b: integer;
    begin
        for i:=1 to N-1 do
            for j:=1 to N-i do
                if mas[j] > mas[j+1] then begin
                    b := mas[j];
                    mas[j] := mas[j+1];
                    mas[j+1] := b;
                end;
    end;
 
begin
    writeln('Введите ',N,' чисел: ');
    for i:=1 to N do 
        read(a[i]);
 
    sort(a);
 
    for i:=1 to N do 
        write(a[i],' ');
    writeln;
end.

Слить два массива А и В по 50

Слить два массива А и В по 50 элементов в массив С из 100 элементов по одному из следующих вариантов:
а)элементы массива А имели в С нечетные номера;
Препод сказал чтобы я решила его через функцию odd..я в отчаяние...

const N = 50; var a, b:

const N = 50;
var
    a, b: array[1..N] of integer;
    c: array[1..N+N] of integer;
    i: byte;
begin
    randomize;
    for i:=1 to N do begin
        a[i] := random(10);
        write(a[i]:3);
    end;
    writeln;
    for i:=1 to N do begin
        b[i] := random(10)-9;
        write(b[i]:3);
    end;
    writeln;
    for i:=1 to N+N do 
        if odd(i) then 
            c[i] := a[(i+1) div 2]
        else
            c[i] := b[(i+1) div 2];
    for i:=1 to N+N do
        write(c[i]:3);
    writeln;
end.

Я благодарна )))

Спасибо большое))))препод быыыл рад просто))а я получила хорошую оценку))сделала удобный интерфейс и вуаля)))

Помогите!

Дан массив T(7). Подсчитайте его произведение в чётных ячейках!

const T=7; var arr:

const T=7;
var
    arr: array[1..T] of integer;
    i: byte;
    mult: longint;
begin
    randomize;
    mult := 1;
    for i:=1 to T do begin
        arr[i] := random(10);
        write(arr[i],' ');
        if i mod 2 = 0 then
            mult := mult * arr[i];
    end;
    writeln;
    writeln(mult);    
end.

одномерный массив

Одномерный массив размерностью 2n, где n – целое положительное число, заполнен случайными положительными целыми числами. Изменить массив по следующему правилу: в первую ячейку поместить модуль разности между значениями первой и второй ячеек, во вторую – модуль разности между значениями второй и третьей ячеек, … в последнюю модуль разности между значениями последней и первой ячеек.
Определить, сколько понадобится таких преобразований, прежде чем массив будет состоять из одних нулей.
Мне кажется, что массив никогда не будет содержать одни нули. Как вы считаете?

Нет, не будет содержать нули.

Нет, не будет содержать нули. Решение задачи.

Мне тоже кажется, что массив

Мне тоже кажется, что массив может и не свестись к нулям. Например, массив 2 8 12 3
6 4 9 1
2 5 8 1
3 3 7 2
0 4 5 2
4 1 3 2
3 2 1 1
1 1 0 0
0 1 0 0
1 1 0 1
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 1 1 1
0 0 0 1
0 0 1 1
0 1 0 1
1 1 1 0
0 0 1 0
0 1 1 0
1 0 1 1
1 1 0 0

Пойдет по кругу.

Массив

помогите пожалуйста
Определить сколько элементов массива превосходят по модулю максимальный элемент.

здесь

Помогите!

Известно количество жителей в каждом N домах на улице. С левой стороны дома расположены дома, которые имеют непарные номера. А с правой стороны дома, которые имеют парные номера. Нужно найти на какой из сторон проживает больше людей.

люди

const
m = 10;
 
var mas:array [1..m] of integer;
i,left,right:integer;
begin
for i:= 1 to m do
  begin mas[i]:=Random(26)+4;write(mas[i],' ');end;
writeln;
 
for i:=1 to m do
if i mod 2 = 0 then
  right:= right+mas[i] else left:= left+mas[i];
 
 if right > left then
    writeln('на правой стороне проживает большее количество людей в количестве: ', right) else
    writeln('на левой стороне проживает большее количество людей в количестве: ', left);
 end.

Бинарный поиск

нужен код программы. Вот задание:написать программу имеется железнодорожное расписание, содержащее номер рейса поезда, времена отправления и прибытия и станцию прибытия. Организовать поиск номера поезда, время отправления и прибытия, если задана станция

Помогите пожалуйста

Создать одномерный массив,используя датчик случайных чисел и вывести его на экран в форме таблицы, без повторяющихся элементов массива. Размер массива 54

Вот алгоритм. В форме какой таблицы располагать?

uses crt;
var
a:array[1..54] of integer;
i, k:integer;
label m1;
function vvod:integer;
var t, t1:integer;
begin
t:=random(90)+10;
t1:=random(2)*2;
t1:=t1-1;
t:=t*t1;
vvod:=t;
end;
begin
clrscr;
a[1]:=vvod;
write(a[1], ' ');
for i:= 2 to 54 do
begin
m1:a[i]:=vvod;
for k:= 1 to i-1 do
begin
if a[i]=a[k] then goto m1;
end;
write(a[i], ' ');
end;
end.

Помогите, пожалуйста, решить задачи!

1) Необходимо для числа 123456 найти сумму цифр числа, отнять от данного числа полученную сумму, заменить данное число полученным значением и так повторять до тех пор, пока получившаяся разность будет положительным числом. Сколько раз будет выполняться операция вычитание? В ответе укажите только число.
2) На столе находятся девять листочков с целыми цифрами от 1 до 9. Из этих листочков составляются два целых числа. Одно из них будет числителем, а второе знаменателем, причём знаменатель всегда состоит из пяти цифр и каждый листочек должен быть использован.
Найти количество комбинаций листочков (если она существует), которые образовывали бы дробь, равную 2/7. Если таких комбинаций нет, то надо вывести цифру 0. В ответе укажите только число.

а вот вторая задача

со второй взникли небольшие траблы поэтому сделал как мог.
Вобщем принцип таков: чтоб считать возможные сочетания числителя и знаменателя дающих результат "2/7"(chislo) нужно для начала задать возможные варианты сочетаний числителя и знаменателя.
После запуска программы идет обращение к процедуре zapis - формируется список числителя сохраняющегося в файл 'bd_chislitel' и список сочетаний знаменателя сохраняющегося в файл (bd_znamenatel).
После завершения процедуры zapis идет обращение к процедуре chtenie. Требуется ввести допустимую погрешность (r) прибавляемую к chislo(в нашем случае установлено 2/7);
Затем процедура подключает созданные ранее файлы со списком сочетаний числителя и списком сочетаний знаменателя и прогоняет к каждому числу числителя все сочетания знаменателя.
Если же найдено отношения числителя к знаменателю удовлетворяющее условия задачи то происходит наращивание счетчика (t:=t+1;)
и выводит на экран сочетания числителя и знаменателя дающее данный результат. В конце программы выводит количество получившихся отношений заданых сочетаний числителя и знаменателя.
ЗЫ: Если нужен точный результат 2/7 то просто погрешность оставьте ноль, но говорю сразу - таких счетаний нет, они начинаются с (r:=0.104)
=============================================

var command:char;
procedure Chtenie;
var
  f, g: file of integer;
  t,k, l: integer;
  chislo, r: real;
 
begin
  chislo:= 2/7;//требуемый результат 
  writeln('введите диапазон допустимой погрешности ((',chislo:2:3,' + r)&(',chislo:2:3,' - r))');
  readln(r);// допустимая погрешность
  t := 0;//счетчик
  assign(f, 'bd_chislitel');assign(g, 'bd_znamenatel');
  Reset(f);Reset(g);
  while not eof(f) do
  begin
    read(f, k);//k - числитель
    {writeln(k, ' ');}
    while not Eof(g) do
    begin
      read(g, l); // l - знаменатель
      if ((k / l) (chislo + r)) and ((k / l) > (chislo - r)) then
      begin writeln('числитель = ':15,k:6, ' '); writeln('знаменатель = ':15,l:6, ' ');t:=t+1;writeln;end;
    end;Reset(g);
  end;
    close(f);  close(g);
    writeln(#10,'количество отношений сочетаний числителя к знаменателю:= ',t);
    readln;
end;
 
procedure zapis;
const
  n = 9; k = 5; n1 = 100;
 
type
  t = array[1..n1] of integer;
 
var
  x, min, max: t; 
  i, j, r: integer; 
  a, b: integer;
  f, g: file of integer;
 
begin// задаются начальные значения max,min,x
  assign(f, 'bd_chislitel');Rewrite(f);
  assign(g, 'bd_znamenatel');Rewrite(g);
  for j := 1 to k do 
  begin
    max[j] := n - j + 1;
    min[j] := k - j + 1;
    x[j] := min[j]
  end; 
 
  writeln('Сочетания из ', n, ' эл-тов по ', k, ' элементов'); 
 
  while i = k do 
  begin
    for j := k downto 1 do write(x[j], ' '); writeln; 
    r := r + 1; i := 1; 
    a := 1000 * x[1] + 100 * x[2] + 10 * x[3] + x[4]; write(f, a);
    b := 10000 * x[1] + 1000 * x[2] + 100 * x[3] + 10 * x[4] + x[5];write(g, b);
 
    while (i = k) and (x[i] = max[i]) do i := i + 1;
    if i = k then x[i] := x[i] + 1;
    for j := i - 1 downto 1 do 
    begin
      min[j] := x[j + 1] + 1; 
      x[j] := min[j]
    end
  end; 
   close(f);close(g);
end;
 
begin
zapis;Chtenie;
end.

Есть еще немного другой способ

Суть этого же способа что число переводится в строкуd(s:=IntToStr(k)), после чего каждый итый элемент строки переводится отдельно в число слаживаясь в кучу (t:=t+IntToStr(s[i])). затем отнимает от нашего числа, заменя его результатом (k:=k-t); И все повторяется пока k положительное:
(ЗЫ: Предупреждаю если задать число большой разрядности типа 10 значного то может считать очень долго=))

var
  i, k, t: integer;
  kolichestvo: longint;
  s: string;
 
begin
  writeln('введте число');
  t:=0;
  readln(k);
  while k > 0 do
  begin
    s := IntToStr(k);
    for i := 1 to length(s) do
      t := t + StrToInt(s[i]);
    k := k - t; t := 0;
    inc(kolichestvo);//количество итераций
  end;
  writeln(kolichestvo);
end.

первая

Первую сделал. Cмотрите если нужно через div mod то вот:

var
  i, k, t: integer;
  kolichestvo: longint;
  s: string;
 
begin
  write('введите число');
  readln(k);
  while k > 0 do
    begin
     t := (k div 100000) + (k div 10000 mod 10) + (k div 1000 mod 10) + (k div 100 mod 10) + (k div 10 mod 10) + (k mod 10);
     k := k - t;
     inc(i);
  end;
  writeln(i);
readln;
end.

Дана последовательность

Дана последовательность действительных чисел. Вставить действительное число b в последовательность так, чтобы она осталась неубывающей. Сделать нужно с помощью динамического массива.

одномерный массив

имеется одномерный массив А(16) состоящих из целых чисел, видимых с клавиатуры. необходимо поменять местами элементы: 2 и 5, 4 и 9, 7 и 15, 9 и 16; на печать вывести массив А(16) и вновь сформированый в результате перестановки массив В(16)

Поменять местами диагонали

Поменять местами все диагонали квадратной матрицы, оставив на местах максимальные элементы диагоналей.

Помогите пожалуйста!

Вычислить и запомнить средние арифметические значения положительных элементов каждой строки матрицы A(K,L), K <_ l> P.s. <_>