Убедительная просьба ко всем, кто выкладывает исходники: 1. Обязательно пользуйтесь тэгом code (иначе очень трудно читать)
2. Старайтесь делать отступы
Если вы хотите чтобы вам помогли в написании программы, внятно излагайте задание!
Прежде чем задать вопрос, воспользуйтесь учебником
Возможно, что нужная вам программа уже написана, поэтому советую просмотреть список здесь и здесь Отредактировано куратором: Lord_of_Darkness. Дата: 07.07.2006 19:36
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
evtil вот тебе по словам-близнецам
Код:
uses crt;
function CompareRtWrd(word1, word2: string):boolean; var i, j : integer; IsRepeat, Ident : boolean; begin Ident:=true; CompareRtWrd:=false; if Length(Word1) <> Length(Word2) then Exit; if Word1 = Word2 then Exit;
for i:=1 to Length(Word1) do begin IsRepeat:=false; for j:=1 to Length(Word1) do if Word1[i] = Word2[j] then IsRepeat:=true; if not IsRepeat then Ident:=false; end;
CompareRtWrd := Ident;
end;
var SourceStr : string; words: array [1..100] of string; i, j, WordsCount : integer; IsRtWords: boolean; begin clrscr; write('Ваш текст: '); readln(SourceStr); WordsCount:=1; for i:=1 to Length(SourceStr) do begin if SourceStr[i] in [' ',',','.'] then Continue else begin if SourceStr[i-1] in [' ',',','.'] then inc(WordsCount); words[WordsCount]:=words[WordsCount]+SourceStr[i]; end; end;
Write('Слова-близнецы в этом предложении '); IsRtWords:=false; for i:=1 to WordsCount-1 do for j:=i+1 to WordsCount do begin if CompareRtWrd(Words[i],Words[j]) then begin if not IsRtWords then write(': ') else writeln(', '); write(' ',Words[i],' и ',Words[j]); IsRtWords:=true; end; end;
if not IsRtWords then Write('не найдены.');
readln; end.
Я так понимаю, одинаковые слова близнецами не являются?
По второму заданию требуются пояснения. Т.е. хотябы какие должны быть входные и выходные данные.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Спасибо.
Задача 2 переписана из задачника без изм. в тексте. Я думаю входные данные длжны быть кол-во человек. А в конце проги надо указать человека в первоначальном кругу, который оказался катым.
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
evtil вот, лови
Код:
uses crt;
function CalcNum(n, k: integer): integer; var i, ElCount, DcEl : integer; A: array [1..1000] of byte; begin for i := 1 to n do A[i] := i; ElCount := n;
repeat if k <= ElCount then DcEl := k else if (k mod ElCount) = 0 then DcEl:=ElCount else begin DcEl := (k mod ElCount); end;
{..... test .....} write('['); TextColor(white); for i:=1 to ElCount do begin if i=DcEl then TextColor(12) else TextColor(white); write(' ',A[i],' '); end; TextColor(white); writeln(']'); {.... -test- ....}
for i := DcEl to ElCount-1 do A[i]:=A[i+1];
ElCount := ElCount - 1;
until ElCount <= 1;
CalcNum := A[1];
end;
var n, k, num : integer; begin clrscr; write('Введите n: '); readln(n); write('Введите k: '); readln(k); TextColor(white); num := CalcNum(n,k); write('Номер оставшегося человека в первоначальном круге ',num); readln; end.
test - это для визуализации исключения народа
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Member
Статус: Не в сети Регистрация: 10.03.2003 Откуда: Россия, Моск...
а как процедуры изображаются на блок-схемах? также как функции? только в первом и последнем блоке пишутся "начало" и "конец" (в функциях входные и выходные параметры). А в теле проги тоже двойные вертикальные полосы?
На самом деле мне надо изобразить модуль.
Я собираюсь изобразить каждую процедуру и функцию отдельно, потом написать код модуля. Потом блок-схему самой проги, а потом код проги.
Как по науке?
PS препод у нас придирчивый, ничего не объясняет, не показывает... только оформление смотрит...
Member
Статус: Не в сети Регистрация: 25.11.2005 Откуда: краснодар
если размеры полей определены то используй рекорд если нет то
какие нить маркеры обозначающие границы записи(ето я о файле)
проверять значения введенные юзером можно определив в программе
множества символов которые могут входить в введенные данные(
например в число могут входить '0'..'9','-','+')и проверять после
ввода на соответствие
хорошо шо писать на паскале. а вот если бы было принципиально на С...
m2 насколько мне извесно все подпрограммы изображаются одинаково
А у меня вот такой вопрос:
Как написать процедуру (функцию), которая искала бы максимальные из простых чисел в матрице
и выводила бы номера строк, где эти числа находятся...
это единственная загвостка в моей проге...
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
Genius Exoticus Пока в голову пришел только такой вариант:
1. ищем максимальный элемент матрицы
2. считаем все простые числа, до найденного максимума, включая их в отдельный массив
3. ищем перебором простые числа (кстати, что значит максимальные? максимальные в строках/столбцах?)
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Member
Статус: Не в сети Регистрация: 20.12.2005 Откуда: Волгоград
Pascal - это идеальная платформа для обучения. Вот и заставляют нас в учебном заведении писать проги на нем...
Задача: Заданы два двумерных массива произвольных размеров, состоящий из целых чисел. Найти количество элементов одного массива, не равных нулю и сумму четных элементов другого. Если значение количества есть четное число, найти минимальный элемент этого массива, если не четное, то найти максимальный элемент другого массива. Оба массива отпечатать в общем виде.
Код программы:
Код:
Program MASS; Uses CRT; var a,b: array [1..20, 1..20] of integer; A1,B1:integer; min,max,t,y,i,j,n,m,r,s,z:integer; BEGIN CLRSCR; R:=0; S:=0; Writeln ('Vvedite razmer massiva A:'); Write ('A:='); Read (A1); Writeln ('2x Massiv A:'); writeln; RANDOMIZE; FOR i:=1 TO A1 DO BEGIN FOR j:=1 TO A1 DO BEGIN A[i,j]:=Random (50); write (A[i,j]:3); write; END; Writeln; Writeln; END; FOR i:=1 TO A1 DO BEGIN FOR j:=1 TO A1 DO IF a[i,j]<>0 THEN R:=R+1; END; IF r<>0 THEN writeln ('Kol-vo elementov ne ravnix 0:', R); IF r=0 THEN writeln ('Kol-vo elementov ne ravnix 0 HET'); writeln; Writeln ('Vvedite razmer massiva B:'); Write ('B:='); Read (B1); Writeln ('2x Massiv B:'); RANDOMIZE; FOR n:=1 TO B1 DO BEGIN Writeln; FOR m:=1 TO B1 DO BEGIN B[n,m]:=Random (50); write (B[n,m]:3); write; END; Writeln; Writeln; END; FOR n:=1 TO B1 DO FOR m:=1 TO B1 DO BEGIN Y:=B[n,m] MOD 2; IF Y=0 THEN S:=S+B[n,m]; END; Writeln ('Vivod summu: ',S); Writeln; T:=R MOD 2; IF T=0 THEN BEGIN MIN:= A[i,j]; FOR i:=1 TO A1 DO BEGIN FOR j:=1 TO A1 DO IF a[i,j]<min THEN MIN:=A[i,j]; END; END; IF T=0 THEN writeln ('Minimalnoe znachenie massiva A: ',min); T:=R MOD 2; IF T=1 THEN max:= B[n,m]; FOR n:=1 TO B1 DO Begin FOR m:=1 To B1 DO IF B[n,m]>=max THEN max:=B[n,m]; END; IF T<>0 THEN writeln ('Maximalnoe znachenie massiva B:',max); readkey END.
P.S. Прога легкая, но, запутаться тоже легко. Отредактировано куратором: Lord_of_Darkness. Дата: 05.03.2006 15:24
_________________ Все в этом Мире имеет какой то смысл. В нем нет ничего бесполезного или случайного...
Member
Статус: Не в сети Регистрация: 20.12.2005 Откуда: Волгоград
Lord_of_Darkness:
Помоги с задачей, я что-то не доганяю.
Задача на работу с файлами, процедурами и функциями.
Условие:
Создать числовой файл F. Найти сумму положительных компонент файла,
расположенных до максимальной компоненты файла. Сумму и содержание файла распечатать.
_________________ Все в этом Мире имеет какой то смысл. В нем нет ничего бесполезного или случайного...
var Numbers : array [1..NumbersCount] of integer; i, MaxIndex : integer;
function FileExists(FileName: String): Boolean; var F: file; begin {$I-} Assign(F, FileName); Reset(F); Close(F); {$I+} FileExists := (IOResult = 0) and (FileName <> ''); end;
procedure WriteFile(FileName: string); var fl : file of integer; i, num: integer; begin Assign(fl,FileName); rewrite(fl); for i := 1 to NumbersCount do begin num:=random(100)-50; write(fl,num); end; Close(fl); end;
function ReadFromFile(FileName: string): boolean; var fl : file of integer; i : integer; begin if FileExists(FileName) then begin Assign(fl,FileName); Reset(fl); i:=1; while not EOF(fl) do begin read(fl,Numbers[i]); inc(i); end; ReadFromFile := true; end else ReadFromFile := false; end;
function FindMax: integer; var i, max, index: integer; begin max := Numbers[1]; index := 1; for i := 2 to NumbersCount do if Numbers[i] > max then begin max := Numbers[i]; index := i; end; FindMax := index; end;
function CalcSumm(MaxIndex: integer): integer; var i, summ: integer; begin summ:=0; for i:= 1 to MaxIndex do if Numbers[i] > 0 then summ := summ + Numbers[i]; CalcSumm := summ; end;
begin clrscr; randomize; WriteFile(FileName); if ReadFromFile(FileName) then begin writeln('Numbers from file (',NumbersCount,'):'); for i := 1 to NumbersCount do write(Numbers[i],'; '); writeln; MaxIndex := FindMax; writeln('MaxIndex = ',MaxIndex); writeln('Summa = ',CalcSumm(MaxIndex)); end else writeln('File ',FileName,' not found'); readln; end.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Member
Статус: Не в сети Регистрация: 20.12.2005 Откуда: Волгоград
Нужна помощь в создании базы данных:
Создать базу данных «Overclockers»
Она должна содержать:
1. Ник пользователя
2. Производитель CPU (Пример – Intel/AMD)
3. Модель CPU (Пример – Pentiun 4/Athlon 63)
4. Штатная частота CPU
5. @ Частота CPU
6. Видеосистема
7. Результат в 3Dmark 01
8. Результат в 3Dmark 03
9. Результат в 3Dmark 05
10. Результат в 3Dmark 06
11. Система охлаждения
12. Email пользователя
13. ICQ пользователя
14. Напряжение ядра
15. Максимальная температура
В меню должно быть:
1) Создать базу
2) Дополнить базу
3) Редактировать базу
4) Поиск
4) Удалить базу.
Организовать поиск по базе для значений:
16. Производитель CPU (Пример – Intel/AMD)
17. Модель CPU (Пример – Pentiun 4/Athlon 63)
18. Штатная частота CPU
19. @ Частота CPU
20. Система охлаждения
Сделать базу как можно проще, не используя сложных операторов.
_________________ Все в этом Мире имеет какой то смысл. В нем нет ничего бесполезного или случайного...
Куратор темы Статус: Не в сети Регистрация: 03.01.2004 Откуда: Питер
GrifeXВот база. Чуть не бросил по пути, но раз уж обещал...
Там еще есть мелкие недостатки в красивостях (типа где-то лишний раз строка переводится), но это уже сам подправь по своему вкусу.
_________________ Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)
Последний раз редактировалось Lord_of_Darkness 03.05.2006 14:27, всего редактировалось 1 раз.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения