Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 1
Регистрация: 03.09.2012
Сообщений: 20
1

Если массив А не равен массиву В, то сформировать массив С, где ci=ai+bi

04.11.2012, 14:31. Показов 2118. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Заданы два одномерных массива A и B. Если массив А не равен массиву В, то сформировать массив С, где ci=ai+bi. Если массивы А и В равны, то переписать массив А в массив С.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2012, 14:31
Ответы с готовыми решениями:

Сформировать массив: первый элемент равен A, второй равен B, каждый последующий - равен сумме всех предыдущих
Помогите с задачей . Условие : даны числа А и В. Сформировать и вывести целочисленный массив...

Сформировать массив n элементов где каждый элемент массива равен сумме двух предыдущих
Сформировать массив n элементов где каждый элемент массива равен сумме двух предыдущих элементов,...

Двумерный массив.Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и записать их в отдельный массив.
помогите составить программу. во задание:Дан массив 5 х 5. Определить сумму элементов тех строк,...

Сформировать одномерный массив В, в котором элемент равен 1, если элементы столбца матрицы возрастающая последовательно
Помогите написать программу. Дана матрица А размером MxN. Сформировать одномерный массив В, в...

15
1 / 1 / 0
Регистрация: 08.11.2010
Сообщений: 24
04.11.2012, 14:46 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
const
 n=3;
var
 a: array[1..n] of integer;
 b: array[1..n] of integer;
 c: array[1..n] of integer;
 i: integer;
 br: boolean;
begin
 
 br:= true;
 writeln('Ââåäèòå ýëåìåíòû ìàññèâà À');
 for i:=1 to n do
  begin
  readln(a[i]);
  end;
 writeln('Ââåäèòå ýëåìåíòû ìàññèâà B');
 for i:=1 to n do
  begin
  readln(b[i]);
  end;
  
 for i:=1 to n do
  begin
   if a[i]<>b[i] then
    begin
     br:=false;
     break;
    end;
   end;
 
 if br=false then
  begin
  for i:=1 to n do c[i]:=a[i]+b[i];
  end
 else
   begin
  for i:=1 to n do c[i]:=a[i];
  end;
  writeln('Ýëåìåíòû ìàññèâà C');
 for i:=1 to n do
  begin
  write(c[i],' ');
  end;
end.
1
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
04.11.2012, 14:54 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
27
 program M;
 Var a,b,c:array [1..1000] of integer;
 V:boolean;
J,I:integer;
Begin
V:=true;
Read(j);//количество чисел
For I:=1 to j do
  Read(a[i]);
for I:=1 to j do
 Read(b[i]);
 
For I:=1 to j do
 Begin
   If a[i]<>b[i] then
    V:=false
     Else v:=true;
 End;
 If v=true then
  c:=a
 Else begin
   For I:=1 to j do
   C[i]:=(a[i]+b[i]);
End;
   For I:=1 to j do
    Write(c[i], ' ');
End.
или так. На смартфоне медленно набирать
1
4 / 4 / 0
Регистрация: 10.10.2012
Сообщений: 27
05.11.2012, 20:49 4
а как это будет виглядеть на с++? подскажите плис

Добавлено через 1 минуту
Izobara, а как это будет виглядеть на с++? подскажите плис
1
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
05.11.2012, 20:53 5
Добавлено через 1 минуту
Izobara, а как это будет виглядеть на с++? подскажите плис[/QUOTE]
Не знаю с++, к сожалению. Спросите в соответствующем разделе.
1
4 / 4 / 0
Регистрация: 10.10.2012
Сообщений: 27
05.11.2012, 21:17 6
ок. спасибо
1
11 / 8 / 9
Регистрация: 05.11.2012
Сообщений: 65
05.11.2012, 21:40 7
вот более "правильный" код
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
 var a, b, c: array of integer;
    n, i:integer;
    v:boolean;
begin
 
  writeln('Введите длину массива');
  readln(n);
  n:=n+1;
  setlength(a, n);
  setlength(b, n);
  setlength(c, n);
  n:=n-1;
  writeln('Введите первый массив:');
  for i:=1 to n do
   readln(a[i]);
  v:=true;
  writeln('Введите второй массив:');
  for i:=1 to n do
  begin
   readln(b[i]);
   if b[i]<>a[i] then v:=false;
  end;
  if v=false then for i:=1 to n do c[i]:=a[i]+b[i] else for i:=1 to n do c[i]:=a[i];
 writeln('Третий массив:');
 for i:=1 to n do
   writeln(c[i]);
 readln;
 
end.
0
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
05.11.2012, 21:51 8
Цитата Сообщение от Liffan Посмотреть сообщение
вот более "правильный" код
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
 var a, b, c: array of integer;
    n, i:integer;
    v:boolean;
begin
 
  writeln('Введите длину массива');
  readln(n);
  n:=n+1;
  setlength(a, n);
  setlength(b, n);
  setlength(c, n);
  n:=n-1;
  writeln('Введите первый массив:');
  for i:=1 to n do
   readln(a[i]);
  v:=true;
  writeln('Введите второй массив:');
  for i:=1 to n do
  begin
   readln(b[i]);
   if b[i]<>a[i] then v:=false;
  end;
  if v=false then for i:=1 to n do c[i]:=a[i]+b[i] else for i:=1 to n do c[i]:=a[i];
 writeln('Третий массив:');
 for i:=1 to n do
   writeln(c[i]);
 readln;
 
end.
Не работает ваш код. Мда, зависает на считывании первого массива, ПРОСТО ничего делает.
1
2 / 2 / 4
Регистрация: 05.11.2012
Сообщений: 14
05.11.2012, 22:25 9
Цитата Сообщение от Finita Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
 for i:=1 to n do
  begin
   if a[i]<>b[i] then
    begin
     br:=false;
     break;
    end;
   end;
Зачем проверять все элементы, ведь если массивы не равны то и любые элементы не равны, по этому быстрее будет написать:
Pascal
1
2
3
4
5
6
7
8
if a[1]<>b[1] then
  begin
  for i:=1 to n do c[i]:=a[i]+b[i];
  end
 else
   begin
  for i:=1 to n do c[i]:=a[i];
  end;
0
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
05.11.2012, 22:27 10
Цитата Сообщение от zMeFz Посмотреть сообщение
Зачем проверять все элементы, ведь если массивы не равны то и любые элементы не равны, по этому быстрее будет написать:
Pascal
1
2
3
4
5
6
7
8
if a[1]<>b[1] then
  begin
  for i:=1 to n do c[i]:=a[i]+b[i];
  end
 else
   begin
  for i:=1 to n do c[i]:=a[i];
  end;
Логично!..
1
11 / 8 / 9
Регистрация: 05.11.2012
Сообщений: 65
06.11.2012, 05:23 11
Цитата Сообщение от Izobara Посмотреть сообщение
Не работает ваш код. Мда, зависает на считывании первого массива, ПРОСТО ничего делает.
на каком именно месте зависает? перед началом ввода массива или в конце?
0
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
06.11.2012, 12:39 12
Цитата Сообщение от Liffan Посмотреть сообщение
на каком именно месте зависает? перед началом ввода массива или в конце?
Я ввожу число элементов, оно предлагает ввести первый массив. Я ввожу количество чисел, по числу ( допустим, 5), которое ввел в самом начале. Жму enter. И просто пустая строка. Ввожу еще 5 чисел - а вдруг - и ничего, просто снова строка для ввода.

Добавлено через 7 минут
Цитата Сообщение от zMeFz Посмотреть сообщение
Зачем проверять все элементы, ведь если массивы не равны то и любые элементы не равны, по этому быстрее будет написать:Код Pascal

Pascal
1
2
3
4
5
6
7
8
if a[1]<>b[1] then
 begin
 for i:=1 to n do c[i]:=a[i]+b[i];
 end
 else
 begin
 for i:=1 to n do c[i]:=a[i];
 end;
А если отличается не первый элемент, а какой-то другой, или только последний? Что прикажете сделать? Сколько умных развелось...
1
11 / 8 / 9
Регистрация: 05.11.2012
Сообщений: 65
06.11.2012, 15:41 13
Цитата Сообщение от Izobara Посмотреть сообщение
Я ввожу число элементов, оно предлагает ввести первый массив. Я ввожу количество чисел, по числу ( допустим, 5), которое ввел в самом начале. Жму enter. И просто пустая строка. Ввожу еще 5 чисел - а вдруг - и ничего, просто снова строка для ввода.
Можно тогда так сделать, но это более затратно по памяти
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
var a, b, c: array [1..1000] of integer;
    n, i:integer;
    v:boolean;
begin
 
  writeln('Введите длину массива');
  readln(n);
  writeln('Введите первый массив:');
  for i:=1 to n do
   readln(a[i]);
  v:=true;
  writeln('Введите второй массив:');
  for i:=1 to n do
  begin
   readln(b[i]);
   if b[i]<>a[i] then v:=false;
  end;
  if v=false then for i:=1 to n do c[i]:=a[i]+b[i] else for i:=1 to n do c[i]:=a[i];
 writeln('Третий массив:');
 for i:=1 to n do
   writeln(c[i]);
 readln;
 
end.
0
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
06.11.2012, 15:43 14
Теперь ничего не делает после ввода 2-го массива Расслабся.
1
11 / 8 / 9
Регистрация: 05.11.2012
Сообщений: 65
06.11.2012, 18:38 15
Цитата Сообщение от Izobara Посмотреть сообщение
Теперь ничего не делает после ввода 2-го массива Расслабся.
Не знаю, у меня всё работает, на нескольких компиляторах проверял :-)
0
СуперМодулятор
134 / 134 / 48
Регистрация: 03.11.2012
Сообщений: 974
06.11.2012, 18:39 16
Цитата Сообщение от Liffan Посмотреть сообщение
Не знаю, у меня всё работает, на нескольких компиляторах проверял :-)
Ладно, пусть
1
06.11.2012, 18:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2012, 18:39
Помогаю со студенческими работами здесь

Массив: Создать двухмерный массив Р[3,5], где каждая строка соответствует заданному массиву...
Из трех одномерных массивов А,В, С создать двухмерный массив Р, где каждая строка соответствует...

Создать массив C, где каждый элемент равен 1 (true), если соответствующие элементы A и B имеют одинаковый знак
Даны два двумерных массива A и B одинаковой размерности. Создать массив C, где каждый элемент равен...

Сформировать массив, в котором элемент равен единице, если количество отрицательных элементов строки матрицы А больше, чем в строке
Дорогие, очень прошу помощи... начали учить Java,с середины февраля. Задали задачу.с одной частью...

сформировать одномерный массив, каждый элемент которого равен первому положительному элементу соответствующего столбца, если такого нет, то нулю
С помощью датчика случайных чисел сформировать матрицу mxn. сформировать одномерный массив, каждый...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru