Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Fishman
0 / 0 / 2
Регистрация: 06.10.2014
Сообщений: 67
#1

Составить пароль

03.03.2016, 10:24. Просмотров 851. Ответов 5
Метки нет (Все метки)

Пользователь вводит слово к примеру 'шалаш', нужно из него создать пароль, но при этом нельзя что бы буквы повторялись, т.е. максимальная длина пароля из этого слова будет 3, а так же нельзя что бы в пароле стояли по соседству буквы из алфавита (к примеру слово 'абв', пароль 'бва' нельзя составить, потомучто 'б' и 'в' стоят рядом).
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2016, 10:24
Ответы с готовыми решениями:

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

Программа, которая требует у вас пароль, например 111, и если пароль правильный, то печатает сообщение «Молодец!».
Практическая работа Задание 6. С помощью оператора repeat напишите...

Составить программу, которая запрашивает пароль
люди у меня зачет помогите плиз_)_ у меня 9 задач Составить блок схему,...

Составить блок схему вычисления значения функции, а затем составить программу
Составить блок схему вычисления значения функции, а затем составить программу

Строка: Составить программу,определяющую можно ли из букв слова А составить слово В.
Даны два слова.Составить программу,определяющую можно или нет из букв слова А...

5
Arigato
Программист
281 / 178 / 176
Регистрация: 05.12.2013
Сообщений: 683
Записей в блоге: 5
03.03.2016, 11:57 #2
'абв' - а какой пароль из этих букв можно?
0
Fishman
0 / 0 / 2
Регистрация: 06.10.2014
Сообщений: 67
04.03.2016, 08:12  [ТС] #3
никакой, т.к. из 'абв' можно составить 6 комбинаций, но в каждой комбинации буквы стоят рядом по алфавиту
абв
авб
бав
бва
вба
ваб

Добавлено через 2 минуты
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
52
53
54
55
56
57
58
59
60
program Project2;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
  System.SysUtils;
 
var n,j:integer;
   result:text;
  a: array[0 .. 20] of char;
 
procedure print(T: integer);
var i,j: integer;
begin
  for i := 1 to T do write(a[i]);
  writeln;
  for j := 1 to T do write(result,a[i]);
  writeln(result);
end;
 
procedure swap(var a, b: char);
var T: char;
begin T := a; a := b; b := T end;
 
procedure solve(T: integer);
var i: integer;
begin
  if T >= n then print(t)
  else
    for i := T + 1 to n do begin
      swap(a[T+1], a[i]);
      solve(T+1);
      swap(a[t+1], a[i])
    end
end;
 
var
  i: integer;
  s: string;
 
begin
  assign(result,'result.txt');
  rewrite(result);
  readln(s);
  i:=1;
while i<length(s) do
 begin
  for j:=length(s) downto i+1 do
  if s[j]=s[i] then delete(s,j,1);
  i:=i+1;
 end;
  n := length(s);
 
  for i := 1 to n do a[i] := s[i];
  solve(0);
  close(result);
  readln;
end.
Сделал все, кроме условия, что буквы которые стоят рядом в алфавите не могут стоять рядом в пароле.
И еще есть вопрос, когда записываю в текстовый файл, то там только пробелы, если открыть через нотпад++, то там везде nul nul nul, как это можно исправить?

Добавлено через 14 часов 20 минут
up!
0
capricornus CF
315 / 205 / 162
Регистрация: 08.12.2015
Сообщений: 853
04.03.2016, 08:51 #4
Лучший ответ Сообщение было отмечено Fishman как решение

Решение

Попробуйте так:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program Project2;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
//uses
//  System.SysUtils;
 
var
  n, j: integer;
  result: text;
  a: array[0..20] of char;
 
procedure print(T: integer);
var
  i, j: integer;
begin
  for i := 1 to T do write(a[i]);
  writeln;
  for j := 1 to T do write(result, a[i]);
  writeln(result);
end;
 
procedure swap(var a, b: char);
var
  T: char;
 
begin
  T := a;a := b;b := T; 
end;
 
procedure solve(T: integer);
var
  i: integer;
begin
  if T >= n then print(t)
  else
    for i := T + 1 to n do
      if abs(ord(a[i]) - ord(a[i - 1])) <> 1 then
      begin
        swap(a[T + 1], a[i]);
        solve(T + 1);
        swap(a[t + 1], a[i])
      end
end;
 
var
  i: integer;
  s: string;
 
begin
  assign(result, 'result.txt');
  rewrite(result);
  readln(s);
  i := 1;
  while i < length(s) do
  begin
    for j := length(s) downto i+1 do    
      if s[j] = s[i] then delete(s, j, 1);
    i := i + 1;
  end;
  
  n := length(s);
  
  for i := 1 to n do a[i] := s[i];
  solve(0);
  close(result);
  readln;
end.
насчет файла - покажите как пишите в файл.
1
Arigato
Программист
281 / 178 / 176
Регистрация: 05.12.2013
Сообщений: 683
Записей в блоге: 5
04.03.2016, 08:54 #5
Функция для проверки есть ли стоящие рядом в алфавитном порядке буквы:
Pascal
1
2
3
4
5
6
7
8
9
10
function CheckABC(const s: string): boolean;
var i: integer;
begin
  CheckABC := False;
  for i := 2 to Length(s) do
    if abs(ord(s[i])-ord(s[i-1])) = 1 then begin
      CheckABC := True;
      Exit;
    end;
end;
1
Fishman
0 / 0 / 2
Регистрация: 06.10.2014
Сообщений: 67
04.03.2016, 10:57  [ТС] #6
Не совсем правильно
ввожу:
abfz
выдает:
afbz
afzb
azfb
azbf
fbza
zbfa
zbaf
zafb
zabf
То что выделено не подходит, т.к. ab и ba стоят рядом в алфавите
0
04.03.2016, 10:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2016, 10:57

Пароль
Есть программа для проверки правильности введенного пароля.Как сделать...

Расшифровать пароль!
Network Name (SSID): ZyXEL Key Type : WPA-PSK Key (Hex) :...

Необходимо поставить пароль на программу
привет, У меня такая вот задачка: Необходимо поставить пароль на программу, так...


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

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

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