evatautes
?>

Составьте программу (на паскале )найдите все значения у на промежутке от -5 до 5 .функция y = 2x +4

Информатика

Ответы

Дмитрий-Олейникова

program functiya;

var

 x, y: integer;

begin

 for x := -5 to 5 do

 begin

   y := 2 * x + 4;

   writeln(y, ' ');

 end;

end.

larisau41

Ты поддерживаешь переменные min и max для хранения наибольшего и наименьшего элементов массива. Когда ты вводишь элемент, ты проверяешь - если введённый элемент больше наибольшего, ты обновляешь наибольший. Если введённый элемент меньше наименьшего, ты обновляешь наименьший.

Важно задать min и max такие начальные значения, чтобы наибольший и наименьший элементы посчитались правильно. Для этого max нужно присвоить настолько большое значение, что при проверке задачи его не будут вводить. Для min нужно задать очень маленькое значение, которое тоже гарантированно не будет введено. Обычно диапазон вводимых чисел оговаривается в условии.


Код

var

 a: array[1..5] of integer;

 i, max, min: integer;


begin

 max := -32000;

 min := 32000;

 for i := 1 to 5 do

 begin

   read(a[i]);

   if a[i] > max then max := a[i];

   if a[i] < min then min := a[i];

 end;

 writeln(max - min);

end.

Dodkhobekovich1683
Ошибка 1

using namespace::std;

Верно использовать пространство имён таким образом:

using namespace std;

Ошибка 2

Вы объявляете итератор ещё перед циклом, причём вместе с массивом. Надо понимать, что итератор - это счётчик, int. А массив - это совокупность таких частичек int. Не нужно всё под одну крышу загонять. Объявляйте итераторы (если они Вам не нужны, например, для результирующих счётов или прочего - по ситуации) в самом цикле, не мучайте глаза программистов.

Правильно объявлять так:

int arr[] = {1,2,3,4,5,6,7,8,9};

for(int i = ..)

Ошибка 3

Вы начинаете цикл с 1, хотя Вам нужно пройтись по всему массиву, начиная с самого первого элемента. Поскольку всё строится на десятичной системе счисления (от 0 до 9), то первый элемент будет иметь номер 0. Следовательно, цикл следовало бы начать с нуля.

Правильно объявить цикл нужно так:

for(int i = 0; ..)

Ошибка 4

Поскольку вы не указываете размер массива, а потом считаете 10 элементов (хотя это уже неправильно, цикл возьмёт один лишний, уже выходящий из заданного Вами массива кусочек и отнимет от него 20)

Правильно было бы объявлять условие цикла так:

for(int i = 0; i < (sizeof(arr)/sizeof(int)); i++){/*...*/}

То есть мы берём размер массива в байтах, размер типа int в байтах (по сути это константа - 4 байта, но на разных версиях оси она может соответствовать разным значениям) и делим размер массива на размер типа, массив которого мы создали (в нашем случае - int)

А лучше всего вынести выражение sizeof(arr)/sizeof(int) в отдельную переменную:

int arraySize = sizeof(arr)/sizeof(int);

for(int i = 0; i < arraySize; i++)

Разница в том, что при каждой итерации цикл считает заново размер массива - а это лишние операции.

Ошибка 5

Так как Вы хотите вывести каждое результатирующее число через пробел,  Вам нужно выводить его через каждую итерацию цикла, а не после него. Ваша ошибка будет заключаться в том (если не учитывать предыдущие), что цикл инкрементирует переменную i до 10 и выведет на консоль arr[i], то есть arr[10] элемент, которого как раз-таки нет в массиве (объяснил в 3 ошибке)

Правильно было бы выводить так:

for(int i = 0; i < arraySize; i++){

arr[i] = arr[i] - 20;

cout << arr[i] << " ";

}

Замечание 6

Функция типа int main() должна всегда возвращать что-то. Это стандарт языка.

То есть, правильно было бы в конце добавить:

return 0;

Итоговый код и проверка представлены на в приложении:


Есть массив, не получается от каждого элемента отнять 20? сделать на с++ #include pch.h #include u
Есть массив, не получается от каждого элемента отнять 20? сделать на с++ #include pch.h #include u

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Составьте программу (на паскале )найдите все значения у на промежутке от -5 до 5 .функция y = 2x +4
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Александрович784
Fomin Korablev1781
Lolira64
Давид-Ольга
ЕленаАлександровна381
alanatan5757
Борисовна_Дмитриевич1003
Bobkov
iraimironova
catsk8
fafina12586
mmreznichenko
VadimovnaIgor
oyunabaduraeva
mototeh69
▲