2014 dxdy logo

Научный форум dxdy

Математика, Физика, 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,но как незнаю

 
 
 
 
Сообщение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;

 
 
 
 
Сообщение02.03.2009, 19:58 
как мне код в прогу засунуть?и там то числа не константа,то я к примеру написал!у меня в проге еще присутствует ввод строки.Народ помогите пожалуйста на завтра нужно......

 
 
 
 
Сообщение02.03.2009, 22:21 
это неспортивно. Вам и так уж всё разжёвано и в рот положено (что, кстати, запрещено правилами форума, но я просто не знаю, как иначе внятно ответить на подобный вопрос). А Вы ещё хотите, чтоб Вам весь синтаксис языка изъяснили, вплоть до самых тривиальных деталей. Неспортивно.

 
 
 
 
Сообщение05.03.2009, 18:45 
sv2311
константы объявляются в разделе CONST... А в приведенном коде банальная операция присваивания...
Вначале нужно сделать консорльное приложение, в разделе VAR объявить bcgjkmpetvst переменные.
Приведенный код вставить в шаблоне между словами begin и end;
Чтобы вводить данные, нужно присваивать значение не так:
x:='что-то', а использовать хотя бы оператор read(x), или с переносом строки... можно подсказку добавить оператором writeln.
Ну а в конце вывести все на экран.
********
хотя я это сделал бы иначе и выводил строку на экран по ходу поиска запятых и точки

 
 
 
 полная прога
Сообщение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.

 
 
 
 
Сообщение09.03.2009, 23:51 
sv2311 в сообщении #193464 писал(а):
write(massiv[i]);

Или writeln(massiv[i]), или write(massiv[i], ' ').

И зачем Crt -- только для очистки экрана?

 
 
 
 
Сообщение10.03.2009, 00:38 
write выводит в строку элементы масива,а crt для очистки экрана и только!

 
 
 
 
Сообщение10.03.2009, 10:19 
sv2311 в сообщении #193489 писал(а):
write выводит в строку элементы масива,

, причём ничем не разделённые. И как Вы их собираетесь потом читать?...

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group