Пятница, 19.04.2024, 16:33
Блог учителя информатики и математики
О блогеМой профильРегистрацияВыходВход
Вы вошли как Гость · Группа "Гости" Приветствую Вас, Гость · RSS
Меню блога
Погода в нашем районе.

НАГРАДА

Как Вы считаете, должны ли дети ходить в школу в школьной форме?
Всего ответов: 2806
 
 Блог учителя
Главная » Статьи » Информатика » В помощь ученику

Разбор олимпиадных задач.
Решения задач олимпиады




Задача 1. Имеются два раствора массами m1, m2 и концентрациями с1 и с2 соответственно. Растворы смешали. Определить массу и концентрацию полученного раствора.
Исходные данные: в первой строке вводится масса и концентрация первого раствора, во второй – масса и концентрация второго раствора.
Результаты работы программы: в первой строке вывести массу по-лученного раствора, а во второй – концентрацию.
Автор:
преподаватель информатики высшей категории
Логвинович Яков Яковлевич (Беларусь)


Задача несложная и сводится к получению (выводу) нужных формул. Ясно, что масса полученного раствора есть сумма масс исходных раство-ров: m = m1 + m2.  С определением концентрации полученного раствора дело обстоит уже не так просто. Вспомним, некоторые определения.
Пусть смесь массы М содержит некоторое вещество массой m.  Кон-центрацией данного вещества в смеси называют величину c = m / М, а процентным содержанием данного вещества – величину с•100%. Тогда при известных величинах концентрации вещества и общей массы смеси масса данного вещества, очевидно, определяется по формуле m = с • М. Так как в полученной смеси масса данного вещества определяется выра-жением с1 • m1 + с2 • m2, то концентрация данного вещества будет равна
c = (c1•m1 + c2•m2) / (m1 + m2).
Теперь остаётся просто организовать ввод данных в соответствии с условием задачи, посчитать массу и концентрацию по указанным выше формулам и правильно (в соответствии с условием) организовать вывод значений массы полученного раствора и его концентрации. Если вводить, как это принято в химии концентрацию в процентах (т.е. вводить про-центное содержание вещества), то формула для определения концентрации не меняется. Ответ будет выдан в процентах.
Ниже приведён один из возможных вариантов решения данной задачи на Паскаль.


Program olimpiada;
Uses Crt;
Var m1,m2,m,c1,c2,c:Real;
Begin
    ClrScr; {очистка экрана}
    Write('Введите массу и концентрацию 1-го раствора: ');
    Readln(m1,c1);
    Write('Введите массу и концентрацию 2-го раствора: ');
    Readln(m2,c2);
    m:=m1+m2;
    c:=(c1*m1+c2*m2)/m;
    Writeln('Масса полученного раствора m = ',m:7:2);
    Writeln('Концентрация полученного раствора с = ',c:7:2);
    Readln;
End.




Задача 2. Определить тип введённой с клавиатуры строчной русской буквы: гласная, согласная или разделитель.
Исходные данные: в первой строке ввести строчную русскую букву.
Результат работы программы: во второй строке вывести одно из слов: гласная, согласная, разделитель.


Удобнее всего при решении задачи использовать множества. Можно было бы использовать и строки.

Program olimpiadaa;
Uses Crt;
Var A,B,C: Set Of Char;
       S:Char;
Begin
   ClrScr;
   Write('Введи букву: ');
   Readln(S);
   A:=['а','е', 'ё', 'и', 'о', 'у', 'ы', 'э', 'ю', 'я'];
   B:=['ь','ъ'];
   C:=['б','в', 'г', 'д', 'ж', 'з', 'к', 'л', 'м', 'н', 'п', 'р', 'с', 'т', 'ф', 'х', 'ц', 'ч', 'ш', 'щ'];
   If S In A Then Writeln ('Гласная');
   If S In B Then Writeln ('Разделитель');
   If S In C Then Writeln ('Согласная');
   Readln;
End.

Ниже приведён вариант программы с использованием строк.

Program olimpiadaaa;
Uses Crt;
Var A,B,C, D: String;
       S:Char;
k,n: Byte;
Begin
   ClrScr;
   Write('Введи букву: ');
   Readln(S);
   A:='аеёиоуыэюя';
   B:='ьъ';
   C:='бвгджзклмнпрстфхцчшщ';
   D:=A+B+C;
          For k:=1 to Length(D) do  
    If S=D[k] Then n:=k;
 If n<=Length(A) Then Writeln ('Гласная')
                            Else If n<=Length(A)+Length(B)
                                       Then Writeln ('Разделитель')
                                        Else Writeln ('Согласная');
   Readln;
End.



Задача 3. Шестизначный  билет для проезда в любом транспортном средстве называется «счастливым по-ленинградски», если сумма первых трёх его цифр равна сумме трёх последних его цифр. Определить, является ли билет с введённым с клавиатуры номером «счастливым по-ленинградски».
Исходные данные: в первой строке вводится номер билета (6 цифр).
Результат работы программы: во второй строке вывести на экран текст «Билет счастливый», либо «Билет не является счастливым».
Трамвайный билет имеет шестизначный номер. Так как шестизначное число больше 32767 (тип Integer), то для описания переменной, соответ-ствующей номеру билета, необходимо использовать тип Longint (до 10 знаков).

Program  olimpiadaaaa;
Uses Crt;
Var  x1,x2:integer;
               x:longint;
Begin
   ClrScr;
   Write('введите номер билета');
   Readln(х);
   {находим сумму первых трёх цифр}
   x1:=x div 100000+(x div 10000) mod 10+(x div 1000) mod 10;
   {находим сумму последних трёх цифр}
   x2:=(x div 100) mod 10+(x div 10) mod 10+x mod 10;
   If x1=x2 Then Writeln ('билет счастливый ')
                         Else Writeln('билет не счастливый ');
   Readln;  
End.

Ниже приведён вариант программы с использованием строк. Здесь ис-пользуются функции перевода числа в строку (String) и строки в число (Val). При использовании функции Str задано количество символов во введённом числе (если этого не сделать, то программа будет выдавать не-правильные результаты при вводе номеров билетов, начинающихся с цифры 0).

Program  olimpiadaaaa;
Uses Crt;
Var  s:string[6];
        x:Longint;
        code,k:Integer;
        a:array[1..6] of integer;           
Begin
   ClrScr;
   Write('введите номер билета ');
   Readln(x);
   {перевод числа в строку}
   Str(x:6,s);
   For k:=1 to 6 do Val(s[k],a[k],code);
   {перевод символов в числа}
   If a[1]+a[2]+a[3]=a[4]+a[5]+a[6] Then Writeln ('Da ')
                                                          Else Writeln('Net ');
   Readln;  
End.

Задача 4. На плоскости заданы окружность радиуса R с центром в точке (x0;y0) и n точек с координатами (x1;y1),(x2;y2),…,(xn;yn). Определить, сколько точек находится внутри данной окружности. Все координаты точек являются вещественными числами.
Исходные данные: в первой строке расположены числа R, x0, y0, во второй – число n, в следующих n строках находятся координаты n точек.
Результат работы программы: целое число, соответствующее числу точек, попадающих внутрь окружности. Если ни одна из точек не лежит внутри окружности, то предусмотреть выдачу текста «Точек внутри окружности нет».

Удобнее не заводить массив для координат точек, а вводить координаты в цикле и тут же проверять: лежит ли точка внутри круга, ограниченного окружностью. Уравнение окружности радиуса R с центром в точке с координатами (x0,y0) имеет вид: (x-x0)2+(y-y0)2=R2. Точка с координатами (x,y) лежит внутри круга, если (x-x0)2+(y-y0)2<R2. Одна из возможных реализаций  алгоритма выглядит так.

Program olimp5;
Uses Crt;
Var R,x0,y0,x,y:Real;
       k,n,col:Integer;
Begin
   ClrScr;
   Write('Введите радиус и координаты центра: ');
   Readln(R,x0,y0);
   Write('Введите количество точек: ');
   Readln(n);
   col:=0;
   For k:=1 To n Do
     Begin
       Readln(x,y);
       If (x-x0)*(x-x0)+(y-y0)*(y-y0)<R*R Then col:=col+1;
     End;
   If col=0 Then Writeln('Точек внутри нет')
                 Else Writeln('Внутри ',col,' точек');  

   Readln;
End.


Участникам районной олимпиады желаю успехов. Вы молодцы! В оставшиеся два дня, перед олимпиадой, решайте задачи школы программистов. Не надо увлекаться теорией и выискиванием пробелов в знаниях. Решайте…


Категория: В помощь ученику | Добавил: Harchev (14.11.2013)
Просмотров: 6804 | Комментарии: 15 | Рейтинг: 3.8/58
Всего комментариев: 10
1 Кристина  
Программа на нахождение массы и концентрации раствора.
Program rastvor;
var m1,m2,m3,C1,C2,C3,r1,r2,r3:real;
begin
readln(m1,m2,C1,C2);
r1:=C1/m1;
r2:=C2/m2;
r3:=C1/m1+C2/m2;
m3:=m1+m2;
C3:=r3*m3;
writeln(m3);
writeln(C3);
end.
Правильно она составлена?

2 Michaelfrife  
я ожидала лучшего

-----shoutback.ru/

3 Jameslok  
Какая фраза... супер, блестящая идея

------

норма ток мало))

4 MarcusHonge  
По моему мнению Вы не правы. Могу отстоять свою позицию.

------

Идея хорошая, поддерживаю.

------
apfre - mapfre asistencia carretera

5 DavidSnapy  
Согласен, весьма полезная мысль


------
https://continent-telecom.com/phone-number-novosibirsk - купить номер телефона новосибирск


Вы не эксперт?


------
https://virtual-local-numbers.com - virtual did number

6 Michaellog  
Нада сё на заметку взять!!!!


--------
http://glavavtotrans.com/gruzoperevozki-nizhnevartovsk - Транспортные компании Нижневартовска


Нет.


--------
http://vseloterei.com/opisanie-loterej/avstralijskie-loterei/avstralijskie-loterei.html - oz lotto


Это была моя ошибка.


--------
https://nakrytka-golosov.ru/nakrutka-golosovanij-v-konkursah.html - купить лайки в конкурсе рисунков на сайте


В этом что-то есть и мне кажется это хорошая идея. Я согласен с Вами.


--------
http://kinokoza.com/10156-patrik-melrouz-2018.html - http://kinokoza.com/10156-patrik-melrouz-2018.html


Извините за то, что вмешиваюсь… Мне знакома эта ситуация. Приглашаю к обсуждению. Пишите здесь или в PM.


--------
https://vipaptekansk.ru/product-category/men/tongkat-ali-platinum/ - тонгкат али плюс


УЛЕТ


--------
http://gs300.ru/products/highlander - ремонт toyota highlander


Охотно принимаю. На мой взгляд, это интересный вопрос, буду принимать участие в обсуждении. Вместе мы сможем прийти к правильному ответу. Я уверен.


--------
http://ikidz.ru/ - массажные коврики орто в москве


Да, я с вами определенно согласен


--------
https://envelopez.ru/zimnij-konvert-na-vypisku-dlja-malchika - купить конверт на выписку зимний

7 Davidwaync  
Жаль, что сейчас не могу высказаться - тороплюсь на работу. Освобожусь - обязательно выскажу своё мнение.


-------
https://vip-techno.com.ua/g10264994-stabilizatory-napryazheniya - стабилизатор напряжения украина | https://vip-techno.com.ua/

8 WayneRek  
Между нами говоря, по-моему, это очевидно. Попробуйте поискать ответ на Ваш вопрос в google.com


-----
https://darkach.net/ - здесь


уже есть,спс


-----
https://glazki-zakryvai.ru/category/detskoe-postelnoe-bele/15-spalnye-komplekty/ - детское постельное 1.5 спальное купить


И что бы мы делали без вашей замечательной фразы


-----
http://cruise-ny.com/ - nyc river cruise


Может тут ошибка?


-----
https://sant-a.com/uk/santehnika/vanny/vanny-chugunnye/ - ванна чавунна

9 DavidGef  
Не могу сейчас принять участие в дискуссии - нет свободного времени. Буду свободен - обязательно напишу что я думаю.


------
https://serviceclientele.net/service/canalsat-espace-client/ - canalsat espace client


ну не знаю как кому, а мне такие сюрпризы нравятся!!!! ))))


------
https://lolzteam.net/forums/768/ - гайд для новичков пубг


Поразительно! Изумительно!


------
http://novosibirsk.leramanara.ru - астролог Лера Манара


Я думаю, что Вы ошибаетесь. Предлагаю это обсудить. Пишите мне в PM.


------
https://lolzteam.net/market/origin/ - star wars battlefront купить аккаунт origin


Подскажите, где мне узнать больше об этом?


------
https://baku.mydutyfree.net/az/perfumery/parfum - Byuti fri etirler


В этом что-то есть. Благодарю за информацию.


------
https://healthybehappy.com/de/produkte/liebe/ - potenzmittel fur die frau die schnell wirken


смефно))))


------
https://sweetjuliet.by/ - купить нижнее белье в минске


Я считаю, что Вы ошибаетесь. Могу отстоять свою позицию. Пишите мне в PM, поговорим.


------
https://flirty.by/catalog/eroticheskoe-bele/komplekty - комплект женского белья

10 TedWag  
I'll do research on psychology related topics. I deliver high quality professional essays and reports on psychology. You don't have to worry about where to get an original work done for you. customwritingservices.shop

Имя *:
Email *:
Код *:
Copyright MyCorp © 2024
Блог учителя Учительский портал