Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия, Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки
Помогите пожалуйста с програмой в паскале!работа со строками
02.03.2009, 18:37
В строке содержится изображение целых чисел,разделеных запятыми.После последнего числа поставлена точка. Создать масив с целых чисел.(ну типа мы вводим 1,2,3,4,567,5,4,7., а должно на экране ниже вывести 1 2 3 4 567 5 4 7) Нужно использывать процедуру Val и функцию Copy,но как незнаю
ewert
02.03.2009, 19:32
Код:
ss:='1,2,3,4,567,5,4,7.'; i:=0; repeat k1:=Pos(',', ss); k2:=Pos('.', ss); if k1=0 then k1:=k2; inc(i); Val(Copy(ss, 1, k1-1), massiv[i], err); Delete(ss, 1, k1); until k2<>0;
sv2311
02.03.2009, 19:58
как мне код в прогу засунуть?и там то числа не константа,то я к примеру написал!у меня в проге еще присутствует ввод строки.Народ помогите пожалуйста на завтра нужно......
ewert
02.03.2009, 22:21
это неспортивно. Вам и так уж всё разжёвано и в рот положено (что, кстати, запрещено правилами форума, но я просто не знаю, как иначе внятно ответить на подобный вопрос). А Вы ещё хотите, чтоб Вам весь синтаксис языка изъяснили, вплоть до самых тривиальных деталей. Неспортивно.
Student2007
05.03.2009, 18:45
sv2311 константы объявляются в разделе CONST... А в приведенном коде банальная операция присваивания...
Вначале нужно сделать консорльное приложение, в разделе VAR объявить bcgjkmpetvst переменные.
Приведенный код вставить в шаблоне между словами begin и end;
Чтобы вводить данные, нужно присваивать значение не так:
x:='что-то', а использовать хотя бы оператор read(x), или с переносом строки... можно подсказку добавить оператором writeln.
Ну а в конце вывести все на экран.
********
хотя я это сделал бы иначе и выводил строку на экран по ходу поиска запятых и точки
sv2311
полная прога
09.03.2009, 23:44
program sd;
uses crt;
var k1,k2,i,err:integer;
massiv:array[1..50] of integer;
ss:string;
begin
clrscr;
writeln('vvedite ryadok chesel bez probelov');readln(ss);
i:=0;
k2:=0;
repeat
k1:=Pos(',', ss);
k2:=Pos('.', ss);
if k1=0 then k1:=k2;
inc(i);
Val(Copy(ss, 1, k1-1), massiv[i], err);
Delete(ss, 1, k1);
write(massiv[i]);
until k1=k2;
readln;
end.