12.01.2008, 12:40 | #1 (permalink) |
Member
Регистрация: 27.11.2007
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Код:
type A=array[0 .. 9] of byte; function get_sum(n: longint; k: integer): integer; var arr:A; i,T,sum:integer; begin fillchar(arr, sizeof(arr), 0); while n > 0 do begin inc(arr[n mod 10]); n := n div 10; end; sum := 0; T := 0; while k > 0 do begin while arr[T] = 0 do inc(T); inc(sum, T * arr[T]); inc(T); dec(k); end; get_sum := sum; end; var n: longint; k: integer; begin write('vvedite chislo = '); readln(n); write('vvedite kol-vo min chifar = '); readln(k); writeln('summa = ', get_sum(n, k)); readln; end. |
12.01.2008, 12:40 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ваша тема имеет сходства с данными топиками Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл Вычислить значение суммы Нахождение суммы, цикл. Паскаль. |
12.01.2008, 13:39 | #2 (permalink) |
Member
Регистрация: 27.11.2007
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Вот я изменил программу . только тут нужно вычесть максимальный элемент. Только тут нужно сделать так чтоб выводилась сразу сумма. А сумма минимальных находится просто сложением без максимального чмсла, тюею не нужно задавать какое именно кол-во минимальных цифр нужно порлучить
Код:
var ch:longint; procedure do_it(var l:longint); var i,j,n,s,min:integer; m:array[1..25] of integer; Begin i:=1; while l>0 do begin m[i]:=l mod 10; l:=l div 10; n:=i; inc(i) end; for j:=1 to n-1 do for i:=1 to n-j do begin if m[i]>m[i+1] then begin min:=m[i]; m[i]:=m[i+1]; m[i+1]:=min end; end; s:=0; for i:=1 to n do begin s:=s+m[i]; writeln(s) end; end; BEGIN read(ch); do_it(ch) End. |
12.01.2008, 15:22 | #5 (permalink) |
Member
Регистрация: 27.11.2007
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Вот что у меня получилось только всёравно выдаёт ошибку.
Код:
var ch:longint; procedure get_sum(var l:longint); var i,j,n,s,max,imax:integer; m:array[1..25] of integer; Begin i:=1; while l>0 do begin m[i]:=l mod 10; l:=l div 10; n:=i; inc(i) end; for j:=1 to n-1 do for i:=1 to n-j do begin if m[i]>m[i+1] then begin max:=m[1]; imax:=1; for i:=1 to n do if m[i]>max then begin max:=m[i]; imax:=i end; end; s:=0; for i:=1 to n do begin s:=s+m[i]; get_sum:=sum-m[imax]; end; end; BEGIN read(ch); get_sum(ch) End. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
12.01.2008, 16:31 | #6 (permalink) |
Member
Регистрация: 12.01.2008
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ошибки, которые я нашел:
1)У тебя переменная sum не описана в разделе var и потому выдает ошибку в строке : get_sum:=sum-m[imax]; 2)Нету начального значения переменной sum и потому с ней нежелательно что-то делать.(В даном случае отнимать от етой переменной какое-то значение): Ошибки больше выдавать не будет |
12.01.2008, 17:16 | #7 (permalink) |
Member
Регистрация: 27.11.2007
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
я немного подправил но всёравно возникает эта же ошибка
Код:
var ch:longint; procedure get_sum(var l:longint); var i,j,n,s,max,imax:integer; m:array[0..9] of integer; Begin i:=1; while l>0 do begin m[i]:=l mod 10; l:=l div 10; n:=i; inc(i) end; max:=m[1]; imax:=1; for i:=1 to n do if m[i]>max then begin max:=m[i]; imax:=i end; s:=0; for i:=1 to n do begin s:=s+m[i]; get_sum:=s-m[imax]; end; end; BEGIN read(ch); get_sum(ch) End. |
22.09.2009, 20:46 | #9 (permalink) |
Member
Регистрация: 09.09.2009
Сообщений: 30
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 0
|
интернет в сети
В локальной сети интернет от сервера. Как узнать какая машина и в каком количестве (кило-, мегабайт) его потребляет? (желательно без стороннего ПО). На сервере ОС - Windows 2003 Server.
Короче нужно организовать скажем так наблюдение скока и куда потребляется |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|