Салгоритмом.написать программу сложения пяти переменных каждая из которых может принимать или числовое значение или строковое. программа должна отдельно просуммировать числа среди этих переменных и отдельно строки.
Текст на VBA (Microsoft Excel из состава Office 2003)
Sub aaa() a = Range("A1:A5") sn = 0: ss = "" For Each e In a If IsNumeric(e) Then sn = sn + e Else ss = ss + e End If Next Cells(7, 2) = sn Cells(8, 2) = ss End Sub
Во вложении приведен вид листа рабочей книги после выполнения тестового решения.
{На самом деле они все строковые, но так как некоторые можно преобразовать в числовому значению, можно, я думаю, об этом забыть. Если мне покажут какой-то смежный тип (не char!), я буду крайне благодарен} //Pascal ABC.NET 3.1 сборка 1256
Const n=5;
Var i,k:integer; r:real; rs:string; arsom:array[1..n] of string; se:set of char; begin se:=['0','1','2','3','4','5','6','7','8','9','.','-']; k:=0; for i:=1 to n do begin readln(arsom[i]); foreach var x in arsom[i] do if x in se then inc(k); if k=length(arsom[i]) then r+=strtofloat(arsom[i]) else rs+=arsom[i]; k:=0; end; writeln('Сумма чисел:',r); write('Сумма строк:',rs); end.
Пример ввода: -1.1 Sample 2 text 1.2 Пример вывода: Сумма чисел:2.1 Сумма строк:Sample text
Sub aaa()
a = Range("A1:A5")
sn = 0: ss = ""
For Each e In a
If IsNumeric(e) Then
sn = sn + e
Else
ss = ss + e
End If
Next
Cells(7, 2) = sn
Cells(8, 2) = ss
End Sub
Во вложении приведен вид листа рабочей книги после выполнения тестового решения.
//Pascal ABC.NET 3.1 сборка 1256
Const
n=5;
Var
i,k:integer;
r:real;
rs:string;
arsom:array[1..n] of string;
se:set of char;
begin
se:=['0','1','2','3','4','5','6','7','8','9','.','-'];
k:=0;
for i:=1 to n do
begin
readln(arsom[i]);
foreach var x in arsom[i] do
if x in se then inc(k);
if k=length(arsom[i]) then r+=strtofloat(arsom[i]) else rs+=arsom[i];
k:=0;
end;
writeln('Сумма чисел:',r);
write('Сумма строк:',rs);
end.
Пример ввода:
-1.1
Sample
2
text
1.2
Пример вывода:
Сумма чисел:2.1
Сумма строк:Sample text