Mod (остаток от деления), использование в массиве |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Mod (остаток от деления), использование в массиве |
Дима |
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: Дима Репутация: 0 |
требуется сформировать массив, содержаший положительные элементы, расположенные во второй половине (включая середину) исходного массива.(PASCAL)
Подскажите пожайлуста, как мне найти эти элементы (я не прошу решать всю задачу). Как я понимаю это надо делать через функцию mod заранее благодарен!!! |
volvo |
Сообщение
#2
|
Гость |
For i := n div 2 to n do ... Если N нечетное - могут потребоваться дополнительные телодвижения... |
Дима |
Сообщение
#3
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: Дима Репутация: 0 |
а как сделать чтобы он выводил только числа расположенные во второй половине (включая середину)?
Вот мооя прог-а: PROGRAM N6_4; const nmax=10; var a,b:array[1..nmax] of real; na,nb:integer;{число элементов в массивах} ia,ib:integer;{номер очередного элементов массивов} begin repeat writeln('vvedite chislo elementov ne bolee ',nmax); readln(na); if (na<=0) or (na>nmax) then writeln('Error') until (na>0) and (na<=nmax); for ia:=1 to na do begin writeln('vvedite ',ia,'-y element'); readln(a[ia]); end; nb:=0; for ia:=1 to na do if (a[na] div 2)<>0 {and (ia>0)} then begin nb:=nb+1; b[nb]:=a[ia]; end; writeln('chilo viybrannyh elementov=',nb); if nb>0 then begin write('vibrannie elementi:'); for ib:=1 to nb do write(' ',b[ib]:6:1); readln(b[ib]); writeln; end; readln; end. Сообщение отредактировано: Дима - |
volvo |
Сообщение
#4
|
Гость |
Ну, я же показал тебе цикл... При таком цикле как раз и будет просматриваться только вторая половина массива...
|
Дима |
Сообщение
#5
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: Дима Репутация: 0 |
|
volvo |
Сообщение
#6
|
Гость |
Во-первых, что ты ЭТИМ пытаешься добиться:
a[na] div 2? Какой это пункт задания? Ну, а во-вторых, для массива Array ... Of Real оператор DIV просто неприменим - это целочисленное деление... |
Дима |
Сообщение
#7
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Реальное имя: Дима Репутация: 0 |
этим я хотел разбить массив на 2 части
|
мисс_граффити |
Сообщение
#8
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
a[na] div 2 Это работа не с массивом в целом, а с одним элементом. div - это целочисленное деление, он определен для целых чисели, но не массивов. как работать только со второй частью массива - volvo показал. тебе осталось в теле цикла проверять, положительный ли элемент, и если да, записывать в новый массив. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Текстовая версия | 10.10.2024 9:35 |