Аватар для Ptrotect0r
1 / 1 / 0
Регистрация: 22.12.2009
Сообщений: 17

Одномерные и двумерные массивы в паскале.

22.12.2009, 11:34. Показов 8123. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Очень прошу помоч с решением заданий по одномерным и двумерным массивам....
У меня ужасный завал с паскалем....
задача:
В одномерном массиве состоящем из n численных элементов вычислить:
а) номер минимального элемента массива
б) сумму элементов массива расположенных между первым и вторыи отрицательными элементами.
Заранее большое спасибо

Добавлено через 53 секунды
Есть кое какие наработки,но они делают не то чо нада....
Первая часть находит минимальный жлемент но не указывает его номер в массмве,а вторая часть находит сумму между первым и паследним элементом,но не между отрицательными....


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program min_even;
var 
a:array [1..10] of integer;
i: integer;
min:integer;
begin
for i:=1 to 10 do begin
writeln('vvedite element massiva');
readln(a[i]) ;
end;
min:=i;
for i:=1 to 10 do
if (a[i]<min) then min:=a[i];
  writeln ('minimalnii elemnt massiva raven:',min);
  readln;
end.


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Program p1;
const MaxN=1000;
var m:array [1..MaxN] of real;
    m2:array [1..MaxN] of real;
    i,k,n:integer;
    summa:real;
begin
writeln ('Vvedite N (razmernosti massiva):');
readln (n);
writeln ('Vvedite sam massiva(elementy ukazati cherez probel):');
for i:=1 to n do read (m[i]); writeln;
k:=0;
for i:=1 to n do
if m[i]<>0 then begin inc(k); m2[k]:=m[i];
  end;
for i:=2 to k-1 do summa:=summa+ m2[i];
writeln ('REZULTAT= ',summa:3:0);
 
readln;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2009, 11:34
Ответы с готовыми решениями:

Одномерные и двумерные массивы
Помогите пожалуйста с решением этих двух задач. К сожалению, я не понимаю как решать подобные задачи. Спасибо за внимание.

одномерные и двумерные массивы
1)Решить уравнение a*x=b для пяти пар значений a и b, заданных в виде двух массивов. Результат поместить в массив X. 2)Дан массив...

Одномерные и двумерные массивы
Здравствуйте! Мне очень нужно что б вы мне помогли в паскале! Я в теме программирования ничего не понимаю. В школе не проходили. Пошел...

10
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
22.12.2009, 11:59
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program min_even;
var 
a:array [1..10] of integer;
i: integer;
min:integer;
begin
for i:=1 to 10 do begin
writeln('vvedite element massiva');
readln(a[i]) ;
end;
min:=1;
for i:=1 to 10 do
if (a[i]<a[min]) then min:=i;
  writeln ('minimalnii elemnt massiva raven:',min);
  readln;
end.
Добавлено через 3 минуты
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
Program p1;
const MaxN=1000;
var m:array [1..MaxN] of real;
    m2:array [1..MaxN] of real;
    i,k,n:integer;
    summa:real;
begin
writeln ('Vvedite N (razmernosti massiva):');
readln (n);
writeln ('Vvedite sam massiva(elementy ukazati cherez probel):');
for i:=1 to n do read (m[i]); writeln;
i:=1;
while (a[i]>=0)and(i<=n) do inc(i);
 
i:=i+1;
summa:=0;
while (a[i]>=0)and(i<=n) do
begin
 summa:=summa+a[i];
 inc(i);
end;
 
writeln ('REZULTAT= ',summa:3:0);
 
readln;
end.
1
 Аватар для Ptrotect0r
1 / 1 / 0
Регистрация: 22.12.2009
Сообщений: 17
22.12.2009, 13:44  [ТС]
первый вариант рабочий,а вот со вторым проблемка, когда указываю между отрицательными элементами числа,он не находит их сумму,тупо ноль выдает в атвете и всё...

Добавлено через 51 минуту
может кто подсказать?
а так же буду очень признателен если кто-нибудь поможет решить задачу вторую с двумерными массивами

Добавлено через 17 минут
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
Program p1;
const MaxN=1000;
var m:array [1..MaxN] of real;
i,k,n:integer;
summa:real;
begin
writeln ('Vvedite N (razmernosti massiva):');
readln (n);
writeln ('Vvedite sam massiva(elementy ukazati cherez probel):');
for i:=1 to n do read (m[i]); writeln;
i:=1;
while (m[i]>=0)and(i<=n) do inc(i);
 
i:=i+1;
summa:=0;
while (m[i]>=0)and(i<=n) do
begin
summa:=summa+m[i];
inc(i);
end;
 
writeln ('REZULTAT= ',summa:3:0);
readln;
end.
вот вариант программы,но она высчитывает сумму если отрицательные элементы стоят на канцах массива,а если элементы стоят в середине,то ответ выдает ноль соотвецтвенно.

Добавлено через 6 минут
вобщем программа рабочая,просто у меня руки не оттуда растут!!!
спасибо mamedovvms
0
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
22.12.2009, 13:53
1.
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
uses crt;
var a:array[1..100] of integer;
    n,i,i1,i2,imn,s,p:integer;
begin
clrscr;
write('Размер массива n=');
readln(n);
writeln('Введите ',n,' элементов массива:');
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
clrscr;
writeln('Массив:');
imn:=1;
for i:=1 to n do
 begin
  write(a[i],' ');
  if a[i]<a[imn] then imn:=i;
 end;
writeln;
writeln('Номер минимального элемента=',imn);
i1:=0;
for i:=1 to n do
if a[i]<0 then
 begin
  i1:=i;
  break;
 end;
if i1=0 then
  begin
   writeln('В массиве нет отрицательных элементов!');
   writeln('Сумма=0');
  end
else if i1=n then
  begin
   writeln('В массиве 1 отрицательный элемент!');
   writeln('Сумма=0');
  end
else
 begin
  for i:=i1+1 to n do
  if a[i]<0 then
   begin
    i2:=i;
    break;
   end;
  if i2=i1+1 then writeln('Между первым и вторым отрицательными нет элементов!')
  else
   begin
    s:=0;
    for i:=i1+1 to i2-1 do
    s:=s+a[i];
    write('Сумма=',s);
   end;
 end;
readln
end.
0
 Аватар для Ptrotect0r
1 / 1 / 0
Регистрация: 22.12.2009
Сообщений: 17
22.12.2009, 15:25  [ТС]
а как преобразовать массив таким образом,чтобы элементы,модуль которых не привышает единицу,распологались сначала,а все остальные потом?
0
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
22.12.2009, 15:42
2.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
uses crt;
const nmax=20;
type  matr=array[1..nmax,1..nmax] of integer;
procedure Vvod(var mt:matr;var x,y:byte);
var i,j:byte;
begin
repeat
write('Количество строк=');readln(x);
until x in [1..nmax];
repeat
write('Количество столбцов=');readln(y);
until y in [1..nmax];
writeln('Введите ',x*y,' целых чисел-элементов матрицы');
for i:=1 to x do
for j:=1 to y do
read(mt[i,j]);
readln;
clrscr;
end;
procedure Harak(var mt:matr;x,y:byte);
{считаем сумму модулей отрицательных нечетных в столбце}
var i,j:byte;
    sm:integer;
begin
for j:=1 to y do
 begin
  sm:=0;
  for i:=1 to x do
  if (mt[i,j]<0)and(mt[i,j] mod 2<>0) then sm:=sm+abs(mt[i,j]);
  mt[x+1,j]:=sm;{и записываем в дополнительную строку}
 end;
end;
procedure Vyvod(var mt:matr;x,y:byte);{вывод матрицы}
var i,j:byte;
begin
for i:=1 to x do
 begin
  write(' ':5);{5 пробелов в начале строки}
  for j:=1 to y do
  write(mt[i,j]:5);{элементы строки}
  writeln;
 end;
writeln;
write('Сумма');{дополнительная строка с суммами}
for j:=1 to y do
write(mt[x+1,j]:5);
writeln;
writeln;
end;
 
procedure Sort(var mt:matr;x,y:byte);
{перестановка столбцов по возрастанию суммы}
var i,j,k:byte;
    buf:integer;{буфер для обмена в строке сумм}
begin
for i:=1 to y-1 do{по строке}
for j:=i+1 to y do
if mt[x+1,i]>mt[x+1,j] then
for k:=1 to x+1 do
 begin
  buf:=mt[k,i];
  mt[k,i]:=mt[k,j];
  mt[k,j]:=buf;
 end;
end;
function Summ(mt:matr;x,y:byte):integer;
var i,j,k,p:byte;
    s,sm:integer;
begin
sm:=0;
for j:=1 to y do
 begin
  k:=0;
  for i:=1 to x do
  if mt[i,j]<0 then
   begin
    k:=1;
    break;
   end;
  if k=1 then
   begin
    s:=0;
    for p:=1 to x do
    s:=s+mt[p,j];
    writeln('В столбце ',j,' сумма=',s);
   end;
  sm:=sm+s;
 end;
Summ:=sm;
end;
var a:matr;
    n,m:byte;
    s:integer;
begin
clrscr;
Vvod(a,n,m);
Harak(a,n,m);
writeln('Исходная матрица:');
Vyvod(a,n,m);
writeln;
Sort(a,n,m);
writeln('Перестановка столбцов:');
Vyvod(a,n,m);
writeln;
s:=Summ(a,n,m);
write('Общая сумма элементов в столбцах с отрицательными элементами=',s);
readln
end.
Добавлено через 10 минут
Преобразовать массив.
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
uses crt;
var a:array[1..100] of real;
    n,i,k,j:integer;
    x:real;
begin
clrscr;
randomize;
write('Размер массива n=');
readln(n);
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=5*random-2;
  write(a[i]:5:1);
 end;
writeln;
writeln;
writeln;
k:=0;
for i:=1 to n do
if abs(a[i])<=1 then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i downto k+1 do
    a[j]:=a[j-1];
    a[k]:=x;
  end;
writeln('Перестановка:');
for i:=1 to n do
write(a[i]:5:1);
readln
end.
readln
end.
0
 Аватар для Ptrotect0r
1 / 1 / 0
Регистрация: 22.12.2009
Сообщений: 17
22.12.2009, 16:13  [ТС]
а как соединить их воедино?

Добавлено через 22 минуты
нужно чтобы этот самый одномерный массив сразу еще и перестанавливался
0
Почетный модератор
 Аватар для Puporev
64312 / 47609 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
22.12.2009, 16:19
Ptrotect0r, А ты скажи ему "фас", может и сам перестановится. Сколько можно мозги пудрить с заданием?
0
 Аватар для Ptrotect0r
1 / 1 / 0
Регистрация: 22.12.2009
Сообщений: 17
22.12.2009, 16:22  [ТС]
прошу прощения,сам сделаю
0
 Аватар для Amid007
63 / 63 / 51
Регистрация: 20.05.2011
Сообщений: 116
20.05.2011, 18:26
program jhsdgja;
uses crt;
label m1;
var a: array [1..10] of integer;
i,min,k,c,b,sum: integer;
begin
clrscr;
k:=0;
for i:=1 to 10 do
begin
write('a[',i,']=');
readln(a[i]);
end;
min:=a[1];
for i:=1 to 10 do
if a[i]<min then min:=a[i];
writeln('min=',min);
for i:=1 to 10 do
begin
if a[i]<0 then
begin
if b=0 then b:=i
else c:=i;
k:=k+1;
if k=2 then goto m1;
end;
end;
m1: for i:=b to c do
sum:=sum+a[i];
writeln('sum= ',sum);
readln;
end.
0
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
30.11.2011, 08:20
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
program abc;
uses crt;
var
n,i,j,summ,nmin,min1,min2:integer;
arr: Array [1..10] of integer;
begin
clrscr;
read(n);
for i:=1 to n do begin
read(arr[i]);
end;
nmin:=1;
for i:=2 to n do begin
if arr[i]<arr[nmin] then nmin:=i;
end;
min1:=0; min2:=0;
for i:=1 to n do begin
if arr[i]<0 then begin min1:=i;
                  break
end;
end;
for i:=min1+1 to n do begin
if arr[i]<0 then begin  min2:=i;
                        break
end;
end;
summ:=0;
for i:=min1+1 to min2-1 do  begin
summ:=summ+ arr[i];
end;
writeln('Nomer min: ',nmin,';','Summa elementov: ',summ);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.11.2011, 08:20
Помогаю со студенческими работами здесь

массивы (двумерные, одномерные)
помогите, пожалуйста, решить задачки! Очень надо! 1. ввести двумерный массив, размерность указать с клавиатуры, преобразовать исходный...

Массивы(одномерные и двумерные)
не доходит до меня=(( 1. Одномерный массив А заполнить случайными числами из диапазона . Переместить нулевые элементы массива в конец,...

Одномерные и двумерные массивы
1. Дано два одномерных массива. Требуется найти максимальные элементы каждого из них и поменять местами. 2. Дан одномерный массив....

Двумерные и одномерные массивы
7. Дана матрица размера 5 x 10. Удалить строку (столбец), содержащую мини-мальный (максимальный) элемент матрицы. 7. Дан массив...

одномерные массивы, двумерные масcивы
одномерные массивы 1. В массиве Y(n) определить номер первого отрицательного элемента. двумерные масcивы 1. Переставить местами...


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

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

Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru