Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2017, 20:23   #1
n3v3rlucky
Новичок
Джуниор
 
Регистрация: 29.11.2017
Сообщений: 1
По умолчанию Ошибка Pascal ABC.NET. Дана последовательность натуральных чисел, Удалить из последовательности простые числа, а среди оставшихся продублировать числа...

{Вариант 13.
Дана последовательность натуральных чисел [Aj]j=1...n (n<=10000).
Удалить из последовательности простые числа, а среди оставшихся продублировать числа, начинающиеся и заканчивающиеся одной и той же цифрой}
_
Код:
Program laboratorka8;
const nmax= 10000;
Type Tmas=array [1..nmax] of integer;
Procedure vvod(var A:Tmas; var n:integer); 
         var k:integer;
         begin 
              Writeln('Введите кол-во элементов');
              Readln (n);
              Writeln ('Введите элементы послед-ти');
              For k:=1 to n do
                  Readln(A[k]);
         end;
         
Procedure vivod(A:Tmas; n: integer);  
          var k: integer;
          begin 
               Writeln('Результат');
               For k:=1 to n do                
                       Write (A[k],' ');
          end;
          
Function Prost(x: integer) : boolean; 
var k: integer; 
  begin 
   if x<2 then 
      Prost:= True
    else begin 
  Prost:= False; 
       for k:=2 to Round(sqrt(x)) do 
        if x mod k = 0 then begin 
      Prost:=True; 
     BREAK; 
   end; 
 end; 
end; 

Function cifra (x: integer):boolean;
var z,c: integer;
  begin
    c:= x mod 10;
  while x>9 do begin
    x:= x div 10;
    z:= x;
  end;
    if c=z then
   cifra:= True
  else begin
 cifra:= False
end;
end;
  
procedure del(var A:Tmas; var n,k:integer);
           var i:integer;
           begin
                for i:=k to n-1 do A[i]:=A[i+1];
                n:=n-1;
           end;
procedure dubl(var A:Tmas; var n,k:integer);
          var i:integer;
          Begin 
               For i:=n downto k do A[i+1]:=A[i];
               n:=n+1;
          end;
  
VAR B:Tmas;
    m,j:integer;
BEGIN
     VVOD(B,m);
     j:=1;
     while j<=m do
           if cifra=true then Del(B,m,j)
            else if prost=true then
                      begin
                           dubl(B,m,j);
                           j:=j+2;
                      end
                      else j:=j+1;
     VIVOD(B,m);
END.
ОШИБКА Program1.pas(74) : Нет перегруженной подпрограммы с такими типами параметров
Помогите пожалуйста

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 30.11.2017 в 10:34.
n3v3rlucky вне форума Ответить с цитированием
Старый 30.11.2017, 10:44   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

очень много логических и синтаксических ошибок.

формально паскаль ругается на то, что
cifra
и prost
это функции, которые имеют параметр (число, которое нужно проверять).

т.е. нужно писать cifra( число) или prost( число)

в вашем случае cifra( B[j] ) или prost ( B[j] )

но Вы же условие перепутали.
в условии простые числа надо удалять, а с одинаковыми цифрами - дублировать.
а Вы в программе наоборот написали.

и ещё два замечания.

1)
if значение = True then писать не надо.
это "масло масляное"
надо if значение then

2) функция Prost у Вас неверно написана. инвертировано. для простых чисел она вернёт False, а для составных - True.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана непустая последовательность целых чисел. Найти: Сумму чисел, больших числа x и количество всех чётных чисел maksim97maksim Паскаль, Turbo Pascal, PascalABC.NET 1 09.04.2014 13:59
Дана последовательность из n целых чисел. Найти номер минимального элемента в этой последовательности (на Pascal) Nata111 Помощь студентам 3 16.12.2013 20:11
[Pascal]Удалить из последовательности числа... продублировать числа... suigintou Помощь студентам 0 07.11.2012 20:39
Задачи в ТурбоПаскаль: найти числа Армстронга и просуммировать числа в последовательности номера которых простые числа Lena1808 Помощь студентам 1 17.05.2012 08:00
Дана последовательность чисел a1, a2, …, an. Требуется переставить числа в порядке возрастания. Figushkin Помощь студентам 1 24.05.2010 20:44