BlackFlame
Новичок
|
Здравствуйте, уважаемые! Пожалуйста, помогите доработать программу, чтобы вывод суммы осуществлялся _только_ если в конце стоит _точка_. Условие: Дана последовательность литер, имеющая следующий вид: d1±d2±d3±…±dn (di- цифры) за которой следует точка. Вычислить данное значение. Код программы: const cf=['0'..'9']; var s:string; i,sum,t,c:integer; begin writeln('Vvedite posledov. tsifr razdelennyh znakami + i -,v konce tochka:'); readln(s); val(s[1],t,c); sum:=t; {первую цифру превращаем в число, это первая сумма} for i:=2 to length(s)-1 do {то же самое делаем с остальными цифрами} begin if (s[ i ] in cf)and(s[i-1]='+')then begin val(s[ i ],t,c); sum:=sum+t; {если плюс, прибавляем} end else if (s[ i ] in cf)and(s[i-1]='-')then begin val(s[ i ],t,c); sum:=sum-t; {если минус, вычитаем} end; end; writeln('sum=',sum); readln; end. Буду очень благодарна. (Сообщение отредактировал KMA 19 апр. 2008 23:18)
|
Всего сообщений: 2 | Присоединился: апрель 2008 | Отправлено: 19 апр. 2008 16:45 | IP
|
|
Serega1992
Новичок
|
Меняете строку readln(s); на следующую: repeat readln(s) until s[length(s)]='.'; Вычисления не будут производиться, пока пользователь не введёт правильную комбинацию.
|
Всего сообщений: 50 | Присоединился: апрель 2008 | Отправлено: 19 апр. 2008 17:16 | IP
|
|
BlackFlame
Новичок
|
Спасибо, Serega1992! Очень помог.
|
Всего сообщений: 2 | Присоединился: апрель 2008 | Отправлено: 19 апр. 2008 18:51 | IP
|
|
KMA
Долгожитель
|
Den 4 ik Если ты хотел сделать сортировку, то тебе необходимо после then ( в условии цикла) заключить три операции в логические скобки (begin и end) и будет тебе счастье.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 апр. 2008 0:37 | IP
|
|
KMA
Долгожитель
|
Помогите пожалуста...Сам немогу составить..Надо сложить 3 задачи в одну программу,так чтоб пользователь сам выбрал что он хочет решить.Вот коды задачь.
Воспользуйся оператором case. Впереди попросив ввести цифру задачи.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 апр. 2008 2:18 | IP
|
|
Guest
Новичок
|
В строковом массиве хранятся названия дней недели. Вывести их в алфавитном порядке. У меня чет не получается. Найдите плиз ошибку:
Code Sample:
program SortDriver; type DataItem = string[80]; DataArray = array [1..80] of DataItem; var test: dataarray; t, t2: integer; testfile: file of char; procedure QsString(var item: DataArray; count:integer); procedure qs(l, r: integer; var it:DataArray); var i,j:integer; x, y: DataItem; begin i := l; j := r; x := it[(l+r) div 2]; repeat while it < x do i := i+1; while x < it[j] do j := j-1; if i<=j then begin y := it; it := it[j]; it[j] := y; i := i+1; j := j-1; end; until i>j; if l<j then qs(l, j, it); if l<r then qs(i, r, it); end; begin qs(1, count, item); end; begin Assign(testfile, 'c:\mass.txt'); Reset(testfile); t := 1; while not Eof(testfile) do begin read(testfile, test[t]); t := t+1; end; t := t-2; QsString(test, t); for t2 := 1 to t do write(test[t2]); WriteLn; end.
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 20 апр. 2008 9:58 | IP
|
|
KMA
Долгожитель
|
Вот честное слово, пишите комментарии, хотя бы общие. Быстрая сортировка у тебя вроде верно работает. А вот с типом файла, ты чего-то намудил. Пиши уж тогда
Code Sample:
var testfile: file of string;
Если у тебя тип char, да ты еще и read юзаешь, получается он у тебя считывает по одному символу, за один проход. Т. е., если у тебя написано что-то типа "Понедельник" то это тебе вернет чудо на первом месте "П", на втором "о", на третьем "н" и т. д. Вообще не страдай ерундой и объяви файл как текстовый... и не парься вообщем... юзай readLn, и writeLn;
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 20 апр. 2008 22:38 | IP
|
|
Guest
Новичок
|
пасибо большое. Только преподаватель сказал "укоротить" программку. Если не трудно как нить сделайте покороче, у меня не получается(
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 20 апр. 2008 22:47 | IP
|
|
DaImeR
Новичок
|
Что то до меня не дошло...а как тогдa сделать чтоб считывал слово из массива и потом сортировал по первой букве и т. д. Если не трудно покажите на примере
|
Всего сообщений: 7 | Присоединился: апрель 2008 | Отправлено: 21 апр. 2008 6:41 | IP
|
|
Den 4 ik
Новичок
|
KMA ,спасибо!еще есть такой вопрос:каким образом обозначить предпоследний член матрицы?послдний мне подсказали так a[n-i+1].
|
Всего сообщений: 6 | Присоединился: апрель 2008 | Отправлено: 21 апр. 2008 16:27 | IP
|
|
|