Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 38
1

В строке и в векторе из 10 компонентов подсчитать количество элементов с одинаковыми порядковыми номерами

04.03.2015, 15:50. Показов 887. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В строке и в векторе из 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
program netip_param;
type
  Vector = array[1..10] of integer; { имеются 10 компонентов}
var
  mas:string[10]; {массив строк}
  mas2:vector;   {массив целых чисел}
  i,sum:integer;
 
procedure Pro(var M;M2:integer);
var
  am:array[1..10] of char absolute M;
  am2:array[1..10] of integer absolute M2;
begin
for i:=1 to 10 do
begin
sum:=sum+1;
end;
end;
 
begin
sum:=0;
Pro(mas,mas2);
writeln(sum);
readln;
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2015, 15:50
Ответы с готовыми решениями:

Подсчитать количество элементов с одинаковыми порядковыми номерами
В строке и в векторе из 10 компонентов подсчитать количество элементов с одинаковыми порядковыми...

Подсчитать количество элементов с одинаковыми порядковыми номерами
Используя нетипизированный параметр в подпрограмме, в строке и в векторе из 10 компонентов...

В логическом векторе подсчитать число элементов с четными номерами
В логическом векторе подсчитать число элементов с четными номерами, имеющими значение FALSE.

В логическом векторе подсчитать число элементов с четными номерами,имеющими значение false.
очень прошу,помогите решить одну задачу. Задача: В логическом векторе С подсчитать число элементов...

15
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
04.03.2015, 16:36 2
подсчитать количество элементов с одинаковыми порядковыми номерами
s v Порядковый номер
a 100 1
b 200 2
c 300 3
f 999 4
r 777 5
..........
t 111 10
Итого в строке s и в векторе v по 10 одинаковых порядковых номеров.

Или условие не точно приведено?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
04.03.2015, 16:39 3
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Или условие не точно приведено?
Это выясняется в разных темах наверное уже неделю..
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
04.03.2015, 16:43 4
Sorry. Я не всё читаю...
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 38
04.03.2015, 16:48  [ТС] 5
Puporev, ФедосеевПавел, То что 10 это да. Через абсолют правильно написано, как эту же прогу записать через явное представление?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
04.03.2015, 17:05 6
Цитата Сообщение от vladyssov Посмотреть сообщение
Через абсолют правильно написано
Возможо, только я не смог запустить и посмотреть.
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 38
04.03.2015, 17:27  [ТС] 7
Puporev, ну может некоторые недоработки, но в целом правильно
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
04.03.2015, 17:30 8
vladyssov, сегодня и завтра рабочие дни. Подойди к преподавателю и попроси уточнить задание, а также привести 1-2 тестовых примера, чтобы было понятнее. Это лучше, чем невыполнение задания.

Если принять твою интерпретацию задания, то через нетипизированные параметры, это так
- замени заголовок процедуры на
Pascal
1
procedure Pro(var M, M2);
- удали строки с absolute

Но знай, что и с absolute - у тебя в программе некомпилируемая чушь. А кроме того, ты не видишь разницы между параметрами-значениями и параметрами-переменными.
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 38
04.03.2015, 17:55  [ТС] 9
ФедосеевПавел, спасибо, с точкой запятой я глупанул. Абсолюты убрал. Все работает=)
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
04.03.2015, 18:05 10
Не поверишь - так тоже будет работать
Pascal
1
2
3
4
5
6
7
8
9
10
...........
procedure Pro;
................
begin
  sum:=0;
  Pro;
  writeln(sum);
  readln;
  readln;
end.
Это я к тому, что
vladyssov, сегодня и завтра рабочие дни. Подойди к преподавателю и попроси уточнить задание, а также привести 1-2 тестовых примера, чтобы было понятнее. Это лучше, чем невыполнение задания.
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 38
08.03.2015, 20:35  [ТС] 11
Puporev, ФедосеевПавел, Товарищи, не подскажите как сравнить ( наверно через буфер), я делаю , но ошибку выдает
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
08.03.2015, 21:13 12
Что с чем?

Добавлено через 18 минут
А-а-а! В соседней теме увидел код.

Ты за рабочие дни должен был уточнить, что сравнивать.

И ещё, тип integer в разных реализациях занимает 2 или 4 байта, тип char - строго 1 байт. Таким образом переменная mas2 типа vector занимает от 20 до 40 байт (в зависимости от компилятора), а переменная mas занимает 10 байт.
Как сравнивать?

Или, если ты не в состоянии спросить у преподавателя, то хоть придумай, что ты хочешь получить. И внятно сформулируй, по возможности, с примером.

Обещаю, до получения ответа на мой вопрос, на все дальнейшие твои посты, буду цитировать вышеприведённый абзац.
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 38
09.03.2015, 00:06  [ТС] 13
ФедосеевПавел, Сравнить вектор и строку, получается mas и mas2
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
09.03.2015, 07:46 14
Ничего не понял. По причинам, описанным выше - тип char занимает 1 байт, а тип integer от 2 до 4 байт.
Понимаю, что всё нижесказанное звучит по-хамски. Т.к. ты сам не знаешь, что тебе нужно, у преподавателя не спрашиваешь, то корректно помочь тебе ни я ни кто другой не может. В принципе. Из этго следует вывод, что сейчас я тратил своё время на создание очередного примера впустую, его у тебя не примут, ты опять вернёшься с бессвязными мольбами о помощи.
Поясни мне следующую вещь. Пусть имеется два массива - символьный из 10 элементов и целочисленный из 10 элементов.
Pascal
1
2
3
4
5
6
type
  vector  = array[1..10] of integer;
  tstring = array[1..10] of char;
var
  v: vector = (97, 67, 70, 33, 48, -100, -65, 80, 90, 42);
  s: tstring = 'abc134cf67';
В памяти эти массивы занимают место 10 (tstring) и 20 (vector) байт. В 16-ном (hex) виде:
s: 61 62 63 31 33 34 63 66 36 37
v: 61 00 43 00 46 00 21 00 30 00 9c ff bf ff 50 00 5a 00 2a 00
Как их сравнивать???
Вот этого от тебя не может никто добиться за неделю!!!
Поэтому лови очередной ненужный вариант кода. И пока не ответишь с примерами - ничего не изменится.
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
program Compare;
 
type
  vector  = array[1..10] of byte;
  tstring = array[1..10] of char;
 
  function CountSameElements(var a, b; n: integer): integer;
  type
    TTypeCast = array[0..1000] of byte;
  var
    i, Count: integer;
  begin
    Count := 0;
    for i := 0 to n - 1 do
      if TTypeCast(a)[i] = TTypeCast(b)[i] then
        Inc(Count);
    CountSameElements := Count;
  end;
 
var
  v: vector = (97, 67, 70, 33, 48, 49, 65, 80, 90, 42);
  s: tstring = 'abc134cf67';
begin
  writeln(CountSameElements(v,s,10));
end.
Добавлено через 5 минут
Иди к преподавателю, уточняй задание, попроси пару примеров!!!
Что сложного?

Добавлено через 2 минуты
Как вариант, попроси родителей это сделать.

Ну сколько можно переливать из пустого в порожнее!

Если не отличаешься сообразительностью - завершай обучение - это не твоё!
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7769 / 4598 / 2823
Регистрация: 22.11.2013
Сообщений: 13,077
Записей в блоге: 1
09.03.2015, 21:45 15
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Как их сравнивать???
Вероятно, имелось в виду следующее:
В строке и в векторе из 10 компонентов подсчитать количество равных элементов с
одинаковыми порядковыми номерами, используя нетипизированный параметр в подпрограмме.
Тогда, например, так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type
  TVector = array [1..10] of Integer;
 
function CountEq(var v, s): Integer;
var
  vv: TVector absolute v;
  ss: String absolute s;
  i, r: Integer;
begin
  r:=0; i:=Length(ss);
  if i>10 then i:=10;
  for i:=1 to i do
    if vv[i]=Ord(ss[i]) then Inc(r);
  CountEq:=r;
end;
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
09.03.2015, 22:58 16
----удалил ошибочное предположение

Добавлено через 9 минут
===========================================
По правде, сегодня к вечеру, мне стало казаться, что требуется написать процедуру общего вида (с нетипизированными параметрами) для сравнения массивов разных типов. Т.е. одной функцией сравнивать в одном вызове vector с vector, а при другом вызове строку со строкой.
Но ТС ничего не уточняет. Я бы хотел ему помочь, но также как и все посты в этой теме, мои носят вероятностный характер.

Добавлено через 9 минут
-------------------
0
09.03.2015, 22:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2015, 22:58
Помогаю со студенческими работами здесь

Подпрограммы. Вычислить количество и сумму элементов, значения которых совпадают с порядковыми номерами.
Задана последовательность чисел. Вычислить количество и сумму элементов, значения которых совпадают...


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

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