Hanniball

Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Balak bittu Цитата: Удалите из второй строки все символы, которые встречаются в первой строке, и поместите их в третью строку | const n=20;{длина строк, поставь нужное значение} ... var s1,s2,s3:string[n]; ... i:=1; repeat if pos(s1[i],s2)<>0 then{если i-й элемент 1-й строки есть во второй } s3:=s3+s1[i];{то добавляем его в 3-ю} while pos(s1[i],s2)<>0 do{пока i-й элемент 1-й строки есть во второй удаляем его вхождения} delete(st2,pos(s1[i],s2),1); inc(i); until i>n; есть небольшие нюансы с наличием повторений символов в 3-й строке, но по идее препод должен схавать RoMiGoR Цитата: с проверкой корректности параметров вызова. | скорее всего имеется в виду попадание параметров в видимую область экрана например, расширение 320x240 нужно проверить попадает ли "заданая облась экрана" в это расширение, не выходит ли прямоугольник с заданым размером за эту область и корректность выбора цвета пример реализации: var flag:boolean;{просто флаг для удобства в цикле} ... flag:=true repeat read(x,y);{вводишь область(x,y)} if (x>320)or(x<0)or(y>240)or(y<0) then {для расширения 320x240} begin flag:=false; writeln('параметры не катят'); end; until flag; проверку остального, думаю, добавить не сложно Oaip Цитата: расставьте строки данной матрицы в порядке возрастания элементов первого столбца".Как лучше ее реализовать и с помощью какой сортировки каким методом...? | берешь в учебнике реализацию любой сортировки, например пузырьковой. Там чаще всего обрабатывается 1-мерный массив (a[i]...), ты осравниваешь 1 элементы строк (a[i,1]), а когда приходит время менять эл-ты местами делаешь что-то вроде for j:=1 to m do begin x:=a[i,j]; a[i,j]:=a[i+1,j]; a[i+1,j]:=x; end; с индексами i, i+1 и т д разберешься из контекста, если кратко, то это номера строк, которые ты меняешь местами SKALKER Цитата: но мне нужно решить эту задачю спомощью цикла WHILE... | for i:=1 to n do запросто заменяется на i:=1; while i<=n do begin ... inc(i); end; а насчет Цитата: у меня ничего не получилось... | надо хотя бы немного подумать смотри код выше, я подразумевал, что значения забиты в 2 массива x,y:array[1..n] of integer; соответственно xi и yi заменяешь на x[i] и y[i] и все должно работать! если подумать еще немного, то в задаче нужно найти самую удаленную от центра точку, расстояние от нее до центра и есть мин радиус, у самой удаленной точки сумма x[i]+y[i] максимальна max:=x[1]+y[1]; nmax:=1; i:=2; while i<=n do begin if x[i]+y[i]>max then begin max:=x[i]+y[i]; nmax:=i; end; inc(i); end; r:=sqrt(sqr(x[nmax])+sqr(y[nmax])); все! Добавлено: boogman Цитата: вот помогите плиз, знаю что простая задача, | function p(x:real):real; var n,i:byte; nx:longint; sum:real; begin sum:=1; for n:=1 to 10 do begin nx:=exp(x * In (n)) sum:=sum*nx/(nx*n+5*n); end; p:=sum; end; в паскале не тестировал, так что сам копайся)) Добавлено: smilrena Цитата: но точно что неправильно умножает, и когда читаю числа не с одного а пару фаилов и хочу ответ в третий фаил записать, то не дает.. | к сожалению трудно тебе чем то помочь, разбиратся в твоем коде ну ооооочень долго, в общем насчет умножения мучаешь поиск, что то типа "длинная арифметика". Подобные функции писались не раз. а насчет файлов, в листинге у тебя только чтение из единственного файла, телепатией я к сожелению не страдаю)) Цитата: assign(f1, input); reset(f1); | поменяй input на другое название. Это зарезервированое слово. Если надо писать в файл, то при открытии заместо reset(file) пиши rewrite(file); и не забывай закрывать все в конце. |