22.06.2009, 11:47 | #121 (permalink) | |||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Цитата:
Цитата:
|
|||
22.06.2009, 11:57 | #122 (permalink) |
Новичок
Регистрация: 22.06.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
2)Среди работников данного предприятия найти тех, чья заработная плата за месяц ниже средней по предприятию, а также распечатать список тех, кто проработал на предприятии более 10 лет, с указанием их фамилии, зарплаты, стажа работы и должности.
Мало информации. Нужна исходная база данных по работникам предприятия. В каком она виде? Таблица? Массив записей? Или ее нужно тоже формировать самостоятельно? Самому нужнно вводить зароботную плату и через эти данные нужно найти среднию!!! вот я начал был решать и неполучаеться и одного условия нет!!! вот примерно псмотрите!!! program vtoroiBlok; const n=10; type pa6otnik=record famili9:string[20]; zarplata:integer; cTa>|<_pabotb|:integer; DoJI>|<Hoctb:string[10]; end; mas=array[1..n] of pa6otnik; var v:mas; i,k,nn:integer; {s:string;} begin write('Vvedute kol='); readln(nn); for i:=1 to nn do begin write('vvedite famili9 ',i,' pa6otnik='); readln(v[i].famili9); write('vvedite zarplata ',i,' pa6otnik='); readln(v[i].zarplata); write('vvedite cTa>|<_pabotb| ',i,' pa6otnik ='); readln(v[i].cTa>|<_pabotb|); write('vvedite DoJI>|<Hoctb ',i,' pa6otnik='); readln(v[i].DoJI>|<Hoctb); end; write('kotorb|e pabotali bolee 10 let '); {readln(s); } k:=0; for i:=1 to nn do if v[i].cTa>|<_pabotb|='10' then begin with v[i] do begin write(i,' ',famili9,' '); writeln(zarplata,' '); writeln(cTa>|<_pabotb|,' '); writeln(DoJI>|<Hoctb,' '); end; k:=k+1; end; write('Kol-vo pabotnikov ctaj rabotb| bolee 10 let =',k); readln; end. |
22.06.2009, 12:30 | #123 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
1. Почему условие равенства? Надо ">". 2. Стаж работы вы задали, как INTEGER-тип, а не STRING, а поэтому брать 10 в кавычки - ошибка. Отсюда условие должно быть таким: if v[i].cTa>|<_pabotb|>10 then Но, между прочим, всё равно будет сообщение об ошибке! Потому что у Вас, скажем так, весьма своеобразные идентификаторы. Ну как, скажите, бедному компьютеру разобраться, какой из знаков "<", ">" относится к условию, а какой описывает русскую букву "ж"? Поэтому уберите-ка все значки типа "<", ">", "|" из идентификаторов переменных и постарайтесь обойтись обычным транслитом. Выпендреж до добра не доведет. В остальном вроде всё верно. Дальше нужно прокрутить еще пару аналогичных циклов. Первый - чтобы определить среднюю зарплату, второй - чтобы выявить низкооплачиваемых работников. Нужно будет ввести переменную средней зарплаты. |
|
22.06.2009, 21:44 | #124 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
f,f1,f2:TEXT; S,Sh_Word:STRING; Sh_Lng:BYTE; Sh_Num:WORD; Ch:Char; BEGIN Assign(f,'D:\Txt'); ReSet(f); Assign(f1,'D:\TTT'); ReWrite(f1); Assign(f2,'D:\TXX'); ReWrite(f2); REPEAT Read(f,Ch); IF (Ch=' ') OR (Ch='.') OR (Ch=',') OR (Ch='!') OR (Ch='?') OR (Ch=':') OR (Ch=';') OR (Ch='(') OR (Ch=')') OR (Ch='-') THEN Writeln(f1) ELSE Write(f1,Ch); UNTIL EoF(f); Close(f); Close(f1); ReSet(f1); REPEAT Readln(f1,S); IF S<>'' THEN WriteLn(f2,S); UNTIL EoF(f1); Close(f1); Close(f2); ReSet(f2); Sh_Lng:=255; REPEAT Readln(f2,S); IF Length(S)<Sh_Lng THEN BEGIN Sh_Lng:=Length(S); Sh_Word:=S; END; UNTIL EoF(f2); ReSet(f2); Sh_Num:=0; REPEAT Readln(f2,S); IF S=Sh_Word THEN INC(Sh_Num); UNTIL EoF(f2); Close(f2); Erase(f1); Erase(f2); Writeln('The shortest word "',Sh_Word,'" is ',Sh_Num,' times recurred'); Readln; END. |
|
22.06.2009, 22:49 | #125 (permalink) |
Новичок
Регистрация: 21.06.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Vladimir_S , большое спосибо .
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
23.06.2009, 17:59 | #126 (permalink) |
Новичок
Регистрация: 22.06.2009
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Vladimir_S: Спасибо большое за предыдущую подсказку у меня получилось!!!
Помоги пожалуйста решить с файлами еще, воопще файлы плохо знаю((( 1)Дан файл, содержащий текст, и некоторые буквы. Найти слово, содержащее наибольшее количество указанных букв. За ранее очень очень благодарен!!! |
23.06.2009, 20:37 | #127 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
CONST Let:ARRAY[1..4] of CHAR= ('а', 'е', 'и', 'ф'); VAR f,f1,f2:TEXT; S,Rich_Word:STRING; i,j,k:INTEGER; L_Num:WORD; Ch:Char; BEGIN Assign(f,'D:\Txt'); ReSet(f); Assign(f1,'D:\TTT'); ReWrite(f1); Assign(f2,'D:\TXX'); ReWrite(f2); REPEAT Read(f,Ch); IF (Ch=' ') OR (Ch='.') OR (Ch=',') OR (Ch='!') OR (Ch='?') OR (Ch=':') OR (Ch=';') OR (Ch='(') OR (Ch=')') OR (Ch='-') THEN Writeln(f1) ELSE Write(f1,Ch); UNTIL EoF(f); Close(f); Close(f1); ReSet(f1); REPEAT Readln(f1,S); IF S<>'' THEN WriteLn(f2,S); UNTIL EoF(f1); Close(f1); Close(f2); ReSet(f2); L_Num:=0; REPEAT Readln(f2,S); k:=0; FOR i:=1 TO Length(S) DO FOR j:=1 TO 4 DO IF S[i]=Let[j] THEN INC(k); IF k>L_Num THEN BEGIN L_Num:=k; Rich_Word:=S; END; UNTIL EoF(f2); Close(f2); Erase(f1); Erase(f2); Writeln('The word "',Rich_Word,'" contains ',L_Num,' letters on payroll'); Readln; END. |
|
23.06.2009, 22:06 | #129 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Извините, но задача настолько простая, что даже не интересно. И чему тут "не решаться"? Правда, я не очень понимаю, зачем нужна подпрограмма и куда ее воткнуть, но если по-простому, то:
VAR SUM, Quantity:REAL; Number:WORD; BEGIN Number:=0; SUM:=0; REPEAT Write('Next quantity '); Readln(Quantity); IF Quantity<0 THEN BEGIN SUM:=SUM+Quantity; Number:=Number+1; Writeln(Number); Writeln('Sum = ',SUM); END; UNTIL Quantity>0; Writeln('Data input is finished'); Readln; END. Всё!!! Последний раз редактировалось Vladimir_S; 23.06.2009 в 22:19 |
24.06.2009, 06:00 | #130 (permalink) |
Новичок
Регистрация: 18.06.2009
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите пожалуйста написать 3 задачи на Паскале (работа с записями)
1 задача. Сформировать запись, имеющую следующую структуру
type предмет=record название:string; количество часов:integer; преподаватель:string; кафедра:string; форма отчетностизачет,экзамен); end; и определить: o преподавателя, у которого самое большое количество часов; o список предметов, по которым сдают экзамен; o кафедру и преподавателя, который ведет данный предмет. 2 задача. Составить программу, выводящую на экран инвентаризационную ведомость (инвентаризационный номер, наименование, дата учета) 3 задача. Определить и вывести на экран множество символов входящих одновременно в имя, отчество, и фамилию, введённые с клавиатуры |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Метки |
задачи по информатике, помощь, решение задач, студент |
|
|