Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 2
Регистрация: 20.11.2009
Сообщений: 73

Странные результаты проверки на чётность.

23.02.2010, 19:45. Показов 1321. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем задание такое требуеться найти у вектора наименьший не чётный элемент,и вычесть из всех элементов наименьший не чётный.Вроде бы программа работает норм но еслии ввести
12
13
13
или что нибудь подобное то выбирает число 12...почему???заранее спасибо за помощь проект прикрепил к сообщению.
Вложения
Тип файла: rar Лаба4.rar (222.8 Кб, 16 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.02.2010, 19:45
Ответы с готовыми решениями:

Программа для проверки цифр в числе на чётность
как проверить каждую цифру в четырёхзначном числе на чётность без массива в DevC++ Я написал...

Странные результаты деления
//Обнаружил странное исполнение функции деления в CodeBlocks 13.12 #include <iostream>...

Странные результаты поиска в Яндексе.
Решил я тут даличе поискать свой сайт в яндексе(сильно мало с него в последнее время заходят, про...

2
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
23.02.2010, 20:32
Лучший ответ Сообщение было отмечено aidarr как решение

Решение

Проект я пока не посмотрел. Но вариант решения может быть таким:
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
procedure TForm1.Button1Click(Sender: TObject);
const
  N = 10;
var
  Vector : array[1..N] of Integer;
  i, IntMin : Integer;
  IsFound : Boolean;
  StrTmp : String;
begin
  //Очистка Мемо.
  Memo1.Clear;
 
  //Заполняем массив случайными целыми числами.
  Randomize;
  for i := 1 to N do begin
    Vector[i] := Random(11); //0..10.
  end;
 
  //Распечатка исходного массива.
  Memo1.Lines.Add('Исходный массив:');
  StrTmp := '';
  for i := 1 to N do begin
    if StrTmp <> '' then StrTmp := StrTmp + Char(9);
    StrTmp := StrTmp + IntToStr( Vector[i] );
  end;
  Memo1.Lines.Add(StrTmp);
 
  //Ищем значение наименьшего нечётного элемента.
  IsFound := False;
  for i := 1 to N do begin
    if Vector[i] mod 2 <> 0 then begin
      if not IsFound then begin
        IntMin := Vector[i];
        IsFound := True;
        Continue;
      end;
      if Vector[i] < IntMin then begin
        IntMin := Vector[i];
      end;
    end;
  end;
 
  //Есть смысл производить вычитание только если был найден хотябы один нечётный элемент.
  if IsFound then begin
    for i := 1 to N do begin
      Vector[i] := Vector[i] - IntMin;
    end;
  end;
 
  //Распечатка результирующего массива.
  Memo1.Lines.Add('Результирующий массив:');
  StrTmp := '';
  for i := 1 to N do begin
    if StrTmp <> '' then StrTmp := StrTmp + Char(9);
    StrTmp := StrTmp + IntToStr( Vector[i] );
  end;
  Memo1.Lines.Add(StrTmp);
 
end;
---
Aidarr, посмотрел в твоём коде. Причина ошибки здесь:
Delphi
1
2
3
4
5
6
7
8
9
...
  //Первоначально в качестве первого минимального нечётного элемента выбран, собственно,
  //не один из нечётных элементов, а первый элемент массива. А первый элемент массива
  //может оказаться чётным. - Это в дальнейшем приводит к неправильному счёту.
  //Более того - в массиве вообще могут отсутствовать нечётные элементы. :)
  z:=a[1];
  For i:=1 to memo1.Lines.Count do
  if (a[i]<z) and (odd(a[i])=True) then z:=a[i];
...
Aidarr, скорректируй свой алгоритм в соответствие с моим кодом.
1
0 / 0 / 2
Регистрация: 20.11.2009
Сообщений: 73
23.02.2010, 21:41  [ТС]
Mawrat, спасибо разобрался кому интересно вот сделал так
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
procedure TForm1.Button1Click(Sender: TObject);
Var
z:integer;
i,n:integer;
q:string;
a:array[1..100] of integer;
p,b:boolean;
begin
Form1.ListBox1.Clear;
b:=True;
for i:=1 to memo1.Lines.Count do
if Memo1.Lines[i-1]='-' then b:=False  else
   a[i]:=strtoint(Memo1.Lines[i-1]);
   z:=a[1];
   p:=False;
   For i:=1 to memo1.Lines.Count do begin
   if (odd(a[i])=True) then begin
   if not p then begin
   z:=a[i];
   p:=true;
   continue;
   end;
   if (a[i]<z) then begin z:=a[i];
    end;
   end;
  end;
  if p and b then begin
for i:=1 to memo1.Lines.Count do
   a[i]:=a[i]-z;
    Listbox1.Items.add('Измененный вектор');
    for i:=1 to memo1.Lines.Count do
    Listbox1.Items.add(inttostr(a[i]));
   Listbox1.Items.add('Наименьший не чётный элемент вектора= '+inttostr(z));
    end else showmessage('Нет не чётных элементов или не введен вектор:(');
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2010, 21:41
Помогаю со студенческими работами здесь

Странные результаты при вычислении корней
Здравствуйте! Я тут пытаюсь написать функцию, вычисляющую корень n-ной степени(целой) числа, но...

Функция rand() дает странные результаты
Есть класс Owner с таким конструктором, значения его членов определяются рандомно. В main.cpp...

Странные результаты вычисления синусов и косинусов
На днях выполнял задание на преоброзование полярных координат в декартовские и наоборот. Столкнулся...

Странные результаты при моделировании 1ф КЗ в электрической сети
Добрый день! Требуется помощь бедному студенту (мне). Я в Matlab/Simulink пока полный новичок,...

Странные результаты вычислений с использованием Random.NextDouble()
здравствуйте. подскажите пожалуйста, что за ерунда такая творится у меня для вычислений необходимо...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru