1. Ошибка синтаксиса: пропущен пробел между mod и j в строке while (i modj <> 0) and (i <= lim) do inc(i);
2. В цикле for не допустимо присваивание переменной счетчика. В данном случае в циклу for i:=1 to LIMIT происходит увеличение переменной на 1: Inc(i)
3. Логическая ошибка. В цикле while надо перебирать делители от числа 2 до lim. Поэтому второе условие (i<=lim) должно быть записано так: (j<=lim). И увеличение переменной же j: Вместо Inc(i) должно быть Inc(j)
4. Неверное условие if (i > lim) необходимо заменить на if (j > lim)
5. В операторе печати надо указать разделитель пробел: write(i, '_');
6. Ошибка синтаксиса: пропущена точка после последнего end.
В итоге программа примет вид:
program test;
const LIMIT = 500;
var i,j, lim: word;
begin
writeln;
for i:=1 to LIMIT do begin
j:=2;
lim:=round(sqrt(i));
while (i mod j <> 0) and (j <= lim) do inc(j);
if (j > lim) then write(i,' ');
end;
writeln
end.
Результат выполнения программы:
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
char key;
int i;
int a[255];
float arifm=0,sum=0,b=0;
cout << "Введите числа от а до б через пробел! (Условие: a < b)"<<endl;
for (i=0; i < 254; i++){
cin >> a[i];
if(i >= 1 && a[i] < a[i-1]){
break;
}
b++;
}
cout << "Получили числа: ";
for (i=0;i < b; i++){
cout << " " << a[i];
sum += a[i];
}
cout << endl<< "Сумма чисел = " << sum << endl;
arifm = sum / (b);
cout << "Среднее арифметическое = " << arifm << endl;
system ("pause");
}
Только не дописал выход из цыкла.. сейчас он при нарушение условия а < б
Если надо думаю справитесь с do while