Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 13.10.2016, 22:32   #1 (permalink)
Smile188
Member
 
Регистрация: 13.10.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Паскаль

фрагмент программы. Помогите исправить, что бы при вводе кода читались не только цифры, но и другие символы (что бы программа не вылетала)


var
a,x,n,c,i,b,k,j:integer;
s,s_new:array[1..100] of char;
p:array[1..100] of integer;
flag:boolean;


begin


for i:=1 to 100 do
begin
s[i]:=chr(0);
s_new[i]:=chr(0);
end;

flag:=true;
writeln('Введите число символов в строке (<=100)');
readln(n);
if n>100 then
writeln('НЕВЕРНО!Введите число символов в строке (<=100)')
else
writeln('Введите строку');
for i:=1 to n do
read(s[i]);

repeat
writeln('Введите размер блока (>=2)');
readln(a);
if a<2 then writeln(' ОШИБКА!');
until (a<=n) and (a>1);
b:= n mod a ;
if b<>0 then
repeat
writeln('Повторите ввод размера блока (>=2)');
readln(a);
until n mod a=0;




writeln('Введите код');

for i:=1 to a do
begin
read(p[i]);
if (p[i]<=0) or (p[i]>a) then
flag:=false;
end;
j:=2;
if flag=true then
for i:=1 to a do
while (flag=true) and (j<a) do
if p[i]<>p[j] then
inc(j)
else
flag:=false;
Smile188 вне форума   Ответить с цитированием

Старый 13.10.2016, 22:32
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Аналогичные вашей темы участники форума создавали ранее, прочитайте их

Паскаль
Паскаль
Паскаль
Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл
Паскаль

Старый 14.10.2016, 16:25   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 287
Поблагодарили 506 раз(а) в 164 сообщениях
Репутация: 91675
По умолчанию

Немножко причесал до ввода кода. На то, что надписи английские, не обращайте внимание: просто мне так удобнее.
Код:
var
 a,x,n,c,i,b,k,j:integer;
 s,s_new:String;
 Smb:Char;
 p:array[1..100] of integer;
 flag:boolean;


begin
 flag:=true;
 repeat
  writeln('Enter the number of symbols in string (<=100):');
  readln(n);
  if n>100 then writeln('Error!')
 until n<101;
 repeat
  writeln('Enter the string:');
  readln(s);
  if Length(s)<>n then writeln('Error!');
 until Length(s)=n;

 repeat
  writeln('Entel the block length "a" (1<a<n+1) and ((n mod a)=0)');
  readln(a);
  if (a<2) or (a>n) or ((n mod a)<>0) then writeln('Error!');
 until (a<=n) and (a>1) and ((n mod a)=0);


 writeln('Enter the code');
Теперь дальше.
Цитата:
Сообщение от Smile188 Посмотреть сообщение
Помогите исправить, что бы при вводе кода читались не только цифры, но и другие символы (что бы программа не вылетала)
Естественно, будет ругаться, раз вы определили массив p, как численный, а пытаетесь загнать в него "другие символы". Но чтобы отладить эту часть программы, желательно было бы получить разъяснение на словах о том, как формируется этот самый код. Из Вашей программы я этого, извините, понять не сумел.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 14.10.2016, 16:27   #3 (permalink)
Elen7a7
Новичок
 
Регистрация: 14.10.2016
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо)))
Elen7a7 вне форума   Ответить с цитированием
Старый 14.10.2016, 16:46   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 287
Поблагодарили 506 раз(а) в 164 сообщениях
Репутация: 91675
По умолчанию

Цитата:
Сообщение от Elen7a7 Посмотреть сообщение
Спасибо)))
Пожалуйста, хотя странно: единство в двух лицах? Еще исправил ошибку
Код:
until (a<=n) and (a>1) and ((n mod a)=0);
И вопрос об алгоритме формирования кода остается в силе.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 14.10.2016, 17:11   #5 (permalink)
Smile188
Member
 
Регистрация: 13.10.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

сама программа на шифровку и расшифровку, нужно что бы размер блока был кратен числу символов в строке и при вводе кода , можно было ввести любые символы, что бы программа не вылетала , а просто выдавала в конце (при запуске) ошибку, что она и делает , но только при вводе чисел
Smile188 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 15.10.2016, 11:07   #6 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 287
Поблагодарили 506 раз(а) в 164 сообщениях
Репутация: 91675
По умолчанию

Так. Вместо внятного ответа на вопрос - пустой набор слов.
Цитата:
Сообщение от Smile188 Посмотреть сообщение
сама программа на шифровку и расшифровку
Спасибо, но это мало интересно.
Цитата:
Сообщение от Smile188 Посмотреть сообщение
нужно что бы размер блока был кратен числу символов в строке
Это понятно, тут вопросов нет.
Цитата:
Сообщение от Smile188 Посмотреть сообщение
и при вводе кода можно было ввести любые символы, что бы программа не вылетала , а просто выдавала в конце (при запуске) ошибку, что она и делает , но только при вводе чисел
А вот с этим попробуем разобраться. Правильно ли я понял задачу?
1. Код должен состоять ТОЛЬКО из цифр.
2. Если вводится символ, отличный от цифры, то сообщение об ошибке должно появиться не раньше окончания ввода всего кода.
3. Все цифры должны быть различными.

Отписками типа "на и подавись" прошу не утруждаться. Дайте точные ответы на поставленные вопросы.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 15.10.2016, 14:11   #7 (permalink)
Smile188
Member
 
Регистрация: 13.10.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо, большое за помощь. Я уже сама разобралась
Smile188 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 23:32.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.