LuLLaby
Новичок
|
здравствуйте) помогите, пожалуйста.. я тут с файлами бьюсь... вот написала программу, которая создает список студентов с их баллами и из этого списка смогла выбрать тех, у кого определенная оценка.. а как сделать так, чтобы потом снова можно было выбрать только уже тех, у кого другой балл??? и как удалить студента из списка, у которого балл равен 2?? простите, если как-то криво объясняю... вот код: type Abiturient=record F:string[30]; ball:real; end; var F:file of Abiturient; Abit:array [1..3] of Abiturient; i:integer; n: integer; begin writeln('Vvedite svedeniya ob abiturientah'); assign(F,'c:\abit.txt'); rewrite(f); for i:=1 to 3 do begin write('Familija:'); readln(Abit.f); write('Ball:'); readln(Abit.ball); write(F,abit); writeln('----------------'); end; Close(F); assign(F,'c:\abit.txt'); reset(f); writeln(''); write('Vibrat abiturientov poluchivshich^'); readln(n); I:=0; while not Eof(F) do begin inc(i); read(f,abit); if abit.ball>=n then begin writeln(abit.F); end; end; Close(F); readln; end. воть... помогите, если нетрудно.. заранее спасибо..)
|
Всего сообщений: 1 | Присоединился: декабрь 2009 | Отправлено: 20 дек. 2009 14:36 | IP
|
|
mrwadewilson
Новичок
|
Найти среднее арифметическое положительных элементов каждого столбца матрицы Х при условии, что в каждом столбце есть хотя бы один положительный элемент, N 30. помогите пожалуйста вторую неделю мучаюсь((( (Сообщение отредактировал mrwadewilson 21 дек. 2009 4:35)
|
Всего сообщений: 8 | Присоединился: декабрь 2009 | Отправлено: 21 дек. 2009 4:34 | IP
|
|
Fanat1990
Новичок
|
Народ помогите пожалйуста срочно надо програмку написать на решение примера y=eps(нижний предел n=1 верхний бесконечность) x в степени 2n-2 / (2n-2) ! . Помогите пожалуйста (Сообщение отредактировал Fanat1990 21 дек. 2009 13:41)
|
Всего сообщений: 1 | Присоединился: декабрь 2009 | Отправлено: 21 дек. 2009 13:40 | IP
|
|
Pearll
Новичок
|
Помогите,пожалуйста,решить 2 задачи в pascal на оператор case Задача 1. Дано целое число в диапазоне 0 - 100, определяющее возраст (в годах). Вывести строку, которая определяет к какой возрастной группе относится человек(ребенок, подросток, взрослый человек, пенсионер). Задача 2. Арифметические действия над числами пронумерованы следующим образом: 1 - сложение, 2 - вычитание, 3 - умножение, 4 - деление. Дан номер действия и два числа A и B (B не равно нулю). Выполнить над числами указанное действие и вывести результат. ЗАРАНЕЕ СПАСИБО!
|
Всего сообщений: 1 | Присоединился: декабрь 2009 | Отправлено: 22 дек. 2009 9:26 | IP
|
|
Vurdis
Новичок
|
Привет всем. Помогите сделать проги на паскале. Уже замаялся((( 1) Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром, т.е. читается одинаково слева направо и справа налево. 2) Дано натуральное число п > 1. Определить длину периода де¬сятичной записи дроби 1/п. 3) В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.
|
Всего сообщений: 10 | Присоединился: декабрь 2009 | Отправлено: 23 дек. 2009 0:09 | IP
|
|
Vurdis
Новичок
|
Вот что по первой писал, тут че та не то.. Поправте если можете)) program p1; var z,c,j,n,i,b,x,g:integer; s,d:string; function polindrom(a:string):string; var h:integer; begin for h:=1 to length(a) do if a[h]=a[length(a)-h+1] then polindrom:=a else polindrom:=''; end; begin writeln('vvedite prostoe chislo'); readln(n); for i:=1 to n do begin c:=0; for j:=1 to i do if i mod j=0 then c:=c+1; if c=2 then b:=i; end; begin s:=''; while b>0 do begin s:=chr(ord('0')+b mod 2)+s; b:=b div 2; end; end; begin d:=polindrom(s); end; begin x:=0; for g:=1 to length(d) do begin x:=x+ord(d[g])-ord('0'); if g<length(d) then x:=x*2; writeln('polindromi=',x); end; end; readln; end.
|
Всего сообщений: 10 | Присоединился: декабрь 2009 | Отправлено: 23 дек. 2009 0:17 | IP
|
|
KMA
Долгожитель
|
Идея правильная, но реализация плохая.
Code Sample:
program p1; Var z,c,j,n,i,b,x,g:integer; s,d:string; IsSimple: boolean; function IsPolindrom(a:string): boolean; var h:integer; begin h:=1; while ((length(s) div 2) <> (h+1)) and (a[h]=a[length(a)-h+1]) do inc(h); if (h+1) = (length(s) div 2) then polindrom:=true else polindrom:=false; end; BEGIN writeln('vvedite prostoe chislo'); readln(n); for i:=2 to n do begin IsSimple:=true; for j:=2 to trunc(sqrt(n)) do if i mod j = 0 then IsSimple:=false; if IsSimple then begin s:=''; b:=i; while b>0 do begin s:=chr(ord('0')+b mod 2)+s; b:=b div 2; end; if IsPolinom(s) then write(i); end; end; readln; END.
Что-то вроде этого. На сколько это работает, я не знаю, не проверял, но идею можешь взять отсюда.
|
Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 23 дек. 2009 17:10 | IP
|
|
Vurdis
Новичок
|
KMA Спасибо. Правда там че та с полиндромом ни то.. Некоторое правильно выдает, а некоторое нет. Например число( как и в моей функции) 1011 тоже полиндромом считает)) Да, как бы еще две задачки решить))
|
Всего сообщений: 10 | Присоединился: декабрь 2009 | Отправлено: 23 дек. 2009 22:21 | IP
|
|
Vurdis
Новичок
|
Третью задачу я сделал. Осталась вторая))) Помогите кто чем может))) 2) Дано натуральное число п > 1. Определить длину периода де¬сятичной записи дроби 1/п.
|
Всего сообщений: 10 | Присоединился: декабрь 2009 | Отправлено: 23 дек. 2009 23:00 | IP
|
|
Korvet
Новичок
|
Цитата: mrwadewilson написал 21 дек. 2009 4:34 Найти среднее арифметическое положительных элементов каждого столбца матрицы Х при условии, что в каждом столбце есть хотя бы один положительный элемент, N 30. помогите пожалуйста вторую неделю мучаюсь(((
Программа работает, если я правильно понял условие. Если нужно, ввод организуйте другим способом. В данном случае во всех столбцах всегда будут и положительные и отрицательные элементы. Если заполнить матрицу так, чтоб хотя бы один столбец не содержал положительных элементов, выводится соответствующее сообщение и вычисления не производятся. Program Matrix_Avg; var X:array [0..29,0..29] of Integer; i,j,k:byte; avg:array [0..29] of Real; Begin Randomize; for i:=0 to 29 do for j:=0 to 29 do x[i,j]:=random(100)-50; for j:=0 to 29 do begin avg[j]:=0; k:=0; for i:=0 to 29 do if x[i,j]>0 then begin avg[j]:=avg[j]+x[i,j]; inc(k); end; if k>0 then avg[j]:=avg[j]/k else begin Write('Nekotorye stroki ne sodergat pologitelnyh elementov'); Break; end; end; if k>0 then for i:=0 to 29 do writeln('dlj stolbza ',i,#9,Trunc(avg),' '); Readln; End.
|
Всего сообщений: 40 | Присоединился: ноябрь 2009 | Отправлено: 24 дек. 2009 0:02 | IP
|
|
|