Code: var i,N,k:integer; C: array of integer; m:real; begin //---------------------- m:=0; k:=0; Readln(N); SetLength(C,N); //тут как-то заполнить ниже, по вкусу //--------------------- for i:=0 to N-1 do begin if ((i mod 2)=0) then begin m:=m+C[i]; k:=k+1; end; end; m:=m/k; Writeln(m); end; // Подправил почти до конца
Ты малость не там спросил. Тут как бы в вк авторизоваться, или страницу на сокетах получить, а про БД промелькают раз в полгода темы. Лучше на программистских форумах это спрашивать. PS Genco я так понимаю? deBoss Во-первых я устал мучать переводчика. Во-вторых толком не понял что именно нужно сделать.
Какие ошибки? Компиляции? Выполнения? Визуально код рабочий. Может ты неправильно оформил просто? Только в конце надо имхо не на N делить, не на общее количество элементов, а на количество четных. Если я правильно понял условия задачи.
Ну это,видимо, потому, что я не привел код от 1-й строчки до последней, только принципиальные моменты, понадеявшись на то,что остальное будет очевидно. Оставшиеся 5% кода/оформления - руками Импровизированные многоточия именно на это и намекают)) И да, там кое-что забыл я. O_O Палево) Он самый. Чистая правда - на programmersforum мне уже почти всё объяснили, оставшееся добиваю руками.
проблемка на семерке.. не отрабатывает функция GetThreadContext().. GetLastError возвращает 998. на XP все путем..
Всем привет.Допустим есть динамический массив, можно не выделять память сразу под определенное кол-во элементов, а сначала под первый элемент, потом под второй и так далее?
а почему +2, а не +1?и еще: допустим выделяем сначала память под первый элемент, тут все норм, а когда уже будем выделять память под второй первый так скажем "затираться" не будет?
Привет! В принцыпе можно. Но только здесь нужно будет использовать даже не динамический массив. Лучше будет сделать какую то структуру, в которой будем сохранять указатели на элементы нашего "массива". Если нужно сделать новый элемент - выделяем память под него и заносим в нашу структуру указатель на эту память. Также, если указателей слишком много будет и в нашей структуре не останется места, мы должны будем изменить размер структуры (Realloc). Чтобы реализовать этот вариант, надо будет ознакомится с функциями для работы с памятью.
Ничего не затреться. С другой стороны, разве у себя на компе сложно проверить, затреться ли? Твой вопрос не совсем понятно был сформулирован.
Chrome~На сколько я тебя понял эта структура - список(односвязный или двусвязный, эт не важно), что в поем варианте не подходит.
Мой первый пост, - жто так, для общего развития. Я уже потом понял, что тебе действительно было нужно. Конечно же, с помощью SetLength можешь установить новый размер массива, и, если он будет больше текущего, то данные не потеряются. То есть, можешь смело выполнять такие функции: Code: SetLength(arr, 1); SetLength(arr, 2); ... SetLength(arr, n) И все будет норм. Данные, которые находились в предыдущих ячейках не будут утеряны.
Почему +2. Если не ошибаюсь, то high возвращает номер последнего элемента. Тоесть, если у нас есть динамический массив с n элементов, то функция high должна вернуть значение n - 1 (так как нумерация элементов начинается от 0, а не от 1). Тоесть, что бы установить размер массива в n + 1, мы должны добавить именно 2 до значения, которое вернет нам функция high.
+2 ибо high вернет максимальный индекс, т.е. в массиве [0..3] это будет 2 и чтоб массив стал больше на один элемент([0..4]), необходимо добавить 2
Теперь возник такой вопрос: надо удалить один элемент из массива;понятно, что произойдет смешение эл-тов находящихся выше на одну позицию назад, но можно ли как-нибудь освободить память занимаемую одним эл-том? Code: SetLength(arr,n);//допустим было так ...//смещаем все эл-ты на одну позицию SetLength(arr, n-1);//уменьшаем выделяемую память(так правильно,или я ошибаюсь?)
Составить программу определения среднего арифметического ненулевых элементов 2-ого столбца матрицы, плиз!
Да, все абсолютно правильно. Также, если ты хочешь удалить последний элемент, то даже не нужно делать никаких смещений.
помогите, над написать прогу нахождения среднего арифметического элементов с четными номерами массива PHP: var i,N,k:integer; C: array[1..12] of integer; m:real; begin m:=0; k:=0; writeln(c[]); Readln(N); for i:=0 to N-1 do begin if ((i mod 2)=0) then begin m:=m+C[i]; k:=k+1; end; end; m:=m/k; Writeln(m); end. чет не пашет!!!
Code: program Project2; {$APPTYPE CONSOLE} var i, N, k: integer; C: array[1..12] of integer; begin for i := 0 to 12 do begin C[i] := random(10); writeln(c[i]); end; writeln; n := 0; k := 0; i := 2; while i <= 12 do begin inc(k); n := n + c[i]; i := i + 2; end; writeln(n/k); readln; end. эм, а размерность массива дана?