Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 6

В чем заключается ошибка?

06.10.2017, 19:21. Показов 1046. Ответов 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
32
33
34
35
36
37
38
39
40
41
42
//unit Word_checker;
var
  cur_alfabet: array[1..26]of char := ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
  cap_alfabet: array[1..26]of char := ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
 
///Редактирует записанное слово S так что ,если Cursive истина то все
///заглавные буквы заменяются на прописные,если ложь то наоборот
function word_check(S: string; Cursive: boolean): string;
  function Curtocap(C: char): string;
  begin
    for var B := 1 to 26 do
      if cur_alfabet[b] = c then 
        Result := cap_alfabet[b];
  end;
  
  function Captocur(C: char): string;
  begin
    for var B := 1 to 26 do 
      if cap_alfabet[b] = c then 
        Result := cur_alfabet[b];
  end;
 
begin
  for var a := 1 to length(S) do 
  begin
    if Cursive = true then 
      if Copy(S, a, 1)[1] in cap_alfabet then begin//здесь ошибка
        delete(S, a, 1);Insert((Captocur(Copy(S, a, 1)[1])), S, a);
      end;
      else 
    if Copy(S, a, 1)[1] in cur_alfabet then begin
    delete(S, a, 1);Insert(curtocap(Copy(S, a, 1)[1]), S, a);//и тут
    end;
  end;
  result := S;
end;
 
 
begin
  
  writeln(word_check('FGAFSjkadjDhs', true));
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2017, 19:21
Ответы с готовыми решениями:

В чем заключается ошибка?
https://www.cyberforum.ru/attachment.php?attachmentid=502778&stc=1&d=1426742401

В чем заключается значение указателей?
В чем заключается ЗНАЧЕНИЕ указателей?

Ошибка в чем заключается?
Где тут ошибка в алгоритме ?

6
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,878
Записей в блоге: 12
06.10.2017, 19:32
В лишней точке с запятой в 29 строке. Это не С++, это Паскаль, тут точка с запятой не нужна между ветками then и else.
0
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 6
07.10.2017, 13:01  [ТС]
я уже исправил, там другие ошибки есть
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,878
Записей в блоге: 12
07.10.2017, 13:18
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
//unit Word_checker;
var
  cur_alfabet: array[1..26]of char := ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
  cap_alfabet: array[1..26]of char := ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
 
///Редактирует записанное слово S так что ,если Cursive истина то все
///заглавные буквы заменяются на прописные,если ложь то наоборот
function word_check(S: string; Cursive: boolean): string;
  function Curtocap(C: char): char; // string;
  begin
    for var B := 1 to 26 do
      if cur_alfabet[b] = c then 
        Result := cap_alfabet[b];
  end;
  
  function Captocur(C: char): char; //string;
  begin
    for var B := 1 to 26 do 
      if cap_alfabet[b] = c then 
        Result := cur_alfabet[b];
  end;
 
begin
  for var a := 1 to length(S) do 
  begin
    if Cursive = true then 
      // if Copy(S, a, 1)[1] in cap_alfabet then begin//здесь ошибка
      if s[a] in cap_alfabet then begin
        // delete(S, a, 1);Insert((Captocur(Copy(S, a, 1)[1])), S, a);
        s[a] := Captocur(s[a]);
      end
      else 
    //if Copy(S, a, 1)[1] in cur_alfabet then begin
    if s[a] in cur_alfabet then begin
    // delete(S, a, 1);Insert(curtocap(Copy(S, a, 1)[1]), S, a);//и тут
    s[a] := curtocap(s[a]);
    // delete(S, a, 1);Insert(curtocap(Copy(S, a, 1)[1]), S, a);//и тут
    end;
  end;
  result := S;
end;
 
 
begin
  
  writeln(word_check('FGAFSjkadjDhs', true));
end.
, но вообще это делается гораздо проще:
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
//unit Word_checker;
var
  cur_alfabet: array['A'..'Z']of char := ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
  cap_alfabet: array['a'..'z']of char := ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
 
///Редактирует записанное слово S так что ,если Cursive истина то все
///заглавные буквы заменяются на прописные,если ложь то наоборот
function word_check(S: string; Cursive: boolean): string;
  function Curtocap(C: char): char;
  begin
    result := cap_alfabet[C];
  end;
  
  function Captocur(C: char): char;
  begin
    result := cur_alfabet[C];
  end;
 
begin
  for var a := 1 to length(S) do 
    if Cursive = true then 
      if s[a] in cap_alfabet then s[a] := Captocur(s[a])
      else if s[a] in cur_alfabet then s[a] := curtocap(s[a]);
  result := S;
end;
 
begin
  writeln(word_check('FGAFSjkadjDhs', true));
end.
, не нужно лишних циклов.
0
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 6
07.10.2017, 13:24  [ТС]
спс
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
07.10.2017, 21:35
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
begin
  var A := ReadlnString();
  var Cursive := ReadlnBoolean();
  var B := '';
  
  for var i := 1 to A.Length do
    if Cursive then
      if A.Chars[i].IsUpper() then B += char.ToLower(A.Chars[i]) else B += A.Chars[i]
    else
      if A.Chars[i].IsLower() then B += char.ToUpper(A.Chars[i]) else B += A.Chars[i];
  
  Writeln(B);
end.
Добавлено через 27 секунд
Если надо это:
Редактирует записанное слово S так что ,если Cursive истина то все
заглавные буквы заменяются на прописные,если ложь то наоборот
Добавлено через 44 минуты
volvo, :
Pascal
1
Cursive = true
как нехорошо

Добавлено через 1 минуту

Не по теме:

Я понимаю, что ты писал максимально близко к тому коду, который автор темы выложил, но все таки лучше учить людей сразу, что сравнивать булево значение с константой это плохо скорее не потому, что так нельзя, а потому что некрасиво. :)

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,878
Записей в блоге: 12
07.10.2017, 21:49
Цитата Сообщение от gas139 Посмотреть сообщение
все заглавные буквы заменяются на прописные
А ничего, что это вообще одно и то же, заглавные и прописные? Может, на строчные? Тогда вот так, совсем просто:

Pascal
1
2
3
4
5
6
7
function f(s : string; Cursive : boolean) := 
  Cursive ? s.ToLower() : s.ToUpper();
 
begin
  writeln(f('FGAFSjkadjDhs', true)); // fgafsjkadjdhs - все заглавные стали строчными, остальные не изменились
  writeln(f('FGAFSjkadjDhs', false)); // FGAFSJKADJDHS - все наоборот, все строчные - стали заглавными
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2017, 21:49
Помогаю со студенческими работами здесь

В чем заключается ошибка ?
procedure TForm1.Button1Click(Sender: TObject); var i,j : integer; begin randomize; for i:=0 to form1.StringGrid1.ColCount-1 do ...

Подскажите,в чем заключается ошибка.
Пишет,что в 26(здесь на 27) строке нету ")" перед ";". #include "stdafx.h" #include <iostream> using namespace std; int...

В чём заключается моя ошибка?
#include "iostream" using namespace std; int main () { int n,a,b,c; //a-количество часов //b-количество минут ...

Не могу понять в чем заключается ошибка.
#include <iostream.h> #include <conio.h> #include <string.h> struct air {char punkt; float vriz; float vrpr; int ksm; int...

Объяснить, в чем заключается синтаксическая ошибка
Объяснить, в чем заключается синтаксическая ошибка (или ошибки) в приведенной программе. Написать тот вариант программы, который, по вашему...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru