Убедительная просьба ко всем, кто выкладывает исходники: 1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!
Прежде чем задать вопрос, воспользуйтесь учебником
Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36
Гуру программирования помогите решить эти задачи или мне во вторник наступит секирь башка.Спасибо.
P.S:по возможности в решениях не использовать Label(метки)
Запись:
Пусть дан текст за которым следует !(воскл.знак).Замените прописные
русские буквы, встречающиеся в тексте строчны
ми.
Массив:
Пусть дана вещественная матрица размером n*m, в которой не все элементы
равны 0.Получите новую матрицу путем деления всех элементов данной матрицы
на ее наибольший по модулю элемент.
Множества:
Задана строка из цифр .Используя множества четных цифр сосчитать сколько их в этой строке.
Файлы:
Студентам была предложена анкета о том ,знание каких из прочитанных курсов могут потребоваться в будущей
работе(3-5 любых дисциплин пр.матнализ).Результаты анкетирования были занесены в файл.Напишите программу обработки
файла анкетирования.Перенесите файл записи с положительными оценками заданного предмета.
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
instinman писал(а):
Пусть дан текст за которым следует !(воскл.знак).Замените прописные русские буквы, встречающиеся в тексте строчны ми.
Код:
uses crt; var i, d: integer; s: string; begin clrscr; write('Input text: '); readln(s); i:=1; while (s[i]<>'!') do begin if (s[i] in ['А'..'Я']) then begin d:=ORD(s[i])-ORD('А'); delete(s,i,1); insert(CHR(ORD('а')+d),s,i); end; inc(i); end; write(s); readln; end.
instinman писал(а):
Пусть дана вещественная матрица размером n*m, в которой не все элементы равны 0.Получите новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент.
Код:
const n = 5; m = 4;
var A: array [1..n,1..m] of real; i, j : integer; max: real;
begin randomize; max:=0; writeln('Source matrix'); for i:=1 to n do begin for j:=1 to m do begin A[i,j]:=(random(200)-100)/20; write(A[i,j]:4:2,' '); if abs(A[i,j]) > max then max := abs(A[i,j]); end; writeln; end; writeln; writeln('Max = ',max:4:2); writeln('New matrix');
for i:=1 to n do begin for j:=1 to m do begin A[i,j]:=A[i,j]/max; write(A[i,j]:4:2,' '); end; writeln; end; readln;
end.
instinman писал(а):
Множества: Задана строка из цифр .Используя множества четных цифр сосчитать сколько их в этой строке.
Код:
type TInt = 1..9;
var str: string; evens: set of TInt; i, cntr: integer;
begin for i:=2 to 8 do if (i mod 2) = 0 then evens := evens + [i];
write('Yuor string: '); readln(str);
cntr:=0; for i:=1 to Length(str) do if (ORD(str[i])-48) in evens then inc(cntr);
write('Count of even numbers is ',cntr);
readln;
end.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Member
Статус: Не в сети Регистрация: 13.01.2006 Откуда: Rostov-On-Don
Огромная просьба помочь решить, дело в том что их куча навалилась и яне успеваю все решить:
Язык: Паскаль.
Есть конвеер, работающий в режиме "очередь", на который помещаются детали детали. Так же есть второй конвеер для бракованных деталей, работающий в режиме "очередь". Написать программу, которая будет моделировать:
1. Заполнение конвеера заданным кол-вом деталей, причем каждая деталь имеет порядковый номер и вес.
2. Детали, имеющие вес меньше заданного удаляются из очереди, а остальные по порядку помещаются на второй конвеер. После того как детали закончаться на первом конвеере,они со второго перемещаются обратно на первый. В ходе выполнения данной операции, выводить на экран содержимое второго, а затем и первого конвеера.
Для реализации вывода содержимого конвеера, выводить на экран порядковый номер детали и ее вес,когда происходит добавление данных в очередь. Перед выходом из программы, очистить динамическую память.
_________________ It`s Better To Reign In Hell Than Serve In Heaven.
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
viger
Код:
uses crt;
type TData = record number: word; weight: real; end; PComp=^Comp; Comp=record D : TData; pNext, PPrevious :PComp end; var p1Begin, p2Begin : PComp; DetailCount, i: word; ScreeningWeight: real; Data: TData;
procedure Add(Var beg : PComp; Data : TData); var tmp: PComp; begin New(tmp); tmp^.D:=Data; if beg = nil then begin tmp^.pNext := tmp; tmp^.PPrevious := tmp; beg:=tmp; end else begin tmp^.pNext := beg; tmp^.PPrevious := beg^.PPrevious; beg^.PPrevious^.pNext:=tmp; beg^.PPrevious:=tmp; end; end;
procedure Extract(Var beg : PComp; var Data : TData); var tmp: PComp; begin Data:=beg^.D; if beg^.PPrevious = beg then begin dispose(beg); beg:=nil; end else begin tmp:=beg; beg:=beg^.pNext; beg^.PPrevious := tmp^.PPrevious; dispose(tmp); end; end;
// fill main line writeln('The main line (n - number, w - weight):'); while i<=DetailCount do begin Data.number:=i; Data.weight:=random(100)/20; Add(p1Begin,Data); writeln('n ',Data.number:2,' w ',Data.weight:3:1,'; '); inc(i); end;
// fill ancillary line & output results writeln('The ancillary line (n - number, w - weight):'); while p1Begin<>nil do begin Extract(p1Begin,Data); if Data.weight>=ScreeningWeight then begin Add(p2Begin,Data); writeln('n ',Data.number:2,' w ',Data.weight:3:1,'; '); end; end;
// clear ancillary line while p2Begin<>nil do begin Extract(p2Begin,Data); end; readln; end.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Member
Статус: Не в сети Регистрация: 08.12.2005 Откуда: Питер!
Цитата:
3) Составить программу для ввода квадратной матрицы A (n x n). Вычислить и вывести на экран монитора величины S1, S2 суммы элементов(следы), соответственно, двух главных диагоналей матрицы A.
Лорд, тут всё-таки главной и побочной! В книге оказалась опечатка
Чего оффтопишь? Я знаю, что двух главных диагоналей в одной матрице быть не может, но это математика и к паскалю особого отношения не имеет. Или есть проблемы с выполнением задания? Lord_of_Darkness
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
MW!
Код:
var A: array [1..50,1..50] of real; i, j, n : integer; s1, s2: real; begin write('n = '); readln(n); writeln('A:'); s1:=0; s2:=0; randomize; for i:=1 to n do begin for j:=1 to n do begin A[i,j]:=(random(100)-50)/20; if i=j then s1:=s1+A[i,j] else if i=(n-j+1)then s2:=s2+A[i,j]; write(A[i,j]:4:2,' '); end; writeln; end;
Судари, помогите пожалуйста с задачками, у самого не получается... Огромное спасибо за помощь!
1. Даны взаимно простые натуральные числа p и q (p<q). Найти периодическую и непериодическую части (две последовательности однозначных неотрицательных чисел) десятичной дроби, равной p/q.
2. Смысл такой: вводишь дату(день, месяц, год), получаешь какой это день недели.
3. Никак не могу найти ошибку в коде:( Может у вас получится...
Условие задачи
Код:
Program Ex14; uses crt;
var i : integer; x : real;
function f(x: real; n: integer): real; var k: integer; s: real; begin s:=0; for k:=1 to n do s:=s+sqrt(exp(-k*x)+exp((abs(k-1))*ln(x)))/cos(k*x)+sin(k*x); f:=s+Ln(abs(n*x-1)); end;
begin clrscr; writeln('┌───────┬───────┬───────────┐'); writeln('│ n │ x │ f │'); writeln('├───────┼───────┼───────────┤'); for i:=10 to 15 do begin x:=0.6; repeat writeln('│ ', i,' │ ',x:3:2,' │',f(x,i):10:5,' │'); if (x=1.1) and (i=15) then writeln('└───────┴───────┴───────────┘') else writeln('├───────┼───────┼───────────┤'); x:=x+0.25; until x>1.1; end; readln; end.
Member
Статус: Не в сети Регистрация: 05.12.2005 Откуда: Rostov-on-Don
Подкиньте плиз программу поразрядной сортировки на Паскале. Или ссылку на неё, я не нашёл ((((
Добавлено спустя 7 минут, 51 секунду Haborym Вот вторая твоя задачка
Код:
program Den_of_Day; uses Crt; var IsCorrectDate:boolean; d,m,y:integer; Procedure InputDate(var d,m,y:integer; var correctly:boolean); begin Writeln('Введите дату в формате ДД ММ ГГГГ'); readln(d,m,y); correctly:= (d>=1) and (d<=31) and (m>=1) and (m<=12) and (y>1581) and (y<4902) end; Procedure WriteDay(d,m,y:integer); const Day:array [0..6] of string [11] = ('Воскресение','Понедельник','Вторник','Среда' ,'Четверг','Пятница','Суббота'); var c,w:integer; begin if m<3 then begin m:= m + 10; y:= y - 1 end else m:= m - 2; c:= y div 100; y:= y mod 100; w:=abs(trunc(2.6*m-0.2)+d+y div 4+y+c div 4-2*c) mod 7; writeln(Day[w]) end; begin textbackground(8); clrscr; textcolor(4); repeat InputDate(d,m,y,IsCorrectDate); if IscorrectDate then WriteDay(d,m,y) until not IsCorrectDate end.
Foxtrot У меня точно такое же решение, с такими же формулами:))) Так проблемма в том, что она бывает ошибается... И притом как то странно, никак не удавалось вычислить закономерность(но точно было ясно что из-за високосных... но в некоторые високосные она показывала правильно, в некоторые нет) Я просто слышал от куда-то, что есть ещё её второй вариант решения...
Проверь: 01 01 2004 - должен быть четверг, показывает среду...
Junior
Статус: Не в сети Регистрация: 01.12.2006 Откуда: Запорожье
Ребят, помогите, вроде задачка простая, а чего то не получается...
Мне нужно установить курсор в определенные координаты, тоесть я Спрашиваю "Укажите координаты, в которые необходимо установить курсор" Затем мы вводим 2 координаты Х,У. И собственно все. Заранее спасибо за помошь.
Господа помогите пожалуйста с моими задачками... Мне в пятницу будет геноцид если я их не сдам((( От деканата и так уже получил строгий выговор и если не исправлюсь, не покажу своё усердие в учёбе, будет: Прощай Универ, Здравствуй Армия:)))
А значит, страна лишится ещё одного будущего программиста:)))
Member
Статус: Не в сети Регистрация: 05.12.2005 Откуда: Rostov-on-Don
San_Tehnik писал(а):
Большее тебе человеческое спасибо, ты мне очень помог
Рад помочь Haborym А что в 3-й не так? У меня всё работает?
Что касается первой - то саму дробную часть выделить могу, а вот как подразумевается найти периодическую и непериодическую части... А если периодичность наблюдается каждые 1000000 символов? Вон даже в числе Пи до сих пор ищут периодичность. Добавлено спустя 36 секунд Мне помочь никто не может?
Ответ с маткадом не совпадает:((( Думал на паскале формулу не правильно записал, но раз 20 проверял, ошибку так найти и не могу... По этому и прошу помощь у гуру, чтоб меня тыкнули носом в ошибку.
Foxtrot писал(а):
Что касается первой - то саму дробную часть выделить могу, а вот как подразумевается найти периодическую и непериодическую части... А если периодичность наблюдается каждые 1000000 символов? Вон даже в числе Пи до сих пор ищут периодичность.
Ну я думаю преподу хватит определение переодичности вида: 123123123... В этой задачке надо через div и mod шаманить? Был бы рад примеру поиска переодичности или ссылкай где про это можно почитать...
Member
Статус: Не в сети Регистрация: 05.12.2005 Откуда: Rostov-on-Don
Haborym Вот нашаманил на коленке. В строку дробную часть думаю перевести труда не составит. Вот мой алгоритм поиска повторения
Код:
Program Povtor; Uses Crt; var s,t:string; i,j:integer; b:boolean; begin clrscr; readln(s); i:=3; b:=true; while (i<length(s)) and (b) do if (s[1]=s[i]) and (s[2]=s[i+1]) then b:=false else inc(i); if i<(length(s)-1) then begin j:=1; t:=''; while j<i do begin t:=t+s[j]; inc(j); end; writeln('Povorenie - '+t); end else writeln('Povtoreniy net'); readkey; end.
Добавлено спустя 56 секунд Насчёт первой сказать ничего не могу.. если реализация формулы верна - значит так оно и есть..
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения