Заполнение массива и вычисление суммы элементов

Задача: 

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

Алгоритм решения задачи: 

Для решения подобного рода задач иногда бывает уместно использовать цикл с постусловием (repeat).

Программа на языке Паскаль: 

const n = 10;
var
    arr: array[1..n] of integer;
    sum: integer;
    i: byte;
 
begin
 
    i := 1;
    sum := 0;
    repeat
        write ('Число: ');
        readln(arr[i]);
        sum := sum + arr[i];
        i := i + 1
    until (arr[i-1] = 0) or (i > n);
 
    for i := 1 to n do
        write (arr[i],' ');
 
    writeln;
    writeln ('sum = ', sum);
 
readln
end.

Комментарии

Паскаль

Доброго времени суток, помоги написать программу она должна выходить все числа кратные 3 , и после 3 должна выдавать 0

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

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

Var r,l,s: real;
Begin
        Write('radius: ');
        Readln(r);
 
        l:=2*PI*r;
        s:=PI*r*r;
 
        Writeln('PI=' , PI);
        Writeln('circuit: ',l:7:2);
        Writeln('square: ',s:7:2);
End.

Когда ты тупенький

То чувство, когда ты такую простую задачу превратил во что-то непонятное.
Или мой вариант решения (неверный):

Label 1;
type
 mas = array [0..4] of integer;
var
 M : mas;
 i, n : integer;
begin
n:= 0;
 for i := 0 to 4 do
   begin
    write('Заполните массив ');
    read(M[i]);
       if M[i] = 0 then Goto 1
       else
    n := n + M[i];
   end;
1: writeln(M);
write(n);
end.

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

Пожалуйста, помогите решить: В массиве А(А1,А2,.....Аn) имеется хотя бы один нуль. Вычислить сумму элементов после первого "0".

Помогитп с решение задания

В представленном фрагменте программы значения одномерного массива задаются с помощью оператора цикла. Чему будет равно [5]? Нарисовать блок-схему к представленному фрагменту.
For i : = 1 To 5 Do
Begin
A [2*i – 1] :=i ;
A [2*i ] := i*i ;
End.

С++

Помогите с заданием
Найти номер первого парного числа последовательности натуральных чисел, заданных пользователем с клавиатуры, с не парным номером.

Задача

Помогите решить задачу
Є цілочислова матриця розмірністю 8x8, яка характеризує взаємні обмеження рухливості між деталями у складальні одиниці. Елементами матриці можуть бути 0 (означає відсутність обмеження ) і 1 (означає наявність обмеження). Причому рядки вказують на обмеження у позитивному напрямку, а стовпчики – у від’ємному.
Визначити, яка деталь або деталі мають найбільшу кількість обмежень з боку інших деталей. Вивести на екран номери таких деталей і номери деталей, що їх обмежують. Початковий стан матриці сформувати за допомогою операторів присвоювання. Орієнтовний вид матриці наведений далі.
M:array[1..8,1..8] of integer =
((0,1,0,1,0,0,1,0),
(1,0,0,0,0,1,0,1),
(0,1,0,0,0,0,1,0),
(0,0,0,0,0,0,0,0),
(0,1,0,0,0,0,0,0),
(1,1,0,0,0,0,1,1),
(1,1,1,1,1,1,0,1),
(0,1,0,1,0,1,1,0));
За умовою завдання 10 визначити чи існують такі деталі, які обмежені усіма іншими деталями складальної одиниці. Якщо такі деталі є, тоді вивести на екран номери цих деталей і напрямок (+ або -) повного обмеження. Початковий стан матриці сформувати за допомогою операторів присвоювання.

Не понятно, что понимается

Не понятно, что понимается под деталью. Если это ячейка таблицы, то если в ней записан 0, то что это значит? Что она ничего не ограничивает? Однако деталь может не ограничивать одну другую деталь, но ограничивать третью.

const N = 8;
var
    arr: array[1..N,1..N] of byte;
    i,j, row, col, it, max: byte;
begin
    randomize;
    for i:=1 to N do begin
        for j:=1 to N do begin
            arr[i,j] := random(2);
            write(arr[i,j]:2);
        end;
        writeln;
    end;
 
    row := 0;
    max := 0;
    for i:=1 to N do begin
        it := 0;
        for j:=1 to N do 
            if arr[i,j] = 1 then
                it := it + 1;
        if it > max then begin
            max := it;
            row := i;
        end;
    end;
    writeln('Больше всего единиц в строке: ', row);
 
    col := 0;
    max := 0;
    for j:=1 to N do begin
        it := 0;
        for i:=1 to N do 
            if arr[i,j] = 1 then
                it := it + 1;
        if it > max then begin
            max := it;
            col := j;
        end;
    end;
    writeln('Больше всего единиц в столбце: ', col);    
    writeln('Есть подозрение, что самая ограниченная деталь находится на пересечении данных строки и столбца');
end.

помогите решить задачу

var 
p,k,i : integer; 
a: array [1..200] of integer;
BEGIN
i:=1;
writeln('Введите количество машин');
readln(k);
writeln('Введите max скорости машин поочерёдно');
for p:=1 to k do read (a[p]);
for p:=1 to k do write (a[p], ' ');
readln
END.

нужно задать условие, что если a[1]:=50, то все остальные ячейки должны иметь значение не большее 50 даже если я введу 70 или больше

var k,i : integer; a: array

var 
k,i : integer; 
a: array [1..200] of integer;
BEGIN
    writeln('Введите количество машин');
    readln(k);
    writeln('Введите max скорости машин поочерёдно');
    read(a[1]);
    if a[1] = 50 then
        for i:=2 to k do begin
            read(a[i]);
            if a[i] > 50 then
                a[i] := 50;
        end
    else
        for i:=2 to k do
            read(a[i]);
 
    for i:=1 to k do write (a[i], ' ');
    writeln;
    readln;
END.

Помогите пожалуйста составить одномерный массив

Найти во сколько раз max>min;
На сколько min Поменять местами min и max
c помощью randomize

const N = 15; var arr:

const N = 15;
var 
    arr: array[1..N] of integer;
    min, max, i: byte;
    b: integer;
begin
    randomize;
    for i:=1 to N do begin
        arr[i] := random(100);
        write(arr[i],' ');
    end;
    writeln;
    min := 1;
    max := 1;
    for i:=1 to N do begin
        if arr[i] < arr[min] then
            min := i;
        if arr[i] > arr[max] then
            max := i;
    end;
    writeln('min=',arr[min],' max=',arr[max]);
    writeln('max > min в ', arr[max]/arr[min]:5:2, ' раз');
    writeln('min < max на ', arr[max]-arr[min]);
    b := arr[min];
    arr[min] := arr[max];
    arr[max] := b;
    for i:=1 to N do
        write(arr[i],' ');
    writeln;
end.

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

Помогите пожалуйста написать программу .формула для определения промежуточной величины Z, Z=max(Xi), (i=1......7). Формула для определения элементов массива (y1,y2,......y20) Yi=(i+z)^2/3

Объясните пожалуйста как

Объясните пожалуйста как написать программу по заданию z=min (cosXi), (i=1,2,....7)
Yi=(i+z)^2/3

Заполнить массив из 20 целых

Заполнить массив из 20 целых чисел. Удалить одинаковых "соседей" из массива

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

В одномерном массиве (заполнение массива случайными числами) найти сумму отрицательных элементов. Если эта сумма меньше -100, то прибавить минимальный положительный элемент.

const N = 10;var arr:

const N = 10;
var
    arr: array[1..N] of integer;
    i, min_positive, sum_negative: integer;
 
begin
    randomize;
    for i:=1 to N do begin
        arr[i] := random(100) - 50;
        write(arr[i]:4);
    end;
    writeln;
 
    min_positive := 49; // самое большое число возможное от random(100)-50
    sum_negative := 0;
    for i:=1 to N do begin
        if arr[i] <= 0 then
            sum_negative := sum_negative + arr[i]
        else
            if arr[i] < min_positive then
                min_positive := arr[i];
    end;
 
    writeln(sum_negative);
 
    if sum_negative < -100 then begin
        sum_negative := sum_negative + min_positive;
        writeln(sum_negative);
    end;
 
readln;
end.

вопрос

а если все числа будут отрицательные и их сумма будет меньше - 100, то к ней прибавится 49?

Да. Это логическая

Да. Это логическая ошибка.

Можно добавить флаг в ветку else:
if flag = 0 then flag :=1;

и в конце:
if (sum_negative < -100) and (flag = 1) then ...

помогите решить

Определить пористость материала по формуле (П,%): П=(1-Ро/Р)*100
Где Р0 объемная масса, кг/м3;
Р-истинная плотность, кг/м3

Определить значение числа У по формуле:
1)У=k=1Σ*B kk*X 2kг"
2)У= Мах(3а; 0,85) если а<=1;
а/3 , если 1<а<25;
а/4, в других случаях.