|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 (permalink) |
Новичок
Регистрация: 29.10.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() Вот начал а дальше не знаю как(( program vlevo; var i,n,s: integer; a:array[1..100] of integer; begin write('n='); read(n); for i:=1 to n do begin write('a[',i,']='); readln(a[i]); end; |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Если поискать по форуму, то можно найти много похожего, рекомендую к прочтению Помогите пожалуйста с задачей по C++ Помогите с задачей на С++ очень срочно нужно...пожалуйста Помогите, пожалуйста, с Паскалем. Процедуры-массивы |
![]() |
#2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Да, начало, конечно, мощное. Ну ладно, держите продолжение с окончанием:
Код:
Uses CRT; var i,n,s,b1,b2: integer; a:array[1..100] of integer; begin clrscr; write('n= '); readln(n); for i:=1 to n do begin write('a[',i,']= '); readln(a[i]); end; clrscr; writeln('Initial array:'); for i:=1 to n do write(a[i]:4); writeln; b1:=a[1]; b2:=a[2]; for i:=3 to n do a[i-2]:=a[i]; a[n-1]:=b1; a[n]:=b2; writeln('Shifted array:'); for i:=1 to n do write(a[i]:4); readln end. |
![]() |
![]() |
![]() |
#3 (permalink) |
Новичок
Регистрация: 29.10.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
спасибо большое!) а можете проверить ещё одну задачу, правильно ли?
Вычислить среднее арифметическое введенных чисел, количество введенных чисел и количество введенных нулей. При вводе числа 777 закончить работу. program qw; var tmp, zero, total, sum: integer; sred: real; begin zero := 0; total := 0; sum := 0; repeat read(tmp); if tmp <> 777 then begin inc(total); sum := sum + tmp; if tmp = 0 then inc(zero); end; until tmp = 777; sred := sum / total; write('Всего чисел: ', total, ' Из них нулей - ', zero, ' Среднее арифметическое = ', sred); end. |
![]() |
![]() |
![]() |
#4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
В целом - да, всё правильно. Но есть несколько, скажем так, небольших шероховатостей непринципиального характера.
1. Для переменной sum лучше выбрать формат LongInt - мало ли, какие числа вводятся и сколько, может получиться так, что сумма выскочит за границы формата Integer (32000 с копейками). 2. Ввод чисел желательно оформить с экранной подсказкой - пустой экран с моргающим маркером плохо смотрится. 3. Есть некая тонкость с оператором ввода. Лучше использовать не read, а readln. Не буду вдаваться в подробности, но read - "плохой" оператор, он как бы не закрывает ввод, а оставляет систему в ожидании следующего ввода, что приводит, в частности, к несрабатыванию остановок, см. п.4. 4. В конце программы желательно поставить команду readln без параметров. Дойдя до нее, программа остановится и покажет выведенный на экран результат расчета. Но это произойдет только, если в программе для ввода используются операторы readln, а не read. 5. Для среднего лучше (просто красивее) использовать форматный вывод. Например, формат 0:3 означает, что число будет выведено с тремя знаками после десятичной точки. С учетом поправок: Код:
program qw; var tmp, zero, total: integer; sred: real; sum:longint; begin zero:=0; total:=0; sum:=0; repeat write('Введите число: '); readln(tmp); if tmp<>777 then begin inc(total); sum:=sum+tmp; if tmp=0 then inc(zero); end; until tmp=777; sred:=sum/total; writeln('Всего чисел: ', total, ' Из них нулей - ', zero, ' Среднее арифметическое = ', sred:0:3); readln end. |
![]() |
![]() |
![]() |
#5 (permalink) |
Новичок
Регистрация: 29.10.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
помогите пожалуйста вот с этой задачей((
Заданы М строк символов, которые вводятся с клавиатуры. Каждая заданная строка представляет собой текст. Исключить из этих текстов все гласные буквы. |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
#6 (permalink) |
Новичок
Регистрация: 29.10.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
Заданы М строк символов, которые вводятся с клавиатуры. Каждая заданная строка представляет собой текст. Исключить из этих текстов все гласные буквы.
правильно?? Program z1; uses crt; const glas = ['а','е','и','о','у','э','ю','я','А','Е','И','О','У ','Э','Ю','Я']; var s:string; i,j:integer; c:char; a:array[1..100] of string; begin clrscr; i:=0; Writeln('Будете вводить данные'); readln(c); While ( c in ['Y','y','Д','д']) or (i=100) do begin inc(i); Writeln('Введите ',i,' ю строку'); readln(s); for j:=1 to length(s) do begin if not(s[j] in glas) then a[i]:=a[i]+s[j] end; Writeln('Вводить еще информацию? '); readln(c); end; for j:=1 to i do if a[j]<>'' then Writeln(a[j]); readln end. |
![]() |
![]() |
![]() |
#7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Не совсем.
1. В перечне множества Glas Вы поставили пробел после буквы "У" - абсолютно недопустимо и приводит к ошибке! 2. Неверно сформулированы условия цикла While...do. 3. В предпоследней строке условный оператор if a[j]<>'' then - лишний. Вот подредактированный вариант: Код:
uses crt; const glas=['а','е','и','о','у','э','ю','я','А','Е','И','О','У','Э','Ю','Я']; var s:string; i,j:integer; c:char; a:array[1..100] of string; begin clrscr; i:=0; Writeln('Будете вводить данные (Y/N), (Д/Н)?'); readln(c); While (c in ['Y','y','Д','д']) and (i<=100) do begin inc(i); Writeln('Введите ',i,'-ю строку'); readln(s); for j:=1 to length(s) do if not(s[j] in glas) then a[i]:=a[i]+s[j]; Writeln('Вводить еще информацию (Y/N), (Д/Н)?'); readln(c); end; Writeln; for j:=1 to i do Writeln(a[j]); readln end. |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|