Форум программистов, компьютерный форум, киберфорум
Наши страницы

Pascal ABC

Войти
Регистрация
Восстановить пароль
 
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
#1

Как сделать так, чтобы считались и отрицательные числа в приведенном коде - Pascal ABC

24.06.2014, 17:57. Просмотров 320. Ответов 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
25
26
27
28
29
30
31
32
const n=5;
var
  q, w : set of shortint;
  i, x : byte;
  f : text;
begin
  assign(f, 'file.txt'); rewrite(f);
  w:=[]; q:=[];
  Write('Введите множество: ');
  for i:=1 to n do
    begin
      read(x);
      q:=q+[x];
    end;
  write('Исходное множество: ');
  for i:=0 to 255 do
    if i in q then
      write(i,' ');
          writeln;
  for i:=0 to 255 do
    if (i in q) and (i mod 2=0) then
      w:=w+[i]
    else
      if (i in q) and (i mod 2<>0) then
        write(f,i,' ');
  writeln;
  write('Множество четных: ');
  for i:=0 to 255 do
    if i in w then
      write(i,' ');
  close(f);
end.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2014, 17:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать так, чтобы считались и отрицательные числа в приведенном коде (Pascal ABC):

Расположть числа в массиве так, чтобы первыми шли отрицательные числа, затем положительные - Pascal ABC
Массив А содержит 100 чисел,из которых 50 чисел положительных, а 50- отрицательных. Расположите их в том же массиве так,чтобы первым шли...

Изменить последовательность указателей так, чтобы отрицательные числа находились в начале списка - Pascal ABC
Массив целых чисел представлен в виде динамического списка. Изменить последовательность указателей так, чтобы отрицательные числа...

В данной последовательности целых чисел переставьте члены так, чтобы отрицательные числа шли в порядке убывания в начале массива - Pascal ABC
В данной последовательности целых чисел переставьте члены так, чтобы отрицательные числа шли в порядке убывания в начале массива. ...

как переставить числа в очереди таким образом, чтобы в начале последовательности оказались все положительные числа, а в конце отрицательные? - Pascal
как переставить числа в очереди таким образом, чтобы в начале последовательности оказались все положительные числа, а в конце...

Как сделать так, что б в коде использовалось только две переменных? - Pascal ABC
Естьготовый код: var a,b,s,r,d,c:real; begin write('a= '); readln(a); if a=0 then begin writeln('wrong symbol,try again');...

Как сделать так чтобы вопросы не повторялись? - Pascal ABC
Есть массив из 5-ти вопросов. Выбираются случайно 3. Как сделать так чтобы вопросы не повторялись? Заранее спасибо. ...

5
APALoff
1636 / 1065 / 470
Регистрация: 03.07.2013
Сообщений: 4,506
24.06.2014, 18:22 #2
Цитата Сообщение от demon31 Посмотреть сообщение
read(x);
x - имеет тип Byte = 0..255

поменяйте, например, на integer

Добавлено через 57 секунд
или на тот же shortint
0
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
24.06.2014, 18:23  [ТС] #3
Не помогло, всё ровно на отрицательном числе выкидывает
0
Puporev
Модератор
53013 / 40824 / 14069
Регистрация: 18.05.2008
Сообщений: 94,965
24.06.2014, 18:24 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Нужно объявлять множество так
Pascal
1
q, w : set of byte;
заносить числа в интервале [-127..127] так
Pascal
1
q:=q+[a+127];
выводить так
Pascal
1
2
for i:=0 to 255 do
if i in q then write(i-127,' ');
1
demon31
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 341
24.06.2014, 18:33  [ТС] #5
Чёт не понял о_о

Добавлено через 3 минуты
Сделвл как казал Puporev, начало считать с отрицательными, но вывод неправильно срабатывает

Добавлено через 1 минуту
А, нет, всё верно, не везде так сделал, спасибо, помогли :*
0
Puporev
Модератор
53013 / 40824 / 14069
Регистрация: 18.05.2008
Сообщений: 94,965
24.06.2014, 18:36 #6
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
const n=5;
var
  q, w : set of byte;
  i,x : shortint;
  f : text;
begin
  assign(f, 'file.txt');
  rewrite(f);
  w:=[]; q:=[];
  Write('Ââåäèòå Г¬Г*îæåñòâî: ');
  for i:=1 to n do
    begin
      readln(x);
      q:=q+[x+127];
    end;
  write('ÈñõîäГ*îå Г¬Г*îæåñòâî: ');
  for i:=-127 to 127 do
  if i+127 in q then  write(i,' ');
  writeln;
  for i:=-127 to 127 do
  if i+127 in q then
   begin
    if i mod 2=0 then  w:=w+[i+127]
    else write(f,' ',i);
   end;
  writeln;
  write('ГЊГ*îæåñòâî Г·ГҐГІГ*ûõ: ');
  for i:=-127 to 127 do
  if i+127 in w then  write(i,' ');
  close(f);
end.
0
24.06.2014, 18:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2014, 18:36
Привет! Вот еще темы с ответами:

Как в приведенном коде можно использовать функцию? - Pascal
Подскажите, где тут можно использовать функцию? Надо что бы в коде обязательно была function. program lab9_sorokroy(input,output); ...

Как обойтись без дополнительного массива в приведенном коде - Pascal
Сделала лабу, всё зачли, но встал вопрос, о том, что эту программу можно реализовать без дополнительного массива. Подскажите, пожалуйста,...

Как сделать так, чтобы тело двигалось по линии шара? - Pascal ABC
Как сделать так, чтобы тело двигалось по линии шара? плиз

Как сделать так, чтобы значения выводили автоматически, а не вручную? - Pascal
есть решенная задача, но нужно, чтобы элементы массива выводились автоматически( рандомно ). Как это сделать? var a,b:arrayof...


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

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

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