Автор: predikat 15.12.2004 2:23
Я учусь на програмиста. До зачетов осталось мало, а проги все не здал.
Можете помочь?
6_2:
Написать программу, которая содержит функцию next без параметров,
которая читает из входящего файла первую букву, отличную от space,
и объявляет её своим значением. Использовать эту функцию для подсчёта
k - количества отличных от space букв текста, который заданый в
входящем файле, который заканчиваеться точкой.
6_8:
Написать программу, в которой описано функцию Sum(A,S1,S2),
которая вычисляет сумму тех элементов матрицы А, номера рядов и
столбцов которые принадлежат соответственно непустым множествам
S1 и S2.
ОЧЕНЬ ПРОШУ!!!
В следующий раз называй тему, как положено...
Автор: volvo 15.12.2004 4:00
predikat
Вот первая (если у тебя тестовый файл состоит из нескольких строк, учти, что перенос строки - 2 символа (#10 и #13))...
Код
var
f: text;
function next: char;
var ch: char;
begin
repeat
read(f, ch);
until ch <> #32;
next := ch
end;
var
ch: char;
count: word;
begin
assign(f, 'test99.txt');
reset(f);
count := 0;
repeat
ch := next; inc(count)
until ch = '.';
writeln('count = ', count);
close(f);
end.
Автор: predikat 15.12.2004 4:53
Вторую я постараюсь сделать сам. помогите пожалуйсто с этой:
9_22:
Написать программу, которая использует информацию в таблице
FAT и распечатывает список файлов корневого каталога диска C: в формате:
имя файла, тип, время и дата создания,
начальный кластер, размер и указанные атрибуты:
а) h;
б) s;
в) h и s;
г) r.
Сравнить полученные результаты с
результатами выполнения команды dir.
Автор: predikat 15.12.2004 5:47
Помогите пожалуйсто написать под эту программу коментарии.
Код
program matrix;
uses crt;
type
mas=array[1..9,1..9] of integer;
s=set of 0..9;
var
a:mas;
summ,x,y,i,j:integer;
const
s1:s=[2,3];
s2:s=[1,3];
function Sum(A:mas; S1,S2:s):integer;
var
i,j,ss:integer;
begin
ss:=0;
for i:=1 to x do
if i in S1 then
for j:=1 to y do
if j in S2 then
ss:=ss+A[i,j];
sum:=ss;
end;
procedure form_mn(var s1:s; x:byte);
var k:byte;
begin
writeln('Закончите ввод нажатием 0');
writeln('Введите ряды/столбцы от 1 до ',x);
s1:=[];
repeat
writeln('Введите цифру <=',x);
readln(k);
if k<>0 then s1:=s1+[k];
if (k<0) or (k>x) then writeln('Превышен диапозон');
until (k=0);
end;
procedure init_mas(var a:mas; x,y:byte);{x - Є®«ЁзҐбвў® бва®Є}
var
i,j:byte;
begin
writeln('Введите элементы массива');
for i :=1 to x do
begin
writeln('Введите элементы', i, ' строки');
for j:=1 to y do read(a[i,j]);
readln;
end;
end;
procedure show_mas(a:mas; x,y:byte);
var
i,j:byte;
begin
writeln('Массив ',x,'x',y);
for i:=1 to x do
begin
for j:=1 to y do write(a[i,j]:4);
writeln;
end;
end;
begin
clrscr;
repeat
writeln('‚Введите количество столбцов x <=9');
readln(x);
until x<=9;
repeat
writeln('Введите количество рядков y <=9');
readln(y);
until y<=9;
init_mas(a,x,y);
show_mas(a,x,y);
writeln('М Н О Ж Е С Т В О Р Я Д О В');
form_mn(s1,x);
writeln('М Н О Ж Е С Т В О С Т О Л Б Ц О В');
form_mn(s2,y);
summ:=sum(a,s1,s2);
writeln('Сумма равна ', summ);
readln;
end.
:p2:
Автор: volvo 15.12.2004 14:58
predikat
Программу надо давать в виде текста (используя теги [ code] и [ /code] без пробела)... Как ты думаешь, я сейчас буду набирать всю твою программу, чтобы ее проверить и добавить комментарии? И никто не будет...
Автор: predikat 16.12.2004 0:08
Цитата(volvo @ 15.12.04 10:58)
predikat
Программу надо давать в виде текста (используя теги [ code] и [ /code] без пробела)... Как ты думаешь, я сейчас буду набирать всю твою программу, чтобы ее проверить и добавить комментарии? И никто не будет...
Извините, я пропарился. Я не знал что pas можно открывать txt.
Всё исправил. Прошу помощи. Особенно по 9_22!!!
Ещё очень прошу помочь написать отчеты для этих прог. ОЧЕНЬ:
Код
program students;
uses crt;
const
n=5;
type
parameters=record
surname:string[25];
group:string[4];
mark:real;
end;
var
st:array[1..n] of parameters;
j,i:integer;
s:parameters;
begin
clrscr;
for i:=1 to n do
begin
write('Enter the surname of student: ');
readln(st[i].surname);
write('Enter the number of group: ');
readln(st[i].group);
write('Enter his average mark: ');
readln(st[i].mark);
end;
begin
for i:=1 to n-1 do
for j:=i to n do
if st[i].mark<st[j].mark then
begin
s:=st[i];
st[i]:=st[j];
st[j]:=s;
end;
end;
writeln;
writeln('your list...');
writeln;
for i:=1 to n do
with st[i] do
begin
write('Surname: ',sruname,'Group: ',group,'Mark: ', mark:1:2);
writeln;
end;
repeat until keypressed;
end.
Код
program text_file;
var
f:text;
function
next: char;
var
ch: char;
begin
repeat
read(f,ch);
until ch<> #32;
next := ch
end;
var
ch: char;
count: word;
begin
assign(f, 'test99.txt');
reset(f);
count := 0;
repeat
ch:=next;
inc(count)
until ch = '.';
writeln('count = ', count);
close(f);
end.
Код
program modul;
uses of_modul;
var
Sinp, Sout: String;
begin
write('Enter the string: ');
readLn(Sinp);
Upstring(Sinp,Sout);
Writeln(' Result: ', Sout)
end.
_______________________________
Unit of_modul;
Interface
Procedure UpString(s1: string; var s2: string);
Implementation
procedure upstring;
var
i: integer;
c: char;
begin
s2:= '';
for i:= 1 to Length(s1) do
begin
c:= s1[i];
if (c>= 'a') and (c <= 'z') then
c:= chr(ord('A')+ord(c)-ord('a'))
end
end;
end.