1 / 1 / 0
Регистрация: 08.03.2014
Сообщений: 99

Поменяйте местами последний элемент массива, кратный В и первый элемент кратный С

03.02.2016, 14:37. Показов 1449. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создайте одномерный массив, поменяйте местами последний элемент кратный В и первый элемент кратный С. В и С вводятся с клавиатуры.
Программа запускается и зависает после пересылки значений в процедуру lol, скорее всего в ней зацикливается.
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
type  omas = array[1..100] of integer;//описание массива
const  n = 5;//константа
var//описание глобальных переменных
  a: omas;//описание глобальных переменных
  b, c: integer;//описание глобальных переменных
procedure init(var a: omas; n: integer);//Название процедуры  и Описание формальных параметров переменных
var//Описание локальных переменных
  i: integer;//Описание локальных переменных
begin//начало процедуры
  for i := 1 to n do//Цикл
    a[i] := random(100);//Вычисление
end;//конец процедуры
procedure print(var a: omas; n: integer);//Название процедуры  и Описание формальных параметров переменных
var//Описание локальных переменных
  i: integer;//Описание локальных переменных
begin//начало процедуры
  for i := 1 to n do//Цикл
    write(a[i], ' ');//вывод
end;//конец процедуры
procedure lol(var a: omas; n, b, c: integer);//Название процедуры  и Описание формальных параметров переменных
var//Описание локальных переменных
  i, x, y, z: integer;//Описание локальных переменных
begin//начало процедуры
  for i := 1 to n do//Цикл
  begin
    if (A[i] mod b) = 0 then begin//Условие (последний элемент кратный b)
      y := i;
    end;
    while z = 0 do 
    begin
      if (A[i] mod c) = 0 then //Условие (первый элемнт кратный c)
      begin
        c := i;
        z := 1;
      end;
    end;
  end;
  x := a[y]; a[y] := a[c]; a[c] := x;//Меняем местами элементы
end;//конец процедуры
begin//начало программы
  writeln('первый массив');//Вывод текста
  init(a, n);//Вызов процедуры и указание фактических параметров
  print(a, n);//Вызов процедуры и указание фактических параметров
  writeln;
  write('B=');
  readln(b);
  write('C=');
  readln(c);
  lol(a, n, b, c);//Вызов процедуры и указание фактических параметров
  print(a, n);//Вызов процедуры и указание фактических параметров
end.
Добавлено через 3 минуты
Причина в 39 строке, т.е. в том месте где элементы меняются местами
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.02.2016, 14:37
Ответы с готовыми решениями:

Поменять последний элемент массива, кратный своему порядковому номеру с первым элементом
Всем добрый вечер! Столкнулся с проблемой, нужно поменять последний элемент, кратный своему порядковому номеру с первым элементом...

Удалить из массива y размерностью 15 последний элемент кратный 6 или 5
удалить из массива y размерностью 15 последний элемент кратный 6 или 5.

Удалить из массива Y размерностью 15, последний элемент кратный 6 или 5
Удалить из массива Y размерностью 15, последний элемент кратный 6 или 5

3
3408 / 1827 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
03.02.2016, 17:13
Разнесите циклы проверки кратности.
while z = 0 do - парктически бесконечный цикл, i и z не меняются.
0
1 / 1 / 0
Регистрация: 08.03.2014
Сообщений: 99
04.02.2016, 17:13  [ТС]
Constantin Cat, Можно подробнее, пробовал так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure lol(var a: omas; n, b, c: integer);//Название процедуры  и Описание формальных параметров переменных
var//Описание локальных переменных
  i, x, y, z: integer;//Описание локальных переменных
begin//начало процедуры
  for i := 1 to n do//Цикл
    if (A[i] mod b) = 0 then //Условие (последний элемент кратный b)
      y := i;//приравнивание
  for i := 1 to n do//Цикл
    while z = 0 do
    begin
      if (A[i] mod c) = 0 then//Условие (первый элемнт кратный c)
      begin
        c := i;//приравнивание
        z := 1;//приравнивание
      end;
    end;
  x := a[y]; a[y] := a[c]; a[c] := x;//Меняем местами элементы
end;//конец процедуры
но все равно зацикливается
0
3408 / 1827 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
04.02.2016, 17:48
Лучший ответ Сообщение было отмечено Dmitryb98 как решение

Решение

Цитата Сообщение от Dmitryb98 Посмотреть сообщение
но все равно зацикливается
Pascal
1
2
3
while z = 0 do // вечный цикл
    begin
      if (A[i] mod c) = 0 then // т.к. Z может и не поменятся
Pascal
1
2
3
4
5
6
{первая проверка}
  for i := 1 to n do
    if a[i] mod b =0 then y:=i;
{вторая проверка}
  i:=1;
  while(a[i]mod c >0)and(i<=n)do inc(i);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2016, 17:48
Помогаю со студенческими работами здесь

Заменить первый элемент массива, кратный 5, нулём
1)Заменить первый элемент массива,кратный 5,нулём. 2)Заменить элементы массива с нечетными номерами на квадраты их номеров! 3)Из...

Заменить первый элемент массива, кратный 5, нулем
заменить первый элемент массива кратный 5 нулем

Поменять местами последний элемент, кратный заданному числу, и первый элемент
Создайте одномерный массив, поменяйте местами последний элемент кратный В и первый элемент. В вводится с клавиатуры. решить с процедурами

Удалить последний элемент массива, кратный 3
Помогите решить) &quot;Удалить последний элемент массива, кратный 3&quot;

Удалить из массива первый элемент, кратный 3
Дан одномерный целочисленный массив из N элементов. Удалить из него первый элемент массива, кратный 3


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

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

Новые блоги и статьи
Интеграция Hangfire с RabbitMQ в проектах C#.NET
stackOverflow 18.04.2025
Разработка современных . NET-приложений часто требует выполнения задач "за кулисами". Это может быть отправка email-уведомлений, генерация отчётов, обработка загруженных файлов или синхронизация. . .
Построение эффективных запросов в микросервисной архитектуре: Стратегии и практики
ArchitectMsa 18.04.2025
Микросервисная архитектура принесла с собой много преимуществ — возможность независимого масштабирования сервисов, технологическую гибкость и четкое разграничение ответственности. Но как часто бывает. . .
Префабы в Unity: Использование, хранение, управление
GameUnited 18.04.2025
Префабы — один из краеугольных элементов разработки игр в Unity, представляющий собой шаблоны объектов, которые можно многократно использовать в различных сценах. Они позволяют создавать составные. . .
RabbitMQ как шина данных в интеграционных решениях на C# (с MassTransit)
stackOverflow 18.04.2025
Современный бизнес опирается на множество специализированных программных систем, каждая из которых заточена под решение конкретных задач. CRM управляет отношениями с клиентами, ERP контролирует. . .
Типы в TypeScript
run.dev 18.04.2025
TypeScript представляет собой мощное расширение JavaScript, которое добавляет статическую типизацию в этот динамический язык. В JavaScript, где переменная может свободно менять тип в процессе. . .
Погружение в Kafka: Концепции и примеры на C# с ASP.NET Core
stackOverflow 18.04.2025
Apache Kafka изменила подход к обработке данных в распределенных системах. Эта платформа потоковой передачи данных выходит далеко за рамки обычной шины сообщений, предлагая мощные возможности,. . .
Коммуникация в реальном времени с SignalR в C# на примере создания чата
UnmanagedCoder 17.04.2025
Современный веб стремительно эволюционирует от статичных страниц к динамичным приложениям, где пользователи ожидают мгновенной реакции на свои действия. Представим, что вы отправляете сообщение. . .
Реализация CQRS с MediatR на C# .NET
stackOverflow 17.04.2025
Современная разработка программного обеспечения постоянно ищет пути повышения эффективности организации кода. Архитектурные паттерны появляются, эволюционируют, и те, что проявляют свою. . .
Verilog и интеллектуальная собственность - "глазами" обученной LM модели.
Hrethgir 17.04.2025
В сети встречаются участники, заявляющие что код на Verilog ни о чём не говорит. Но вот патентная практика на самом деле показывает обратное ими утверждаемому. То-есть код на Verilog включают в. . .
Свап-файл дополнительно к разделу (если вдруг не хватает или не создан)
jigi33 17.04.2025
ПОДКЛЮЧЕНИЕ ДОПОЛНИТЕЛЬНОГО SWAP ПРОСТРАНСТВА, Т. О. , РАСШИРЕНИЕ ЕГО РАЗМЕРА В Linux можно использовать как раздел подкачки (swap), так и файл подкачки (swap-файл). Чтобы создать swap-файл вместо. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru