ПАСКАЛЬ!! |
Здравствуйте, гость ( Вход | Регистрация )
ПАСКАЛЬ!! |
December 18 2005, 17:51
Сообщение
#1
|
|
2 разряд Группа: Пользователи Сообщений: 81 Регистрация: 24.11.2005 Из: Лыткарино-МИФИ(Т1-14) Пользователь №: 6 Реальное имя: Софья Учебная группа: Т1-14 |
Помогите пожалуйста с информатикой! нужно к четвергу,к зачету сдать проги.Они в принципе не сложные,но их очень много, а я паскаль вообще не знаю,и сама все сделать не могу. Если есть время то напишите пожалуйста эти проги:
1.(104) Даны натуральные числа N и X. Задана случайная целочисленная матрица N*N . Получить последовательность а(1), а(2),....,а(N) из нулей и единиц,где а(i)=1 если все элементы i-й строки =< X, и а(i)=0 если все элементы i-ой строки >X. 2.(74) Написать программу , которая позволяла бы выводить на экран текст и обрабатывать нажатие клавиши Delete,то есть затирать символы в текущем положении курсора. Сделать возможным перемещение курсора стрелками по экрану. 3.(81) Написать программу,которая позволяет определять код любых клавиш,в том числе системных, и вывод их кода на экран.Выход осуществляется с помощью цифры "0". 4.(62)Найти все делители заданного натурального числа . Реализовать функцию для проверки, является ди данное число делителем другого. 5.(66) Дана квадратная матрица N*N , элементами которой являются целые числа. Определить строку матрицы,имеющую наибольшее количество четных элементов. Написать функцию нахождения количества четных элементов в строке. -------------------- Но нет, я не умер,
Я выстрелил в небо Серебряной пулей, Туда, где я не был... |
|
|
December 18 2005, 18:56
Сообщение
#2
|
|
Обладатель Нобелевской премии по ориентированию Группа: Админы сайта Сообщений: 1087 Регистрация: 23.11.2005 Из: Москва, Чертаново Пользователь №: 4 Skype: scorpion_mg Реальное имя: Виктор Учебная группа: выпускник! |
я знаю алгоритм, но паскаль я уже забыл (последний раз писал прогу - три года назад)
-------------------- |
|
|
December 18 2005, 19:04
Сообщение
#3
|
|
2 разряд Группа: Пользователи Сообщений: 81 Регистрация: 24.11.2005 Из: Лыткарино-МИФИ(Т1-14) Пользователь №: 6 Реальное имя: Софья Учебная группа: Т1-14 |
но если не саму прогу,то хотя бы подскажите как это осуществить,в смысле какие там действия должны быть..
-------------------- Но нет, я не умер,
Я выстрелил в небо Серебряной пулей, Туда, где я не был... |
|
|
December 18 2005, 20:48
Сообщение
#4
|
|
Жутко ленивый. Группа: Администраторы Сообщений: 2661 Регистрация: 22.11.2005 Из: Москва, Марьино Пользователь №: 1 Skype: dudnikov.v Реальное имя: Владимир |
Цитата 1.(104) Даны натуральные числа N и X. Задана случайная целочисленная матрица N*N . Получить последовательность а(1), а(2),....,а(N) из нулей и единиц,где а(i)=1 если все элементы i-й строки =< X, и а(i)=0 если все элементы i-ой строки >X. Условия задачи поставленны некорректно Цитата 3.(81) Написать программу,которая позволяет определять код любых клавиш,в том числе системных, и вывод их кода на экран.Выход осуществляется с помощью цифры "0". Что подразумевается под системными клавишами?Цитата 4.(62)Найти все делители заданного натурального числа . Реализовать функцию для проверки, является ди данное число делителем другого. Халява.Функция для проверки на делимость числа a на число b: Цитата function division(a,b:integer):boolean; begin if (a mod ) = 0 then division:=true else division:=false; end; Цитата 5.(66) Дана квадратная матрица N*N , элементами которой являются целые числа. Определить строку матрицы,имеющую наибольшее количество четных элементов. Написать функцию нахождения количества четных элементов в строке. Функция для подсчета числа четных элементов:Цитата function get_count(m:array of integer;long:integer):integer; var i,count:integer; begin count:=0; for i:=0 to long-1 do if(m[i] mod 2 = 0) then inc(count); get_count:=count; end; -------------------- Не говори мне что мне делать и я не скажу куда тебе идти. |
|
|
December 18 2005, 22:12
Сообщение
#5
|
|
Ученик дьявола Группа: Администраторы Сообщений: 606 Регистрация: 11.12.2005 Из: Ад Пользователь №: 22 Реальное имя: Владимир Учебная группа: каф. 3 |
У меня в лекции за II семестр есть вариант решения 2.(74) на Си
Логика вроде правильная, но не проверял -------------------- Shit happens . . . and very often!
Спирт помогает ориентированию на местности только в одном случае - когда в нём плавает стрелка компаса. (М. Веллер) Life take away from people SO MUCH time! The shortest distance between two points is under construction. |
|
|
December 19 2005, 17:43
Сообщение
#6
|
|
2 разряд Группа: Пользователи Сообщений: 81 Регистрация: 24.11.2005 Из: Лыткарино-МИФИ(Т1-14) Пользователь №: 6 Реальное имя: Софья Учебная группа: Т1-14 |
Цитата(~~HellHounD~~ @ December 18 2005, 20:48) [snapback]1059[/snapback] Условия задачи поставленны некорректно Учловия полностью списаны с книжки слово в слово,такие какие они там были.Автора книжки не знаю,т.к. списывала задачи на инфе. Цитата(~~HellHounD~~ @ December 18 2005, 20:48) [snapback]1059[/snapback] Что подразумевается под системными клавишами? клавиши F1-F12,Ctrl и кажется Alt. -------------------- Но нет, я не умер,
Я выстрелил в небо Серебряной пулей, Туда, где я не был... |
|
|
December 19 2005, 19:08
Сообщение
#7
|
|
Жутко ленивый. Группа: Администраторы Сообщений: 2661 Регистрация: 22.11.2005 Из: Москва, Марьино Пользователь №: 1 Skype: dudnikov.v Реальное имя: Владимир |
Цитата Учловия полностью списаны с книжки слово в слово,такие какие они там были.Автора книжки не знаю,т.к. списывала задачи на инфе. Цитата Получить последовательность а(1), а(2),....,а(N) из нулей и единиц,где а(i)=1 если все элементы i-й строки =< X, и а(i)=0 если все элементы i-ой строки >X. Не учтен случай, когда есть элементы больше и меньше X, что с такими делать? -------------------- Не говори мне что мне делать и я не скажу куда тебе идти. |
|
|
December 19 2005, 19:24
Сообщение
#8
|
|
2 разряд Группа: Пользователи Сообщений: 81 Регистрация: 24.11.2005 Из: Лыткарино-МИФИ(Т1-14) Пользователь №: 6 Реальное имя: Софья Учебная группа: Т1-14 |
Цитата(~~HellHounD~~ @ December 19 2005, 19:08) [snapback]1084[/snapback] Не учтен случай, когда есть элементы больше и меньше X, что с такими делать? ой да ,извините, не заметила...тогда а=0. -------------------- Но нет, я не умер,
Я выстрелил в небо Серебряной пулей, Туда, где я не был... |
|
|
December 19 2005, 19:42
Сообщение
#9
|
|
3 разряд Группа: Пользователи Сообщений: 64 Регистрация: 1.12.2005 Пользователь №: 15 |
Блиин. А может еще мне поможете написать процедуру (на паскале) удаления из строки слов менее трех символов (разделенных пробелами, с учетом "," ".". Но можно и без этого). Финальную лабу чудом сдал, а со сторками разбираться не охота.
|
|
|
December 19 2005, 19:50
Сообщение
#10
|
|
Человек будущее Группа: Пользователи Сообщений: 3259 Регистрация: 22.11.2005 Из: Москва, Северное Чертаново Пользователь №: 3 Реальное имя: Михаил Горячев Учебная группа: К7-222 |
Первую кинул в Асю.
Цитата(TheBestMan @ December 19 2005, 19:42) [snapback]1091[/snapback] а со сторками разбираться не охота. Вот это плохо. Соне 25 прог просто не написать, хотя... + На сколько я знаю, Софья во всём разбирается, так что изволь. -------------------- Идеала нельзя достичь...
Но к нему можно бесконечно стремиться... Жёг, жгу и буду жечь... |
|
|
December 19 2005, 20:12
Сообщение
#11
|
|
Ученик дьявола Группа: Администраторы Сообщений: 606 Регистрация: 11.12.2005 Из: Ад Пользователь №: 22 Реальное имя: Владимир Учебная группа: каф. 3 |
А в 2.(74) задаче откуда берётся текст?
Он многострочный? Как из неё надо сделать выход? -------------------- Shit happens . . . and very often!
Спирт помогает ориентированию на местности только в одном случае - когда в нём плавает стрелка компаса. (М. Веллер) Life take away from people SO MUCH time! The shortest distance between two points is under construction. |
|
|
December 19 2005, 20:59
Сообщение
#12
|
|
3 разряд Группа: Пользователи Сообщений: 64 Регистрация: 1.12.2005 Пользователь №: 15 |
Тогдаа изъяснюсь по другому, чтобы меня не считали ленивый человеком: завтра последний шанс сдать лабы по лаб. раб. по инф-ки, а тем не менее усиленно не допираю до того как делать программу. Притом очень давно допираю. Хотя очень старался..
|
|
|
December 19 2005, 21:28
Сообщение
#13
|
|
Жутко ленивый. Группа: Администраторы Сообщений: 2661 Регистрация: 22.11.2005 Из: Москва, Марьино Пользователь №: 1 Skype: dudnikov.v Реальное имя: Владимир |
Раньше, чем завтра, заняться написанием прог не смогу, так что пишите подробное задание, может что и успею написать.
-------------------- Не говори мне что мне делать и я не скажу куда тебе идти. |
|
|
December 19 2005, 22:18
Сообщение
#14
|
|
Ученик дьявола Группа: Администраторы Сообщений: 606 Регистрация: 11.12.2005 Из: Ад Пользователь №: 22 Реальное имя: Владимир Учебная группа: каф. 3 |
Вот вариант реализации задачи 2(74) для одной строки
http://mephi.web-vnm.by.ru/StrEdit.html -------------------- Shit happens . . . and very often!
Спирт помогает ориентированию на местности только в одном случае - когда в нём плавает стрелка компаса. (М. Веллер) Life take away from people SO MUCH time! The shortest distance between two points is under construction. |
|
|
December 19 2005, 23:43
Сообщение
#15
|
|
3 разряд Группа: Пользователи Сообщений: 64 Регистрация: 1.12.2005 Пользователь №: 15 |
Вводится строка, из которой удаляются слова (набор символов), меньшие 3трех символов. Программу написать используя два файловых указателя (это без проблем), с помощью процедур (не осилил).
Буду надеяться, т.к. у меня завтра только зачет первой парой а сдача лабы после четвертой и я в инсте буду находиться целый день. Так что буду нервно думать и бегать в электронный читальный зал.... Сообщение отредактировал TheBestMan - December 19 2005, 23:46 |
|
|
December 24 2005, 19:51
Сообщение
#16
|
|
Жутко ленивый. Группа: Администраторы Сообщений: 2661 Регистрация: 22.11.2005 Из: Москва, Марьино Пользователь №: 1 Skype: dudnikov.v Реальное имя: Владимир |
Цитата 1.(104) Даны натуральные числа N и X. Задана случайная целочисленная матрица N*N . Получить последовательность а(1), а(2),....,а(N) из нулей и единиц,где а(i)=1 если все элементы i-й строки =< X, и а(i)=0 если все элементы i-ой строки >X. Код uses crt; var m:array[1..100,1..100]of integer; var n,x:integer; function a(n,x,i:integer):integer; var j,ret:integer; begin ret:=1; for j:=1 to n do if m[i,j]>x then ret:=0; a:=ret; end; procedure create_m(n:integer); var i,j:integer; begin for i:=1 to n do for j:=1 to n do m[i,j]:=random(100); end; procedure print_m(n:integer); var i,j:integer; begin for i:=1 to n do begin for j:=1 to n do begin write(m[i,j],','); end; writeln; end; end; procedure print_stat(n,x:integer); var i:integer; begin for i:=1 to n do begin writeln('a(',i,')=',a(n,x,i)); end; end; begin randomize; write('Input N (0<N<101):'); readln(n);; write('Input X:'); readln(x); create_m(n); print_m(n); print_stat(n,x); readkey; end. -------------------- Не говори мне что мне делать и я не скажу куда тебе идти. |
|
|
December 24 2005, 20:05
Сообщение
#17
|
|
Жутко ленивый. Группа: Администраторы Сообщений: 2661 Регистрация: 22.11.2005 Из: Москва, Марьино Пользователь №: 1 Skype: dudnikov.v Реальное имя: Владимир |
Цитата 3.(81) Написать программу,которая позволяет определять код любых клавиш,в том числе системных, и вывод их кода на экран.Выход осуществляется с помощью цифры "0". Код uses crt; var k1,k2:char; begin clrscr; repeat k1:=readkey; if k1=#0 then begin k2:=readkey; gotoxy(1,1); writeln(' '); gotoxy(1,1); writeln(ord(k2):3); end else begin gotoxy(1,1); writeln(' '); gotoxy(1,1); writeln(ord(k1):3); end; until k1='0'; end. Из системных считает только F1-F10, сильно сомневаюсь, что в Паскале можно отследить нажатие ctrl, alt, F11 и F12 средствами встроенных функций без использования ассемблера. -------------------- Не говори мне что мне делать и я не скажу куда тебе идти. |
|
|
December 24 2005, 20:47
Сообщение
#18
|
|
Жутко ленивый. Группа: Администраторы Сообщений: 2661 Регистрация: 22.11.2005 Из: Москва, Марьино Пользователь №: 1 Skype: dudnikov.v Реальное имя: Владимир |
Цитата 2.(74) Написать программу , которая позволяла бы выводить на экран текст и обрабатывать нажатие клавиши Delete,то есть затирать символы в текущем положении курсора. Сделать возможным перемещение курсора стрелками по экрану. Код uses crt; var k1,k2:char; x,y:integer; begin clrscr; x:=1; y:=1; gotoxy(x,y); repeat k1:=readkey; if k1=#0 then begin k2:=readkey; case k2 of #72:begin dec(y); if y=0 then y:=24; gotoxy(x,y); end; #75:begin dec(x); if x=0 then begin x:=80; dec(y); if y=0 then y:=24; end; gotoxy(x,y); end; #77:begin inc(x); if x=80 then begin x:=1; inc(y); if y=25 then y:=1; end; gotoxy(x,y); end; #80:begin inc(y); if y=25 then y:=1; gotoxy(x,y); end; #83:begin write(' '); gotoxy(x,y); end; end; end else begin if (ord(k1)>31)then begin write(k1); inc(x); if x>80 then begin x:=x-80; inc(y); if y=25 then begin y:=1; end; end; end; case k1 of #13:begin x:=1; inc(y); if y=25 then begin y:=1; end; end; #8:begin dec(x); if x=0 then begin x:=80; dec(y); if y=0 then y:=24; end; gotoxy(x,y); write(' '); end; end; gotoxy(x,y); end; until k1=#27; end. Остальное будет после 22:00. -------------------- Не говори мне что мне делать и я не скажу куда тебе идти. |
|
|
December 24 2005, 22:11
Сообщение
#19
|
|
Жутко ленивый. Группа: Администраторы Сообщений: 2661 Регистрация: 22.11.2005 Из: Москва, Марьино Пользователь №: 1 Skype: dudnikov.v Реальное имя: Владимир |
Цитата 4.(62)Найти все делители заданного натурального числа . Реализовать функцию для проверки, является ди данное число делителем другого. Код uses crt; var x,i:integer; function delit(x,d:integer):boolean; begin if x mod d = 0 then delit:=true else delit:=false; end; begin clrscr; write('Input X:'); readln(x); writeln('Spisok deliteley:'); for i:=1 to x do begin if delit(x,i)then write(i,', '); end; readkey; end. -------------------- Не говори мне что мне делать и я не скажу куда тебе идти. |
|
|
December 24 2005, 22:23
Сообщение
#20
|
|
Жутко ленивый. Группа: Администраторы Сообщений: 2661 Регистрация: 22.11.2005 Из: Москва, Марьино Пользователь №: 1 Skype: dudnikov.v Реальное имя: Владимир |
Цитата 5.(66) Дана квадратная матрица N*N , элементами которой являются целые числа. Определить строку матрицы,имеющую наибольшее количество четных элементов. Написать функцию нахождения количества четных элементов в строке. Код uses crt;
const n=13; var i,j:integer; m:array[1..n,1..n]of integer; function get_chet(i:integer):integer; var count,j:integer; begin count:=0; for j:=1 to n do if m[i,j] mod 2 = 0 then inc(count); get_chet:=count; end; procedure create_m; var i,j:integer; begin for i:=1 to n do for j:=1 to n do m[i,j]:=random(100); end; procedure print_m; var i,j:integer; begin for i:=1 to n do begin for j:=1 to n do write(m[i,j],', '); writeln('chet:',get_chet(i)); end; end; function get_max_chet:integer; var max_num:integer; begin max_num:=1; for i:=2 to n do begin if get_chet(max_num)<get_chet(i) then max_num:=i; end; get_max_chet:=max_num; end; begin clrscr; randomize; create_m; print_m; i:=get_max_chet; writeln('Maximum chet: max chet line id=',i); for j:=1 to n do write(m[i,j],', '); writeln('chet:',get_chet(i)); readkey; end. -------------------- Не говори мне что мне делать и я не скажу куда тебе идти. |
|
|
Текстовая версия | Сейчас: 29th April 2024 - 00:21 |