Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
bytyz
0 / 0 / 0
Регистрация: 19.09.2014
Сообщений: 15
1

Выполнение ряда действий с массивами

20.09.2014, 09:23. Просмотров 900. Ответов 16
Метки нет (Все метки)

1) функцию, выполняющую действия над массивами (в соответствии с вариантом)
2) функцию, выполняющую ввод элементов массива с клавиатуры
3) функцию, выполняющую заполнение массива случайными величинами в заданном диапазоне
4) функцию, выполняющую вывод элементов массива на экран в виде таблицы
сумму целых частей элементов массива, расположенных после последнего отрицательного
элемента. Диапазон – [-20;10].
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2014, 09:23
Ответы с готовыми решениями:

Выполнение определенных действий на сайте
Всем привет! Я новичок на КиберФоруме, никак не решался зарегистрироваться здесь, но вот все-таки...

Одновременное выполнение действий
Доброго. Пишу что-то отдаленно напоминающее игру марио, используя windows forms. Нужно сделать, ...

Выполнение действий с очередью
Заполнить очередь 9 случайными вещественными элементами из промежутка . Найти произведение целых...

Последовательное выполнение действий
Всем привет! Почему неверен код: $.when($("#comment").keyup().mouseup(), $("#add").click(),...

Выполнение действий приложения в ВК
Каким образом можно взаимодействовать с игрой вк, через телефон с последующим получением данных?...

16
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27971 / 15698 / 961
Регистрация: 15.09.2009
Сообщений: 67,822
Записей в блоге: 78
20.09.2014, 09:34 2
кнопка поиск - справа вверху.
1
Puporev
Модератор
56619 / 43299 / 29935
Регистрация: 18.05.2008
Сообщений: 103,019
20.09.2014, 09:38 3
Возьми текст этой программы
Составить процедуру, выполняющую заполнение массива случайными величинами в заданном диапазоне
и перепиши под это задание. Писать новую программу на каждый твой чих, извини...
1
bytyz
0 / 0 / 0
Регистрация: 19.09.2014
Сообщений: 15
20.09.2014, 10:04  [ТС] 4
Puporev, переделай пожалуйста!
0
20.09.2014, 10:04
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27971 / 15698 / 961
Регистрация: 15.09.2009
Сообщений: 67,822
Записей в блоге: 78
20.09.2014, 10:08 5
халявщик 80 LVL
1
bytyz
0 / 0 / 0
Регистрация: 19.09.2014
Сообщений: 15
20.09.2014, 10:10  [ТС] 6
magirus, у меня практика по процедурам и функцыям а я в них дно!
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27971 / 15698 / 961
Регистрация: 15.09.2009
Сообщений: 67,822
Записей в блоге: 78
20.09.2014, 10:12 7
так учи, дно, учи...
1
bytyz
0 / 0 / 0
Регистрация: 19.09.2014
Сообщений: 15
20.09.2014, 10:13  [ТС] 8
magirus, уже некогда!
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27971 / 15698 / 961
Регистрация: 15.09.2009
Сообщений: 67,822
Записей в блоге: 78
20.09.2014, 10:16 9
бывает.
1
bytyz
0 / 0 / 0
Регистрация: 19.09.2014
Сообщений: 15
20.09.2014, 10:30  [ТС] 10
Puporev,
Pascal
1
2
3
4
5
6
7
repeat;
readln(k);
until k in [1..2];
if k=1 then vvod1(m,n,-20,25)
else vvod2(m,n);
vyvod(m,n);
summa(m,n);
у меня на этом моменте пишет попытка вызвать процедуру как функцыю!!
0
Puporev
Модератор
56619 / 43299 / 29935
Регистрация: 18.05.2008
Сообщений: 103,019
20.09.2014, 10:44 11
Скопируй мой код и запусти программу.
Кстати в приведеном фрагменте ошибок, кроме ; после repeat не видно.

Добавлено через 4 минуты
Скопировал код из темы по ссылке, никаких ошибок нет.
1
bytyz
0 / 0 / 0
Регистрация: 19.09.2014
Сообщений: 15
20.09.2014, 11:04  [ТС] 12
Puporev, Все ровно курсор появляется после else и пишет попытка вызвать процедуру как функцыю!
0
Puporev
Модератор
56619 / 43299 / 29935
Регистрация: 18.05.2008
Сообщений: 103,019
20.09.2014, 11:20 13
Значит ты влез в код и что-то там испакостил, скопируй у себя и выложи в тему.
1
bytyz
0 / 0 / 0
Регистрация: 19.09.2014
Сообщений: 15
20.09.2014, 12:08  [ТС] 14
Puporev,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Program bytyz;
uses crt;
const nmax=100;
type mas= array[1..nmax] of integer;
function vvod1(var x:mas;var n:byte;a,b:integer):integer;
var i:byte;
begin
repeat
write('Ââåäèòå ýëåìåГ*ГІ îò 2 äî ',nmax,' n=');
readln(n);
until n in [2..nmax];
for i:=1 to n do
x[i]:=a+random(b-a+1);
clrscr
end;
function vvod2(var x:mas;var n:byte):integer;
var i:byte;
begin
repeat
write('ââåäèòå ýëåìåГ*ГІ îò 2 äî ?? ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ* öåëûå ГЁ îòðèöГ*òåëüГ*ûå Г·ГЁГ±Г«Г*');
for i:=1 to n do
 begin
  write('el[',i,']=');
  readln(x[i])
 end;
clrscr
end;
function vyvod(x:mas;n:byte):integer;
var i:byte;
begin
writeln('ГЊГ*Г±ГЁГў');
for i:=1 to n do
write(x[i]:4);
writeln;
end;
function summa(x:mas;n:byte):integer;
var i,i1,i2:byte;
    s:integer;
begin
i1:=0;
i2:=0;
i:=1;
while(i<=n)and(i2=0) do
 begin
  if x[i]<0 then
  if i1=0 then i1:=i
  else i2:=i;
  i:=i+1;
 end;
if i2=0 then write('Г‚ Г¬Г*Г±ГЁГўГҐ Г*ГҐГІ îòðèöГ*òåëüГ*ûõ ýëåìåГ*òîâ')
else
 begin
  s:=0;
  for i:=i1+1 to i2-1 do
  s:=s+x[i];
  write('ñóììГ* ýëåìåГ*òîâ ìåæäó 1 ГЁ 2 îòðèöГ*òåëüГ*ûìè ýëåìåГ*ГІГ*ìè=',s);
 end;
end;
var m:mas;
    n,k:byte;
begin
randomize;
writeln('Âûáåðèòå ñïîñîá Г§Г*ïîëГ*ГҐГ*ГЁГї Г¬Г*Г±ГЁГўГ*');
writeln('1-ñëó÷Г*Г©Г*ûìè Г·ГЁГ±Г«Г*ìè');
writeln('2-ââîäîì Г± ГЄГ«Г*ГўГЁГ*òóðû');
repeat
readln(k);
until k in [1..2];
if k=1 then vvod1(m,n,-20,25)
else vvod2(m,n);
vyvod(m,n);
summa(m,n);
end.
0
Puporev
Модератор
56619 / 43299 / 29935
Регистрация: 18.05.2008
Сообщений: 103,019
20.09.2014, 12:36 15
Ошибок в программе нет, только непонятно нахрена текстовые сообщения поменял на тупые.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Program bytyz;
uses crt;
const nmax=100;
type mas= array[1..nmax] of integer;
function vvod1(var x:mas;var n:byte;a,b:integer):integer;
var i:byte;
begin
repeat
write('Ââåäèòå Г°Г*çìåð Г¬Г*Г±Г±ГЁГўГ* îò 2 äî ',nmax,' n=');
readln(n);
until n in [2..nmax];
for i:=1 to n do
x[i]:=a+random(b-a+1);
clrscr
end;
function vvod2(var x:mas;var n:byte):integer;
var i:byte;
begin
repeat
write('Ââåäèòå Г°Г*çìåð Г¬Г*Г±Г±ГЁГўГ* îò 2 äî ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ* öåëûå ГЁ îòðèöГ*òåëüГ*ûå Г·ГЁГ±Г«Г*');
for i:=1 to n do
 begin
  write('el[',i,']=');
  readln(x[i])
 end;
clrscr
end;
function vyvod(x:mas;n:byte):integer;
var i:byte;
begin
writeln('ГЊГ*Г±ГЁГў');
for i:=1 to n do
write(x[i]:4);
writeln;
end;
function summa(x:mas;n:byte):integer;
var i,i1,i2:byte;
    s:integer;
begin
i1:=0;
i2:=0;
i:=1;
while(i<=n)and(i2=0) do
 begin
  if x[i]<0 then
  if i1=0 then i1:=i
  else i2:=i;
  i:=i+1;
 end;
if i2=0 then write('Г‚ Г¬Г*Г±ГЁГўГҐ Г*ГҐГІ îòðèöГ*òåëüГ*ûõ ýëåìåГ*òîâ')
else
 begin
  s:=0;
  for i:=i1+1 to i2-1 do
  s:=s+x[i];
  write('ñóììГ* ýëåìåГ*òîâ ìåæäó 1 ГЁ 2 îòðèöГ*òåëüГ*ûìè ýëåìåГ*ГІГ*ìè=',s);
 end;
end;
var m:mas;
    n,k:byte;
begin
randomize;
writeln('Âûáåðèòå ñïîñîá Г§Г*ïîëГ*ГҐГ*ГЁГї Г¬Г*Г±ГЁГўГ*');
writeln('1-ñëó÷Г*Г©Г*ûìè Г·ГЁГ±Г«Г*ìè');
writeln('2-ââîäîì Г± ГЄГ«Г*ГўГЁГ*òóðû');
repeat
readln(k);
until k in [1..2];
if k=1 then vvod1(m,n,-20,25)
else vvod2(m,n);
vyvod(m,n);
summa(m,n);
end.
Добавлено через 6 минут
Кстати, а в каком Паскале ты запускаешь?

Добавлено через 15 минут
Так напиши
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Program bytyz;
uses crt;
const nmax=100;
type mas= array[1..nmax] of real;
{ввод с клавиатуры}
function vvod1(var x:mas;var n:byte):integer;
var i:byte;
begin
repeat
write('Введите размер массива от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Введите элементы массива целые и отрицательные числа');
for i:=1 to n do
 begin
  write('el[',i,']=');
  readln(x[i])
 end;
clrscr
end;
{заполнение случайными числами}
function vvod2(var x:mas;var n:byte;a,b:integer):integer;
var i:byte;
begin
repeat
write('Введите размер массива от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
for i:=1 to n do
x[i]:=a+(b-a)*random;
clrscr
end;
{вывлд на экран}
function vyvod(x:mas;n:byte):integer;
var i:byte;
begin
writeln('Масcив');
for i:=1 to n do
write(x[i]:0:2,' ');
writeln;
end;
{сумма за последним отрицательным}
function summa(x:mas;n:byte):integer;
var i,ip:byte;
    s:real;
begin
ip:=0;
i:=n;
while(i>=1)and(ip=0) do
 begin
  if x[i]<0 then ip:=i
  else i:=i-1;
 end;
if ip=0 then write('В масиве нет отрицательных элементов')
else
 begin
  s:=0;
  for i:=ip+1 to n do
  s:=s+x[i];
  write('сумма элементов после последнего отрицательного элемента=',s);
 end;
end;
var m:mas;
    n,k:byte;
    x:integer;
begin
randomize;
writeln('Выберите способ заполнения массива');
writeln('1-вводом с клавиатуры');
writeln('2-случайными числами');
repeat
readln(k);
until k in [1..2];
if k=1 then x:=vvod1(m,n)
else x:=vvod2(m,n,-20,10);
x:=vyvod(m,n);
x:=summa(m,n);
end.
0
Sergio Leone
2470 / 1115 / 580
Регистрация: 07.06.2014
Сообщений: 3,259
20.09.2014, 13:14 16
Puporev, или я чего-то не понимаю, или одно из двух!
Я от Вас такого "подвоха" не ожидал!!

Цитата Сообщение от Puporev Посмотреть сообщение
{ввод с клавиатуры}
function vvod1(var x:mas;var n:byte):integer;
var i:byte;
begin
.....
clrscr
end;
{заполнение случайными числами}
function vvod2(var x:mas;var n:byte;a,b:integer):integer;
....
clrscr
end;
{вывлд на экран}
function vyvod(x:mas;n:byte):integer;
....
writeln;
end;
почему vvod1 vvod2 vyvod ФУНКЦИИ?!!
ДА ещё и такие функции, которые возвращают МУСОР (ибо Вы им ничего не присваиваете, пользуясь "мягкотелостью" Паскаля, который такое безобразие допускает! Нормальные компиляторы строгих ЯФУ не скомпилят функцию, в которой нет возврата значения)
Мне не понятно, ЗАЧЕМ Вы так написали?
Но описались бы, это бывает, но Вы предлагает решение, где обходите то, что это функции.
ЗАЧЕМ?!
0
Puporev
Модератор
56619 / 43299 / 29935
Регистрация: 18.05.2008
Сообщений: 103,019
20.09.2014, 13:56 17
Лучший ответ Сообщение было отмечено bytyz как решение

Решение

Цитата Сообщение от Sergio Leone Посмотреть сообщение
почему vvod1 vvod2 vyvod ФУНКЦИИ?!!
Потому что автору нужно.
Цитата Сообщение от Sergio Leone Посмотреть сообщение
ДА ещё и такие функции, которые возвращают МУСОР
А какая разница что они возвращают?Это по сути процедуры, выполняющие ввод и вывод массива.
0
20.09.2014, 13:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2014, 13:56

Выполнение действий по расписанию
В моей программе пользователь может добавлять различные события и устанавливать время для них....

Выполнение действий с отладчиком
1. Познакомьтесь с работой программы DEBUG 2. Напишите в ней ассемблерную программу 3. Выполните...

Выполнение действий с браузера
Здрайствуйте, подскажыте как собирать с WebBrowser1 определенную информацию?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru